{"version":3,"sources":["containers/user/WithPermissions.tsx","components/custom/usePermissions.tsx","components/custom/ButtonSet.tsx","components/custom/F.tsx","components/custom/FieldsBox.tsx","components/custom/FormField.tsx","components/custom/G.tsx","components/custom/InlineInputText.tsx","components/custom/InlineSelect.tsx","components/custom/InputGroup.tsx","components/custom/LoadingBox.tsx","components/custom/NotificationBox.tsx","components/custom/NotificationsBox.tsx","components/custom/R.tsx","components/custom/TogglePanel.tsx","components/custom/useSearchPaginate.tsx","components/custom/useSearchFirst.tsx","components/custom/InputEventDispatcher.tsx","components/custom/useSearchFilters.tsx","containers/user/RequireRoleContainer.tsx","components/custom/RequireRole.tsx","components/custom/validations.ts","utils/ValidationBuilder.ts","containers/user/RequirePermissionContainer.tsx","components/custom/RequirePermission.tsx","components/custom/InputSearchFilter.tsx","components/custom/InputPasteHandler.tsx","components/custom/useForm.tsx","components/custom/useOverlay.tsx","components/custom/useSignalR.tsx","components/custom/EChart.tsx","components/common/SignalManager.tsx","models/common.ts","models/identity.ts","models/index.ts","utils/index.ts","store/actions/graphql.ts","models/requirements.ts","utils/date-utils.ts","components/routes.tsx","store/jobs.ts","i18n.ts","utils/hooks.tsx","store/actions/admin.ts","store/actions/resources.ts","store/actions/profile.ts","store/user.ts","store/actions/jobs.ts","models/notifications.ts","components/user/DynamicProperties.tsx","store/actions/notifications.ts","store/notifications.ts","store/actions/utils.ts","store/actions/contractors.ts","store/requirements.ts","models/works.ts","models/resources.ts","store/actions/search.ts","utils/security.ts","utils/string-utils.ts","store/actions/documents.ts","store/actions/requirements.ts","store/actions/user.ts","utils/file-utils.ts","store/actions/app.ts","store/app.ts","utils/storage.ts","components/custom/Loading.tsx","store/actions/reports.ts","components/custom/BreadcrumbItem.tsx","components/custom/useWorkFormSettings.tsx","utils/expressions/index.ts","components/requirements/ViewRequirementHistory.tsx","models/jobs.ts","modules/ModuleManager.tsx","components/viewers/ImageViewer.tsx","components/viewers/PdfViewer.tsx","components/viewers/DocumentViewer.tsx","store/identity.ts","store/constants.ts","components/requirements/RequirementDocumentInfo.tsx","security/index.ts","AppHistory.ts","utils/key-utils.ts","containers/index.tsx","components/custom/Portal.tsx","components/custom/DataLoader.tsx","components/notifications/NotificationMessages.tsx","components/custom/useSearch.tsx","components/jobs/ManageJobDepartments.tsx","containers/jobs/ManageJobDepartmentsContainer.tsx","containers/HelpDeskSupportContainer.tsx","components/HelpDeskSupport.tsx","store/modules.ts","components/notifications/MessageIcon.tsx","components/notifications/NotificationMessageDisplayName.tsx","components/requirements/AcceptRequirement.tsx","containers/requirements/RejectRequirementContainer.tsx","components/requirements/RejectRequirement.tsx","components/requirements/ValidateAllRequirements.tsx","containers/requirements/ValidateAllRequirementsContainer.tsx","containers/notifications/ValidateRequirementsFromNotificationMessagesContainer.tsx","components/notifications/ValidateRequirementsFromNotificationMessages.tsx","containers/requirements/ViewRequirementHistoryContainer.tsx","components/notifications/NotificationMessageEffect.tsx","utils/expressions/parser.js","store/admin.ts","store/contractors.ts","store/index.ts","store/work.ts","Constants.ts","components/NavMenu.tsx","containers/NavMenuContainer.tsx","components/custom/RemoteHtml.tsx","containers/FooterContainer.tsx","components/Footer.tsx","components/Cookies.tsx","components/Layout.tsx","components/admin/logs/LastLogs.tsx","components/samples/Chart.tsx","components/admin/charts/StorageChart.tsx","containers/admin/ModuleContainer.tsx","components/admin/Module.tsx","containers/requirements/ForceValidationResourceContainer.tsx","components/requirements/ForceValidationResource.tsx","components/requirements/ViewResourceHistory.tsx","components/contractors/EditContractor.tsx","containers/contractors/EditContractorContainer.tsx","store/actions/machineries.ts","store/machineries.ts","components/requirements/UploadRequirement.tsx","containers/requirements/UploadRequirementContainer.tsx","containers/requirements/ValidateRequirementContainer.tsx","components/requirements/ValidateRequirement.tsx","containers/requirements/AddRequirementIncidenceContainer.tsx","components/requirements/AddRequirementIncidence.tsx","containers/requirements/AddRequirementNoteContainer.tsx","components/requirements/AddRequirementNote.tsx","containers/requirements/ViewRequirementIncidencesContainer.tsx","components/requirements/ViewRequirementIncidences.tsx","containers/requirements/ViewRequirementNotesContainer.tsx","components/requirements/ViewRequirementNotes.tsx","store/actions/workers.ts","store/workers.ts","containers/resources/ResourcePhotoContainer.tsx","resources/ResourcePhoto.tsx","components/requirements/ViewRequirementValidations.tsx","components/requirements/EditRequirements.tsx","containers/requirements/EditRequirementsContainer.tsx","components/machineries/MachineryRequirements.tsx","components/custom/useContractorFromAppUser.tsx","containers/machineries/EditMachineryFormContainer.tsx","components/machineries/EditMachineryForm.tsx","components/machineries/MachineryRoutes.tsx","components/machineries/EditMachinery.tsx","containers/machineries/EditMachineryContainer.tsx","components/workers/WorkerRequirements.tsx","components/workers/EditWorkerForm.tsx","containers/workers/EditWorkerFormContainer.tsx","components/workers/WorkerRoutes.tsx","components/workers/EditWorker.tsx","containers/workers/EditWorkerContainer.tsx","containers/jobs/JobAuthorizeFormContainer.tsx","components/jobs/JobAuthorizeForm.tsx","containers/jobs/JobRevokeFormContainer.tsx","components/jobs/JobRevokeForm.tsx","components/jobs/JobFinalizeForm.tsx","containers/jobs/JobFinalizeFormContainer.tsx","containers/jobs/JobReactivateFormContainer.tsx","components/jobs/JobReactivateForm.tsx","containers/jobs/JobStatusContainer.tsx","components/jobs/JobStatus.tsx","components/jobs/JobPanelActions.tsx","containers/jobs/JobHasResourceRequirementsContainer.tsx","components/jobs/JobHasResourceRequirements.tsx","components/jobs/JobRequirementsSubContractor.tsx","containers/jobs/JobRequirementsContainer.tsx","components/jobs/JobRequirements.tsx","containers/user/JobLoader.tsx","components/contractors/CreateContractorInvitation.tsx","containers/contractors/CreateContractorInvitationContainer.tsx","components/jobs/JobData.tsx","containers/jobs/JobDataContainer.tsx","components/jobs/JobAddContractor.tsx","containers/jobs/JobAddContractorContainer.tsx","components/common/ResourceStatus.tsx","components/jobs/EditJobHasContractor.tsx","containers/jobs/EditJobHasContractorContainer.tsx","containers/jobs/EditJobHasContractorFieldsContainer.tsx","components/jobs/EditJobHasContractorFields.tsx","components/jobs/JobContractors.tsx","containers/jobs/JobContractorsContainer.tsx","components/common/CountryRegionSelect.tsx","components/jobs/JobRequestContractor.tsx","containers/jobs/JobRequestContractorContainer.tsx","components/jobs/ProcessContractorRequest.tsx","components/jobs/JobContractorRequests.tsx","containers/jobs/JobContractorRequestsContainer.tsx","containers/jobs/JobContractorSubRequestsContainer.tsx","components/jobs/JobContractorSubRequests.tsx","containers/jobs/JobInformationLoadedContainer.tsx","components/jobs/JobInformationLoaded.tsx","components/jobs/list/JobCard.tsx","containers/jobs/JobInfoCardContainer.tsx","components/jobs/JobInfoCard.tsx","containers/jobs/JobInformationLoadedControlContainer.tsx","components/jobs/JobInformationLoadedControl.tsx","containers/jobs/JobNotifyInformationLoadedContainer.tsx","components/jobs/JobNotifyInformationLoaded.tsx","components/jobs/ManageJobMachineries.tsx","containers/jobs/ManageJobMachineriesContainer.tsx","containers/jobs/AddJobHasMachineryContainer.tsx","components/machineries/AddJobHasMachinery.tsx","components/machineries/SelectJobHasMachinery.tsx","containers/jobs/SelectJobHasMachineryContainer.tsx","components/jobs/EditJobHasWorker.tsx","containers/jobs/EditJobHasWorkerContainer.tsx","components/jobs/ManageJobWorkers.tsx","containers/jobs/ManageJobWorkersContainer.tsx","components/jobs/JobAddWorker.tsx","containers/jobs/JobAddWorkerContainer.tsx","containers/jobs/UploadRequirementContainer.tsx","components/jobs/UploadRequirement.tsx","containers/jobs/CreateRequirementContainer.tsx","components/jobs/CreateRequirement.tsx","components/jobs/JobRoutes.tsx","containers/jobs/JobRoutes.tsx","containers/user/JobContainer.tsx","components/jobs/JobComponent.tsx","components/admin/JobForm.tsx","components/user/Jobs.tsx","containers/user/JobsContainer.tsx","components/contractors/ViewContractorInvitations.tsx","containers/contractors/ViewContractorInvitationsContainer.tsx","components/contractors/AddContractor.tsx","components/contractors/ManageContractors.tsx","containers/contractors/ManageContractorsContainer.tsx","containers/contractors/ManageSubcontractorsContainer.tsx","components/contractors/ManageSubcontractors.tsx","containers/contractors/ContractorRequirementsContainer.tsx","components/contractors/ContractorRequirements.tsx","components/contractors/ManageSubContractorRequests.tsx","containers/contractors/ManageSubContractorRequestsContainer.tsx","components/contractors/ContractorModule.tsx","components/notifications/NotificationsCenter.tsx","containers/notifications/NotificationsCenterContainer.tsx","components/user/SelectWork.tsx","containers/user/SelectWorkContainer.tsx","models/reports.ts","components/custom/useSynchronizedDispatch.tsx","components/reports/ReportOutputTableComponent.tsx","components/reports/ReportOutputBarChartComponent.tsx","components/reports/ReportOutputComponent.tsx","containers/reports/ReportContainer.tsx","components/reports/ReportComponent.tsx","components/work/accessControl/Machineries.tsx","components/work/accessControl/Workers.tsx","components/work/WorkAccessControlRoutes.tsx","containers/work/WorkAccessControl.tsx","components/work/WorkAccessControl.tsx","components/user/Work.tsx","containers/user/WorkContainer.tsx","containers/user/WorkLoaderContainer.tsx","components/user/WorkLoader.tsx","containers/work/WorkReportsContainer.tsx","components/work/WorkReports.tsx","components/work/WorkSubContractorRequests.tsx","containers/work/WorkSubContractorRequestsContainer.tsx","components/machineries/MachineryJobsDialog.tsx","containers/machineries/MachineryJobsDialogContainer.tsx","components/machineries/ViewMachineries.tsx","containers/machineries/ViewMachineriesContainer.tsx","components/workers/WorkerJobsDialog.tsx","containers/workers/WorkerJobsDialogContainer.tsx","containers/workers/ProfessionalQualificationsDialogContainer.tsx","components/workers/ProfessionalQualificationsDialog.tsx","components/workers/ViewWorkers.tsx","containers/workers/ViewWorkersContainer.tsx","store/documents.ts","models/documents.ts","components/documents/DocumentLogs.tsx","components/documents/FolderForm.tsx","components/documents/UploadFileForm.tsx","components/documents/EditDocumentForm.tsx","components/documents/ManageDocuments.tsx","containers/documents/ManageDocumentsContainer.tsx","containers/work/WorkDocumentsContainer.tsx","components/work/WorkDocuments.tsx","containers/users/ManageWorkerAppUserContainer.tsx","components/users/ManageWorkerAppUser.tsx","components/users/WorkerForm.tsx","containers/users/WorkUsersContainer.tsx","components/users/WorkUsers.tsx","containers/work/WorkRequirementDocumentContainer.tsx","components/requirements/ViewRequirementDocument.tsx","components/contractors/EditContractorFormContainer.tsx","components/contractors/EditContractorForm.tsx","components/contractors/CreateWorkContractorAppUser.tsx","components/common/ManageRelations.tsx","components/contractors/WorkContractorAccessData.tsx","containers/contractors/WorkContractorAccessDataContainer.tsx","components/contractors/ContractorRoutes.tsx","containers/communications/CommunicationFormContainer.tsx","components/communications/CommunicationForm.tsx","components/communications/CommunicationsList.tsx","containers/communications/CommunicationsListContainer.tsx","containers/communications/ValidateCommunicationContainer.tsx","components/communications/ValidateCommunication.tsx","containers/communications/CurrentCommunicationsContainer.tsx","components/user/Module.tsx","components/communications/CurrentCommunications.tsx","containers/user/UserModuleContainer.tsx","store/actions/identity.ts","components/auth/LoginPanel.tsx","containers/auth/LoginContainer.tsx","components/guest/Home.tsx","containers/HomeContainer.tsx","components/Home.tsx","components/admin/DocumentTypeForm.tsx","containers/admin/AdminDocumentTypesContainer.tsx","components/admin/AdminDocumentTypes.tsx","components/admin/UserForm.tsx","containers/admin/AdminUsersContainer.tsx","components/admin/AdminUsers.tsx","containers/admin/AdminLoaderContainer.tsx","components/admin/AdminLoader.tsx","components/admin/AdminRoutesWrapper.tsx","containers/admin/AdminWorkLoader.tsx","components/admin/WorkspaceForm.tsx","components/admin/AdminWorkWorkspaces.tsx","components/admin/WorkShiftForm.tsx","components/admin/AdminWorkShifts.tsx","components/admin/WorkForm.tsx","components/admin/AdminWorkUsers.tsx","containers/admin/AdminWorkUsersContainer.tsx","components/admin/WorkI18NResourceForm.tsx","components/admin/AdminWorkI18NResources.tsx","components/admin/ActivityTypeForm.tsx","components/admin/AdminActivityType.tsx","components/admin/LegalFormForm.tsx","components/admin/AdminLegalForm.tsx","components/admin/WorkFunctionForm.tsx","components/common/ManageManyToManyRelations.tsx","components/admin/AdminWorkFunction.tsx","components/admin/WorkToolbar.tsx","components/admin/MachineryTypeForm.tsx","components/admin/MachinerySubTypeForm.tsx","components/admin/AdminMachineryType.tsx","components/admin/WorkerDocumentTypeForm.tsx","components/admin/AdminWorkerDocumentType.tsx","components/admin/WorkerTypeForm.tsx","components/admin/AdminWorkerType.tsx","components/admin/EditWork.tsx","containers/admin/EditWorkContainer.tsx","containers/admin/AdminWorksContainer.tsx","components/admin/AdminWorks.tsx","components/admin/devel/GraphQlUi.tsx","components/admin/DepartmentForm.tsx","containers/admin/AdminWorkDepartmentsContainer.tsx","components/admin/AdminWorkDepartments.tsx","components/admin/PermissionForm.tsx","containers/admin/AdminWorkPermissionsContainer.tsx","components/admin/AdminWorkPermissions.tsx","components/common/ManagePolicies.tsx","containers/admin/UserFormContainer.tsx","components/admin/WorkerForm.tsx","containers/admin/AdminWorkWorkersContainer.tsx","components/admin/AdminWorkWorkers.tsx","components/admin/PropertyTypeForm.tsx","components/admin/PropertyGroupTypeForm.tsx","components/admin/PropertyGroupTypes.tsx","containers/admin/PropertyGroupTypesContainer.tsx","components/admin/AdminWorkConfiguration.tsx","containers/admin/AdminWorkConfigurationContainer.tsx","components/contractors/RegisterContractor.tsx","containers/contractors/RegisterContractorContainer.tsx","containers/identity/ResetPasswordContainer.tsx","components/identity/RecoverPassword.tsx","components/user/ChangePassword.tsx","containers/user/ChangePasswordContainer.tsx","components/user/UserConfiguration.tsx","containers/user/UserConfigurationContainer.tsx","components/admin/requirementTypes/EditRequirementTypeDependencies.tsx","containers/admin/requirementTypes/EditRequirementTypeDependenciesContainer.tsx","components/admin/requirementTypes/RequirementConstants.ts","components/admin/requirementTypes/EditRequirementTypeExpression.tsx","containers/admin/requirementTypes/EditRequirementTypeExpressionContainer.tsx","components/admin/requirementTypes/EditRequirementTypeDocumentRestrictions.tsx","containers/admin/requirementTypes/EditRequirementTypeDocumentRestrictionsContainer.tsx","components/admin/requirementTypes/RequirementTypeSuggestions.tsx","containers/admin/requirementTypes/RequirementTypeSuggestionsContainer.tsx","containers/admin/requirementTypes/RequirementTypeValidationHolderContainer.tsx","components/admin/requirementTypes/RequirementTypeValidationHolderForm.tsx","components/admin/requirementTypes/RequirementTypeValidationHolders.tsx","containers/admin/requirementTypes/RequirementTypeValidationHoldersContainer.tsx","components/admin/AdminWorkRequirements.tsx","containers/admin/AdminWorkRequirementsContainer.tsx","components/admin/NotificationTemplateForm.tsx","containers/admin/AdminNotificationTemplatesContainer.tsx","components/admin/AdminNotificationTemplates.tsx","components/admin/NotificationMessageForm.tsx","containers/admin/AdminWorkMessagesContainer.tsx","components/admin/AdminWorkMessages.tsx","containers/admin/AdminWorkNotificationsContainer.tsx","components/admin/AdminWorkNotifications.tsx","components/admin/FieldValidationForm.tsx","containers/admin/AdminWorkValidationsContainer.tsx","components/admin/AdminWorkValidations.tsx","containers/admin/contractors/ManageContractorSettingsContainer.tsx","components/admin/contractors/ManageContractorSettings.tsx","containers/admin/machineries/ManageMachinerySettingsContainer.tsx","components/admin/machineries/ManageMachinerySettings.tsx","containers/admin/workers/ManageWorkerSettingsContainer.tsx","components/admin/workers/ManageWorkerSettings.tsx","containers/admin/jobs/ManageJobSettingsContainer.tsx","components/admin/jobs/ManageJobSettings.tsx","containers/admin/modules/ManageWorkModulesContainer.tsx","components/admin/modules/ManageWorkModules.tsx","components/admin/events/EventTriggerForm.tsx","containers/admin/events/ManageWorkEventsContainer.tsx","components/admin/events/ManageWorkEvents.tsx","containers/modules/ModuleViewContainer.tsx","components/modules/ModuleView.tsx","modules/index.ts","containers/modules/ModuleViewRedirectionContainer.tsx","components/ContractorProfile.tsx","containers/ContractorProfileContainer.tsx","containers/WorkerProfileContainer.tsx","components/WorkerProfile.tsx","containers/UserProfileContainer.tsx","components/UserProfile.tsx","App.tsx","registerServiceWorker.ts","index.tsx","store/configureStore.ts"],"names":["connect","state","_state$identity","work","user","identity","_ref","action","children","_useState","useState","_useState2","_slicedToArray","hasPermissions","setHasPermissions","evalPermission","p","roles","includes","expression","evalAndParse","workId","id","split","undefined","find","r","policies","useEffect","perms","permissions","filter","length","usePermissions","props","opts","_opts$ctx","arguments","hasPermission","ctx","S","_objectSpread","security","explicit","moduleManager","_React$useState","React","_React$useState2","values","setValues","_React$useState3","_React$useState4","setId","permissionCtx","requirePermission","_asyncToGenerator","_regeneratorRuntime","mark","_callee","name","key","_ref2","defaultValue","defaultPermission","res","_args","wrap","_context","prev","next","sent","debug","console","log","concat","default","abrupt","stop","_x","_x2","apply","initialize","_ref3","_callee2","keys","_i","_keys","_opts$defaults","k","v","perm","_context2","Object","defaults","Date","getTime","getId","dependencies","get","_values$name2","_values$name","isGestor","isContractor","ButtonSet","className","F","label","labelClassName","FieldsBox","collapsible","closed","title","containerClassName","isDown","setIsDown","classNames","onClick","b","FormField","errorMessage","FloatField","htmlFor","G","signals","fieldIsVisible","InlineInputText","style","object","field","save","loading","useLoading","update","ev","target","value","type","onChange","render","InlineSelect","options","optionLabel","optionValue","Select","InputGroup","suffix","LoadingBox","Loading","message","NotificationBox","t","useTranslation","notification","NotificationType","ERROR","Message","severity","text","NotificationsBox","notifications","map","n","R","TogglePanel","_props$isOpen","isOpen","setIsOpen","_","a","titleIcon","bodyClassName","__pages","useSearchPaginate","_pages$props$search","_props$limit","_props$dependencies","_data$data","prevDependencies","total","page","search","data","limit","DEFAULT_LIMIT","setData","currentLimit","setCurrentLimit","_React$useState5","_React$useState6","sortBy","setSortBy","useMessage","initialized","_ref4","_props$normalizeKeys","_props$persist","filters","pageValue","actualLimit","resp","rawData","paginate","normalizeKeys","set","persist","hasValue","current","lazy","exportToXls","_ref5","_ref6","filename","useI18N","_args2","searchExportToXls","i18next","language","downloadBlob","exportFilename","renderLoading","renderBox","asc","doSearch","useSearchFirst","messages","InputEventDispatcher","dispatchEvent","delay","_classCallCheck","ts","sended","this","enqueue","bind","_createClass","_this$value","setTimeout","event","_this$onChange","call","FilterInputTextOnEnter","setValue","onKeyPress","e","useSearchFilters","getLocalStorageKey","setFilters","_React$useState7","storageGet","_React$useState8","filterValues","setFilterValues","_React$useState9","_React$useState10","temporaryFilterValues","setTemporaryFilterValues","_React$useState11","_React$useState12","defaultFilterValues","setDefaultFilterValues","_React$useState13","_React$useState14","error","setError","propagate","buttonRef","canApplyFilter","f","_props$security","_props$security2","excludeRole","hasRole","requireRole","storeKey","rawFs","fs","defaultValues","_iterator","_step","currentYear","currentMonth","_state$f$name","getUserFilters","_createForOfIteratorHelper","s","done","UserSearchFilterType","REFERENCE","getFullYear","getMonth","err","t0","storageSet","applyFilters","setShowPanel","renderFilterRow","filterComponent","BOOL","InputSwitch","checked","awaitForApply","_defineProperty","_temporaryFilterValue","_temporaryFilterValue4","_temporaryFilterValue5","_filterValues$f$name3","_temporaryFilterValue6","_temporaryFilterValue8","_filterValues$f$name4","_temporaryFilterValue9","TEXT","MULTI_REFERENCE","_props$references$f$n","_props$references","referenceValues","references","filterValue","_temporaryFilterValue2","_filterValues$f$name","_temporaryFilterValue3","_filterValues$f$name2","newValue","x","fv","_toConsumableArray","preventDefault","stopPropagation","multiple","sort","_a$name","shouldTranslate","localeCompare","i","DATE","DATE_RANGE","_temporaryFilterValue7","oldValue","_temporaryFilterValue10","renderFilterComponent","help","Button","icon","tooltip","clearFilters","panelRef","hide","closePanel","color","_React$useState15","_React$useState16","showPanel","RenderAsButton","hasFilters","toggle","OverlayPanel","ref","Component","signature","JSON","stringify","mergeFilters","merge","setFilter","renderAsButton","instance","oneOf","role","exclude","o","MAIL_REGEXP","validations","minLength","min","match","pre","notEmpty","trim","email","validate","prop","errors","fn","ValidationBuilder","i18n","_this","build","resourceType","fields","_fields$filter","fieldValidations","custom","createFieldValidation","_step2","_iterator2","msg","validation","push","all","add","V","condition","_this2","property","_step3","_iterator3","ownProps","permission","InputSearchFilter","_props$title","searchInput","filterKey","dispatcher","focus","useKeyListener","keyCtrl","handle","append","placeholder","useInputSearch","onInput","_props$onChange","assign","InputPasteHandler","containerEl","handlePasteEvent","w","window","clipboardData","getData","onPaste","addEventListener","removeEventListener","useForm","initialValues","setLoading","form","useFormik","readonly","onSubmit","_onSubmit","ok","validateOnChange","validateOnMount","setErrors","hasError","isFormFieldValid","getFormErrorMessage","toLowerCase","handleChange","parseFloat","isInvalid","isLoading","autoComplete","_form$values$name7","inputOpts","suggestions","containerStyle","AutoComplete","readOnly","completeMethod","autoFocus","autoCompleteTextArea","_form$values$name6","Dropdown","setFieldValue","calendar","_form$values$name9","_opts$dateFormat","DateUtils","Calendar","locale","currentLocale","dateFormat","date","utc","UTC","getDate","showIcon","checkBox","_form$values$name5","disabled","clear","_Object$keys","_i2","_Object$keys2","editor","_form$values$name4","Editor","onTextChange","htmlValue","errorBox","comp","floatField","handleSubmit","hasChanges","input","_opts$type2","_form$values$name3","_opts$type","_form$values$name2","onBlur","inputs","names","_opts$","_opts$2","_opts$name","_opts$name2","_opts$name$type","_opts$name3","_opts$name4","_opts$name5","_form$values$name","_opts$name8","_opts$name9","_opts$name10","_opts$name6","_opts$name7","_opts$name7$onBlur","isValid","multiselect","_opts$optionValue2","_opts$optionLabel2","isSimple","blank","blankText","_opts$options$find2","resolve","MultiSelect","observe","handler","observeValue","select","_opts$optionValue","_opts$optionLabel","iw","obj","desc","getOwnPropertyDescriptor","Boolean","writable","isWritable","_opts$options$find","setFieldValues","resetForm","_i3","_Object$keys3","span","_form$values$name10","suffixField","textarea","_form$values$name8","resize","minHeight","rows","useOverlay","_props$style","minWidth","requireData","show","__connections","__connectionHandlers","startSignalNotifications","signalConnection","start","useSignalR","_props$endpoint","endpoint","conn","method","signalR","withUrl","withAutomaticReconnect","on","rawMessage","_connectionHandlers$","handlers","h","onclose","getConnection","uniqueKey","registerHandler","onMessage","unregisterHandler","EChart","canvasRef","chartInstance","_props$height","_props$height2","domElement","parent","parentElement","parseInt","getBoundingClientRect","height","chart","echarts","setOption","parsePredicate","source","Function","SignalManager","hiddenFields","parse","atob","raw","signal","when","createSources","visibilitySignals","countyToNode","c","y","regionToNode","counties","ct","countryToNode","regions","countriesToNode","Roles","getMachineryName","m","code","licenseNumber","prefixLicenseNumber","suffixLicenseNumber","EventTriggerType","getEventTriggerTypes","BeforeUpdate","BeforeCreate","BeforeUpdateOrCreate","AfterUpdate","AfterCreate","AfterUpdateOrCreate","__d","_console","unique","uniqueIndexes","redirectToExternal","url","location","href","redirectToExternalNewTab","open","goBack","history","redirectTo","_opts$reload","reload","ms","Promise","getGraphqlError","op","flatten","reduce","acc","downloadFileFromUrl","link","document","createElement","download","body","appendChild","click","removeChild","getIntParams","getIntQueryParameters","parametersArr","startsWith","substr","parameters","_k$split","_k$split2","isNaN","getQueryParameter","parameterName","_parameters$parameter","_k$split3","_k$split4","nameOf","formatFileSize","formatLocalDate","formatMinutes","timeToMinutes","format","interpolate","strConcat","strJoin","zeroPad","zeroRightPad","onNotification","Hooks","KeyCodes","keyIsEnter","_client","getClient","ApolloClient","uri","cache","InMemoryCache","q","_q","query","variables","client","parts","gql","fetchPolicy","noCache","returnPath","mapEvery","parseVariables","getTimezoneOffset","fromUtc","_x3","_x4","_m","parsedVariables","mutate","mutation","RequirementTypeKind","RequirementTargetType","RequirementValidationType","RequirementStatusFlag","requirementTargetTypes","Contractor","JobHasContractor","Machinery","JobHasMachinery","Worker","JobHasWorker","JobHasDepartment","Job","requirementCanUpload","targetType","_opts$requirementType","_opts$hasAccessJobInf","isContractorResource","indexOf","isJobContractorResource","status","isCurrent","requirementStatusRestriction","statusTypeId","RequirementStatusTypes","NOT_LOADED","NOT_VALIDATED","PENDING","VALIDATED","requirementType","requireJobInformationAccess","hasAccessJobInformation","isWorker","requirementCanBeValidated","RequirementTypeDependencyType","fulfillDocumentIsFile","userCanValidateRequirement","_requirementType$vali","_requirementType$vali2","_requirementType$vali3","validationHolders","holder","_security$user","_security$user2","_security$user2$depar","_security$user3","_security$user3$workF","_ctx$mainDepartment$r","_ctx$mainDepartment","appUserId","departmentId","departments","workFunctionId","workFunctions","jobResponsible","getWorkerIds","mainDepartment","responsibleId","userIsValidationHolder","FreeRequirementType","parseDate","_parts$","sep","isDmy","dateIsLessOrEqual","compareDates","getHours","getMinutes","getSeconds","dateIsTodayOrFuture","today","setHours","patterns","d","toString","toUpperCase","join","formatFullTime","setTime","minutes","hours","Math","floor","mints","_data$split","_data$split2","toUtc","off","endsWith","substring","formatFromUtc","formatDateTimeFromUtc","toIso8601","isDate","dateISTodayOrFuture","strNow","interval","oneDayMs","toQuery","goToJobs","goToJob","jobId","goToJobCard","jobCardRoute","goToJobDocumentation","goToJobAddContractor","parentId","goToJobCreateRequirement","resourceId","statusType","jobCreateRequirementRoute","goToJobResourceCreateRequirement","jobCreateResourceRequirementRoute","goToJobContractors","loadInvitations","jobContractorsRoute","goToJobSubContractors","goToJobMachineries","jobMachineriesRoute","goToJobHasMachinery","jobHasMachineryId","goToJobNotifyInformationLoaded","jobNotifyInformationLoadedRoute","goToJobRequirements","jobRequirementsRoute","goToCommunications","goToJobWorkers","jobWorkersRoute","goToJobWorker","jobHasWorkerId","routeJobHasWorker","goToJobInformationLoaded","goToJobInformationLoadedControl","jobInformationLoadedControlRoute","goToJobEditContractor","jobHasContractorId","jobHasContractorRoute","goToJobEditContractorRequirements","jobHasContractorRequirementsRoute","goToJobEditMachineryRequirements","jobHasMachineryRequirementRoute","goToJobEditWorkerRequirements","jobHasWorkerRequirementsRoute","args","goToMachineryRequirements","machineryId","machineryRequirementsRoute","goToMachineries","machineriesRoute","goToMachinery","machineryRoute","goToWorkerRequirements","workerId","workerRequirementsRoute","goToWorker","workerRoute","goToWorkers","workersRoute","goToContractors","contractorsRoute","goToContractor","contractorId","contractorRoute","goToContractorRequirements","contractorRequirementsRoute","goToContractorAccessData","contractorAccessDataRoute","subContractorsRoute","goToSubContractors","jobHasMachineryRoute","jobHasWorkerRoute","jobInformationLoadedRoute","Types","plainActions","getJobStatus","JobsActions","saveJobStatus","jobNotifyInformationLoaded","createContractorRequest","processContractorRequest","getJobContractorRequests","getJob","activateJobHasContractor","saveJobHasContractor","removeJobHasContractor","deleteJobHasContractor","deleteJobHasWorker","deleteJobHasMachinery","searchContractors","getJobContractors","getJobContractorsViewModel","getJobHasContractor","getJobDepartments","saveJobHasDepartment","removeJobHasDepartment","getJobHasMachineries","getJobHasMachinery","activateJobHasMachinery","saveJobHasMachinery","searchMachineries","removeJobHasMachinery","getJobHasWorker","getJobHasWorkers","searchWorkers","activateJobHasWorker","saveJobHasWorker","removeJobHasWorker","getJobLogs","actionCreators","clearSelectedJob","dispatch","ClearSelectedJob","clearSelectedContractor","ClearSelectedContractor","clearSelectedJobHasContractor","ClearSelectedJobHasContractor","selectJobHasContractor","jobHasContractor","SelectJobHasContractor","loadJob","N","startLoading","OnJobLoaded","parseJob","job","stopLoading","saveJob","_job$id","saveResp","success","reducer","incomingAction","_action$payload$locat","LocationChange","payload","pathname","selectedJob","selectedJobHasContractor","es","require","en","it","createOriginalResources","translation","loadResources","resources","navigator","use","initReactI18next","init","lng","interpolation","escapeValue","_i18n$getDataByLangua","getDataByLanguage","_len","Array","_key","_r$key","installResources","moduleKeys","newResources","_loop","l","newLangResources","languages","defaultLanguage","addLocale","firstDayOfWeek","dayNames","dayNamesShort","dayNamesMin","monthNames","monthNamesShort","__consumedNotifications","DEFAULT_TOAST_LIFE","DEFAULT_TOAST_SEVERITY","useToast","_opts$life","_opts$severity","life","summary","detail","Toast","consumedNotifications","useMemoized","useDialogs","dialogs","setDialogs","dialogData","setDialogData","cnf","setCnf","dialog","_props$onShow","onShow","clearConfirm","confirm","showFromEvent","content","Dialog","header","showHeader","maskClassName","maximized","onHide","visible","showCloseFooter","renderConfirm","_opts$confirmText","_opts$cancelText","ConfirmDialog","acceptLabel","confirmText","rejectLabel","cancelText","accept","onConfirm","reject","onCancel","getState","useFormDialog","showAdd","setShowAdd","showEdit","setShowEdit","renderNormal","_props$addClassName","_props$editClassName","addClassName","width","addTitle","editClassName","editTitle","renderFooter","onSaveClicked","portal","Portal","container","clearErrors","Footer","setEditError","newerrors","edit","currentEdit","useObjectState","inhibitOnChange","parseAsFloat","parseAsInt","fieldName","_value$fieldName","eventOrValue","reset","setInt","setFloat","_loading$global","lock","wrapRender","optsArgs","renderModal","dateDelegate","dateTimeDelegate","booleanDelegate","createDelegate","useDataTable","_React$useState17","_React$useState18","currentSortField","setCurrentSortField","_React$useState19","_React$useState20","currentSortOrder","setCurrentSortOrder","wrapTooltip","renderAction","actions","actionIsMultiple","Column","headerClassName","index","uniqueId","command","getElementById","SplitButton","model","renderMultipleAction","headerStyle","_a$tooltip","_a$tooltip2","_a$tooltip3","_a$tooltip4","onRowClicked","doSort","_props$onSort","sortField","sortOrder","onSort","_props$emptyMessage","_props$data","DataTable","sortMode","rowHover","selectionMode","scrollHeight","tableStyle","onRowClick","emptyMessage","scrollable","resizableColumns","paginator","rowsPerPageOptions","totalRecords","paginatorTemplate","currentPageReportTemplate","columns","str","charAt","slice","_c$render","delegateF","delegate","sortKey","sortable","renderColumn","useTreeTable","_React$useState21","_React$useState22","nodes","setNodes","_React$useState23","_React$useState24","expandedKeys","setExpandedKeys","createKey","_d$key","_props$parentProperty","__typename","parentProperty","createNode","_d$key2","prepareChildrenNodes","_d2","node","_step4","childrenProperty","_iterator4","ch","prepareNodes","parentKey","stack","nodesAll","availableIds","count","pop","newNode","sortProperty","splice","expand","_expandedKeys","_d$key3","prepareFlatNodes","_step5","_iterator5","_props$idProperty","_props$parentProperty2","idProperty","_a$tooltip5","_a$tooltip6","_a$tooltip8","_a$tooltip7","expander","_c$field","TreeTable","columnResizeMode","showGridlines","stripedRows","onToggle","selectable","useConfirm","_args$event","_event$originalEvent","_opts$target","_o$message","_ref7","_o$icon","originalEvent","confirmPopup","_opts$accept","_opts$reject","useStringState","_React$useState25","_React$useState26","setState","useNumberState","_React$useState27","_React$useState28","_event$target","Number","useBooleanState","_React$useState29","_React$useState30","setFromBoolean","useResolveName","_opts$id","_React$useState31","_React$useState32","setCache","keyProperty","nameProperty","resolvedValue","translate","defaultName","AUTO_CLEAR_MILLIS","_React$useState33","_React$useState34","_React$useState35","_React$useState36","setSuccess","_React$useState37","successMessage","_React$useState38","setSuccessMessage","isSuccess","result","overrideOpts","isError","_overrideOpts$success","autoClear","clearAfterMillis","getError","renderIfError","useError","_React$useState39","_React$useState40","setFromOption","useRemoteData","provider","_React$useState41","_React$useState42","_ref8","_len2","_key2","finalParameters","then","hasValues","usePaginator","_opts$rowNumbers$","_opts$rowNumbers","_React$useState43","_React$useState44","currentPage","setCurrentPage","_React$useState45","rowNumbers","_React$useState46","currentRows","setCurrentRows","_opts$data","_opts$data2","_opts$rowNumbers2","_opts$data3","_opts$data3$data","_opts$data4","first","Paginator","onPageChange","doOnChange","onExport","useResolveCountryAndRegion","countries","countryId","regionId","countyId","country","region","county","rawOpts","handleKey","_opts$handle","keyCode","ctrlKey","shouldHandleEvent","useHideBodyScrollbar","classList","remove","useScheduler","schedule","useCallbackState","initialValue","_React$useState47","_React$useState48","_setState","callbackQueue","forEach","cb","callback","useDebounce","_React$useState49","_React$useState50","debouncedValue","setDebouncedValue","clearTimeout","useDispatcher","_props$delay","nts","_props$delay2","_props$handlers$name","_props$handlers","_props$delay3","onEvent","deps","getEventTriggers","_getEventTriggers","saveEventTrigger","_saveEventTrigger","getLogs","_getLogs","_callee3","_args3","_context3","_templateObject","_taggedTemplateLiteral","logs","_initialize","_callee4","_context4","_templateObject2","getUserById","_getUserById","_callee5","_context5","getUsers","_getUsers","_callee6","_context6","_templateObject3","saveUser","_x5","_saveUser","_callee7","_context7","_templateObject4","getWorks","_getWorks","_callee8","_context8","_templateObject5","getWorkResources","_x6","_getWorkResources","_callee9","_context9","getWorkDepartments","_x7","_getWorkDepartments","_callee10","_context10","saveDepartment","_x8","_saveDepartment","_callee11","inputData","department","_context11","ensureType","getWork","_x9","_getWork","_callee12","_context12","_templateObject6","saveWork","_x10","_saveWork","_callee13","_context13","_templateObject7","saveWorkspace","_x11","_saveWorkspace","_callee14","_inputData$properties","workspace","_context14","properties","formatProperty","removeWorkspace","_x12","_removeWorkspace","_callee15","_context15","_templateObject8","saveWorkShift","_x13","_saveWorkShift","_callee16","workShift","_context16","_templateObject9","removeWorkShift","_x14","_removeWorkShift","_callee17","_context17","_templateObject10","getDocumentTypes","_getDocumentTypes","_callee18","_context18","_templateObject11","saveDocumentType","_x15","_saveDocumentType","_callee19","dt","_context19","_templateObject12","doc","removeDocumentType","_x16","_removeDocumentType","_callee20","_context20","_templateObject13","associateAppUserToWorker","_x17","_x18","_x19","_associateAppUserToWorker","_callee21","forceNew","_args21","_context21","_templateObject14","loadWorkPermissions","_x20","_loadWorkPermissions","_callee22","_context22","saveWorkPermission","_x21","_saveWorkPermission","_callee23","_context23","removeWorkPermission","_x22","_x23","_removeWorkPermission","_callee24","_context24","getJobPropertyGroups","_x24","_getJobPropertyGroups","_callee25","_context25","getPropertyGroupTypes","_x25","_getPropertyGroupTypes","_callee26","_context26","savePropertyGroupType","_x26","_x27","_savePropertyGroupType","_callee27","_data$hidable","_data$mandatory","_context27","description","containerType","styleClassName","objectType","isActive","isInternal","hidable","mandatory","removePropertyGroupType","_x28","_x29","_removePropertyGroupType","_callee28","_context28","savePropertyType","_x30","_x31","_savePropertyType","_callee29","_context29","typeId","propertyOrder","selectOptions","removePropertyType","_x32","_x33","_removePropertyType","_callee30","_context30","getWorkRequirementGroups","_x34","_getWorkRequirementGroups","_callee31","requirementTargetType","filterRequirementType","_args31","_context31","g","_g$requirementTypes","requirementTypes","getRequirementType","saveWorkRequirementGroup","saveWorkRequirementType","removeWorkRequirementTypeDependency","requirementTypeDependencyId","saveRequirementTypeSuggestion","removeRequirementTypeSuggestion","saveRequirementTypeValidationHolder","removeRequirementTypeValidationHolder","saveWorkRequirementTypeDependency","removeRequirementTypeDocumentRestriction","requirementTypeId","restrictionId","saveRequirementTypeDocumentRestriction","getNotificationTemplates","_x35","_getNotificationTemplates","_callee32","_context32","saveNotificationTemplate","_x36","_x37","_saveNotificationTemplate","_callee33","_context33","removeNotificationTemplate","_x38","_x39","_removeNotificationTemplate","_callee34","_context34","getNotificationMessages","_x40","_getNotificationMessages","_callee35","_context35","saveNotificationMessage","_x41","_x42","_saveNotificationMessage","_callee36","_context36","removeNotificationMessage","_x43","_x44","_removeNotificationMessage","_callee37","_context37","getFieldValidations","removeFieldValidation","saveFieldValidation","saveWorkerSettings","_x45","_x46","_saveWorkerSettings","_callee38","_context38","_templateObject15","saveMachinerySettings","_x47","_x48","_saveMachinerySettings","_callee39","_context39","_templateObject16","saveContractorSettings","_x49","_x50","_saveContractorSettings","_callee40","_context40","_templateObject17","saveJobSettings","_x51","_x52","_saveJobSettings","_callee41","_context41","_templateObject18","saveWorkHasModule","_x53","_x54","_saveWorkHasModule","_callee42","_context42","_templateObject19","saveMachineryType","_saveMachineryType","machineryType","removeMachineryType","_removeMachineryType","saveMachinerySubType","_saveMachinerySubType","machinerySubType","removeMachinerySubType","_removeMachinerySubType","saveWorker","worker","workspaces","getWorkers","_getWorkers","rrhh","_args5","fullName","surname","getWorkI18NResources","_getWorkI18NResources","saveWorkI18NResource","_saveWorkI18NResource","workI18NResource","getActivities","_getActivities","saveActivity","_saveActivity","activityType","removeWorker","_removeWorker","_args12","removeWorkI18NResource","_removeWorkI18NResource","removeActivity","_removeActivity","getLegalForms","_getLegalForms","saveLegalForm","_saveLegalForm","legalForm","removeLegalForm","_removeLegalForm","getWorkerDepartments","_getWorkerDepartments","getWorkerHasWorkspaces","_getWorkerHasWorkspaces","getWorkerWorkFunctions","_getWorkerWorkFunctions","work_functions","getDepartmentWorkers","_getDepartmentWorkers","workers","getWorkFunctionWorkers","_getWorkFunctionWorkers","work_function","saveDepartmentHasWorker","_saveDepartmentHasWorker","saveWorkerHasWorkspace","_saveWorkerHasWorkspace","workspaceId","removeWorkerHasWorkspace","_removeWorkerHasWorkspace","_templateObject20","saveWorkFunctionHasWorker","_saveWorkFunctionHasWorker","_templateObject21","removeDepartmentHasWorker","_removeDepartmentHasWorker","_templateObject22","removeWorkFunctionHasWorker","_removeWorkFunctionHasWorker","_templateObject23","getWorkspaces","_x55","_getWorkspaces","_templateObject24","getDepartments","_x56","_getDepartments","_templateObject25","addDepartmentPolicy","_x60","_x61","_x62","_addDepartmentPolicy","policy","removeDepartmentPolicy","_x63","_x64","_x65","_removeDepartmentPolicy","getWorkFunctions","_x66","_getWorkFunctions","_templateObject28","saveWorkFunction","_x69","_saveWorkFunction","workFunction","_templateObject31","removeWorkFunction","_x70","_x71","_removeWorkFunction","_templateObject32","getMachineryTypes","_x72","_getMachineryTypes","_templateObject33","getWorkerDocumentTypes","_x73","_getWorkerDocumentTypes","_templateObject34","saveWorkerDocumentType","_x74","_saveWorkerDocumentType","workerDocumentType","removeWorkerDocumentType","_x75","_x76","_removeWorkerDocumentType","_callee43","_context43","getWorkerTypes","_x77","_getWorkerTypes","_callee44","_context44","_templateObject35","saveWorkerType","_x78","_saveWorkerType","_callee45","workerType","_context45","removeWorkerType","_x79","_x80","_removeWorkerType","_callee46","_context46","_changePassword","_changeUserPassword","_recoverPassword","onInitialize","OnInitialize","loadWorks","works","UserActions","parseWork","createHelpDeskItem","ResourceActions","changePassword","changeUserPassword","recoverPassword","getJobs","getJobReferences","removeJob","saveCommunication","getCommunicationReceivers","getCommunication","loadContractors","contractors","ContractorsLoaded","loadMessages","validateCommunication","ValidateCommunication","selectWork","redirect","_state$identity$secur","_state$identity$secur2","reports","App","getFixedT","I18n","workI18NResources","Modules","initializeWork","getReports","SelectWorkResources","activityTypes","activities","legalForms","machineryTypes","workerTypes","workerDocumentTypes","workShifts","propertyGroupTypes","contractTypes","preventiveResources","requirementGroups","requirementStatusTypes","requirementValidationTypes","resourceStatusTypes","SelectWork","isGestorOrWorker","communications","PendingCommunications","version","_getJob","_getJobContractorRequests","contractorRequests","_getJobDepartments","_searchContractors","searchTerm","_createContractorRequest","contractorRequest","_contractorRequest$pr","saveJobHasContractorRequest","_processContractorRequest","_contractorRequest$pr2","processJobHasContractorRequest","_activateJobHasContractor","_saveJobHasContractor","contractor","_contractor$propertie","_saveJobHasDepartment","jobHasDepartment","_removeJobHasDepartment","jobHasDepartmentId","_removeJobHasContractor","_deleteJobHasContractor","_deleteJobHasWorker","_deleteJobHasMachinery","getJobHasContractorAppUsers","_getJobHasContractorAppUsers","appUsers","_searchMachineries","term","machineryTypeId","_args16","_getJobHasMachineries","machineries","relationId","_activateJobHasMachinery","_saveJobHasMachinery","_data$jobHasContracto","_data$properties","machinerySubTypeId","machineryName","startDate","machineryCode","machineryPrefixLicenseNumber","machineryLicenseNumber","machinerySuffixLicenseNumber","_removeJobHasMachinery","_saveJob","_data$properties2","contractTypeId","endDate","remarks","workShiftId","activityTypeId","preventiveResourceId","_x57","_x58","_getJobHasWorker","_w$worker","_w$worker2","parseProperties","_x59","_getJobHasWorkers","_searchWorkers","_args24","_saveJobHasWorker","_worker$properties","_x67","_x68","_activateJobHasWorker","_removeJobHasWorker","MessageType","messageTypes","MESSAGE","JOB_HAS_CONTRACTOR_REQUEST","PENDING_REQUIREMENT","JOB_CREATED","SUBCONTRACTOR_REQUEST","JOB_INFORMATION_LOADED","REQUIREMENT_VALIDATED","REQUIREMENT_INCIDENCE","INVALID_ITA","SUBCONTRACTOR_REQUEST_ACCEPTED","SUBCONTRACTOR_REQUEST_REJECTED","JOB_FINALIZED","RESOURCE_AUTHORIZED","RESOURCE_REJECTED","JOB_AUTHORIZED","JOB_REVOKED","REQUIREMENT_EXPIRED","MODULE_MESSAGE","REQUIREMENT_NOTE","REQUIREMENT_NEAR_EXPIRATION","parseMessage","__icons","translateNotificationIcon","_icons$icon","messageTitle","notificationType","DynamicProperty","_value$property$name","_value$property$name2","labelClass","tooltipKey","renderTooltip","Tooltip","mouseTrack","mouseTrackLeft","PropertyTypes","inputId","BOOLTEXT","_value$textPropertyNa","textPropertyName","SELECT","findProperty","groupId","_object$properties","propertyGroupTypeId","valueObj","DynamicPropertiesGroup","_group$properties","groupClassName","group","objectRelationProperty","PropertyGroupObjectType","JobHasContractorRequest","Workspace","findPropertyByGroup","_findProperty","styleObj","_a$propertyOrder","_b$propertyOrder","DynamicProperties","propertyGroup","_props$object$propert","_props$object$propert2","_props$object$propert3","groups","hideContractorProperties","inline","_props$embedPortal","embedPortal","resolveNotification","excludeMatchingNotifications","createNotification","notif","RemoveNotificationAction","onComplete","NotificationAdd","NotificationSuccess","ClearErrorsAction","LOADING","StopLoadingAction","removeNotification","addMessage","_message$data","_state$user$work","_message$data2","_state$user$work2","WorkId","OnMessage","_yield$Actions$getMes","selectedWork","filteredMessages","t1","t2","_m$data","_state$user$work3","_m$data2","RELOAD_NOTIFICATIONS","SetMessagesAction","clearMessage","Actions","ClearMessage","_action$id","_action$message","notifs","SUCCESS","POST","_r","_r2","fetch","headers","json","statusText","parseProperty","excludeProperties","includeProperties","include","ints","createContractorInvitation","_createContractorInvitation","sendContractorInvitation","registerContractorInvitation","_registerContractorInvitation","getWorkConstants","_getWorkConstants","getContractorInvitations","getContractorInvitation","_getContractorInvitation","token","contractorInvitation","getContractors","_getContractors","paginateOpts","getContractorFromAppUser","_getContractorFromAppUser","getJobHasContractorFromAppUser","_getJobHasContractorFromAppUser","getJobHasContractors","_getJobHasContractors","getJobHasContractorFromId","_getJobHasContractorFromId","_res$value$","getContractor","_getContractor","saveContractor","_saveContractor","_rawData$properties","getSubContractorRequestsAsWorker","_getSubContractorRequestsAsWorker","getSubContractorRequestsAsTarget","_getSubContractorRequestsAsTarget","saveSubContractorRequest","_saveSubContractorRequest","inputRequest","_inputRequest$propert","request","acceptSubContractorRequest","_acceptSubContractorRequest","subContractorRequestId","reason","_args15","rejectSubContractorRequest","_rejectSubContractorRequest","removeContractorAppUser","_removeContractorAppUser","userId","createWorkContractorAppUser","_createWorkContractorAppUser","getWorkUsers","_getWorkUsers","users","getContractorAppUsers","_getContractorAppUsers","invalidateContractor","_invalidateContractor","reactivateContractor","createFreeRequirement","RequirementActions","fulfillRequirement","getRequirement","getRequirementsFromResources","getRequirements","getRequirementIncidences","getRequirementNotes","saveRequirementIncidence","saveRequirementNote","validateRequirement","forceResourceStatus","requirementMeetsDependencies","removeRequirementFile","removeFreeRequirement","parsePropertyGroupType","pg","settings","settingsObj","contextData","contextDataObj","JobEncodingType","isJobPropertyGroupType","isJobHasContractorPropertyGroupType","isMachineryPropertyGroupType","isWorkerPropertyGroupType","isWorkspacePropertyGroupType","isContractorWorkerPropertyGroupType","isRRHHPropertyGroupType","AllPropertyTypes","getNotificationMessageActions","NotificationMessageAction","CreateJob","JobAssignContractor","SubContractorRequestCreate","SubContractorRequestAccept","SubContractorRequestReject","JobInformationLoaded","JobFinalized","JobAuthorized","JHCAuthorized","JHWAuthorized","JHMAuthorized","JHCRejected","JHWRejected","JHMRejected","ReqExpired","NotifyRequirementExpirationWithinTolerance","ReqIncidence","ReqFulfilled","ReqValidated","ModuleMessage","RequirementNote","JobRequirementNote","JobAssignImpliedRSO","JobAssignMainRSO","JobAssignMedicalDepartment","JobAssignEnvironmentDepartment","JobContractorInvitation","NotifyUnauthorizedJob","NotifyAuthorizedJob","NotifyJobReopen","ITAWorkerNotFound","IrregularityCreated","CorrectiveMeasureLoaded","CorrectiveMeasureContractorLoaded","CorrectiveMeasureValidated","CorrectiveMeasureContractorValidated","CorrectiveMeasureRejected","CorrectiveMeasureContractorRejected","IrregularityModified","JobEvaluationsPending","GeneralEvaluationsPending","NotifyRequirementExpiration","NotifyJobContractorStart","fieldValidationResourceTypes","ResourceType","__fieldValidations","departmentIsProductive","isOblique","ResourceStatusType","NOT_AUTHORIZED","AUTHORIZED","FINALIZED","FORCED_AUTHORIZED","FORCED_REVOKED","getNotificationResourceTypes","MainContractor","SubContractor","MainRSO","MainRSOCoordinator","AssociatedRSO","AssociatedRSOCoordinator","ObliqueDepartment","RequirementCreator","getResourceTypes","_opts$includeSubContr","contractorRes","includeSubContractors","getEventResourceTypes","EventResourceType","JobStatus","isOptions","defaultOptions","keyToCamelCase","replace","$1","normalizeOjb","_search","_headers","rawOptions","rawFilters","exportColumns","order","_searchExportToXls","blob","_paginate","_headers3","_i4","_Object$keys4","_getUserFilters","_headers4","isAdmin","evaluatePermissionImpl","_opts$work$permission","_opts$work","_opts$work2","_opts$job","evaluatePermission","isNotAdmin","number","digits","max","String","_len3","_key3","pushS3TemporalResource","_pushS3TemporalResource","formData","FormData","pushLocalTemporalResource","_pushLocalTemporalResource","pushTemporalResource","getDocumentVersions","documentId","getDocumentLastVersion","getDocumentInfo","getFolders","includeFolderKinds","getDocumentsAndFolders","getDocuments","includeDocumentKinds","saveFolder","inputFolder","folder","removeFolder","removeDocument","saveDocument","inputDoc","_validateRequirement","requirementId","validationData","fileResourceId","fileResourceName","_getRequirements","targetId","_getRequirement","_getRequirementsFromResources","requirementIds","_createFreeRequirement","requirementData","documents","_data","finish","_fulfillRequirement","_data2","_saveRequirementIncidence","_args7","_saveRequirementNote","_getRequirementIncidences","_getRequirementNotes","_forceResourceStatus","validated","forcedStatusUntilDate","_requirementMeetsDependencies","_requirementCanBeValidated","_removeRequirementFile","requirement","_removeFreeRequirement","_getJobs","_getJobReferences","_removeJob","_createHelpDeskItem","files","inputFileResources","_args9","fileName","temporalResourceId","_saveCommunication","deletion","_args10","_getCommunicationReceivers","communication","_getCommunication","SaveUserPolicies","bytes","thresh","abs","units","u","toFixed","URL","createObjectURL","stopLoadingType","startLoadingType","Identity","setUser","Constants","documentTypes","requirementExpirationTypes","requirementTypeKinds","loadingCtx","loadingMessage","localStorage","getItem","setItem","btoa","storageClear","removeItem","_getReports","getReport","_getReport","reportName","_headers2","BreadcrumbItem","useWorkFormSettings","_props$work$settingsO","scope","isSingleValue","expr","specialTerms","invoke","root","evaluate","_i$departmentId","_job$departments$find","_job$departments$find2","isMain","_job$departments$find3","_job$departments$find4","_job2$departments$fin","_job2$departments$fin2","_job3$departments$fin","_job3$departments$fin2","needle","needles","_userDepartments$find","_userDepartments$find2","userDepartmentIds","_userDepartments$find3","_userDepartments$find4","workerIds","evaluatePathSegment","segment","currentCtx","evaluatePath","segments","toIdentifier","evaluateBinaryOperator","left","right","Parser","associateStatusToDocument","documentTime","dateTime","ViewRequirementHistory","_documentVersions$val","_requirementStatus$va","_validations$value","requirementStatus","useSearch","documentVersions","resolveStatusTypeName","resolveStatusType","st","EXPIRED","userName","defaultEmail","validatedState","validatedDate","validationUserId","appUserName","validationHolderName","documentEvents","dv","requirementStatusRows","noteEvents","createdById","associatedDocumentId","incidences","dateUtils","creationDate","getDay","documentVersionId","shift","statusEvents","flag","displayDate","displayDateTime","validatedBy","workerName","removeEvents","FILE_REMOVED","events","docIndex","findIndex","noteIndex","note","kind","last","Timeline","opposite","item","leftIcon","canDownload","marker","requestClose","parseJobProperty","jobProperty","aJob","JobStatusType","jobStatusTypes","INFORMATION_LOADED","JobLogType","ModuleManager","modules","aId","componentProperties","module","originalComponent","force","_m$renderComponent","renderComponent","component","src","dependencyCtx","filterModules","filterDependency","_m$injectComponent","injectComponent","load","_requirePermission","moduleRes","awaitIfPromise","_hasPermission","injectDataColumns","injectAction","_step6","_iterator6","validateData","_step7","_iterator7","arg0","ImageViewer","PdfJS","workerSrc","PdfViewerImpl","response","base64PDFToBlobUrl","PdfViewer","isImage","mime","isPdf","hasViewer","DocumentViewer","mimeType","Chip","rel","OnLoginAction","initializeApp","AppStore","_action$user$workerId","_action$user$contract","_action$user$workerId2","_action$user$contract2","_state$contractorIds","EMPTY_SECURITY","contractorIds","Security","withWorkerIds","withContractorIds","OnWorkSelected","withContext","OnJobSelected","setcountriestype","setdocumenttypes","initializetype","loadDocumentTypes","types","AdminActions","setCountries","PropertyList","RequirementDocumentInfo","lastDocumentVersion","lv","setLv","infoSearch","jobSearch","info","setInfo","getLastVersion","_requirement$workId","contractorName","contractorCode","workerSurname","workerCode","jobName","jobCode","commonPermissions","_this$contractorIds","ids","_this$workerIds","_this$contractorIds$i","_this$contractorIds2","_this$user$policies$m","_this$user$policies","_this$user$policies$m2","_this$user$roles$incl","_this$user","_this$user$roles","_this$user$roles$incl2","_this$user2","_this$user2$roles","_this$user$roles$incl3","_this$user3","_this$user3$roles","_this$user$roles$incl4","_this$user4","_this$user4$roles","has","createBrowserHistory","forceRefresh","ENTER","userContainer","getContainer","querySelector","time","createPortal","DataLoader","NotificationMessage","onSelect","messageId","MessageIcon","NotificationMessageDisplayName","NotificationsMessages","selectedMessage","setSelectedMessage","NotificationMessageEffect","requestCancel","resolveMessage","isCompleted","setIsCompleted","DepartmentSelector","relation","selectedDepartment","selectedWorker","departmentResolver","setWorkers","workerResolver","_dep$workers","dep","_w$surname","JobsStore","doRemoveJobHasDepartment","refresh","availableResponsibles","confirmRemove","_dep$workers2","updateRelation","toggleAdd","dataTable","jr","doSaveJobHasDepartment","position","_state$user","UserStore","toast","inputFileRef","selectedFiles","setSelectedFiles","subject","create","lift","doSend","onClose","margin","onDrop","dataTransfer","items","file","getAsFile","onDragOver","appendFile","size","removeSelectedFile","defaultState","menuItems","__modules","Containers","Components","Utils","Models","Search","Contractors","Documents","Requirements","Jobs","runtimeModules","loadModule","_callee$","frontendResource","eval","activate","unloadModule","deactivate","clearModules","ClearModules","i18nResources","_work$activeModules","activeModules","moduleInfo","_module$getMenuItems","mi","hasFrontend","getMenuItems","InitializeModuleManager","ModulesLoaded","random","_message$data$Severit","_message$data$Notific","Tag","Severity","NotificationTitle","AcceptRequirement","_props$requirementTyp","_props$requirement$ex","_props$requirementTyp2","_props$requirementTyp3","expirationThreshold","expirationDate","requestAccept","RequirementsStore","_props$incidence","fileRef","selectedFile","setSelectedFile","defaultIncidence","incidence","new","doReject","getFileResourceId","getFileResourceName","onRejected","alignItems","paddingRight","verticalAlign","paddingBottom","display","opacity","RequirementDocumentsImpl","_requirement$document","selectedDocument","lastVersion","versions","documentUrl","RequirementDocuments","_state$work$work","constants","DocumentActions","NotificationsStore","_resolveRequirementTy","_props$requirementJob","pendingRequirements","setPendingRequirements","selectedRequirement","setSelectedRequirement","validatedRequirements","setValidatedRequirements","rejectedRequirements","setRejectedRequirements","requirements","selectedRequirementId","resolveRequirementType","requirementIsPending","_x$requirementType","_y$requirementType","_y$requirementType2","_x$requirementType2","_x$requirementType3","_y$requirementType3","orderValue","selected","findRequirementIndex","req","doValidate","nextIndex","nextRequirement","allValidated","canNotValidate","currentIndex","canGoForward","canGoBackward","rt","RejectRequirementContainer","_resolveRequirementTy2","_resolveRequirementTy3","rejected","__resourceName","requirementJobs","loadWork","_UserStore$actionCrea","_NotificationsStore$a","_props$work","setMessage","setRequirementJobs","setRequirements","setSelectedRequirementId","JobId","RequirementId","loadRequirements","msgs","_m$data3","_m$data4","ResourceId","_props$message","_props$message$data","_msg$data","_m$data5","ResourceName","delegateYield","fontSize","ValidateAllRequirements","__resolvedMessages","goToRequirement","Route","JobHasContractorId","clearRequirement","loadRequirement","ValidateRequirementsFromNotificationMessages","exports","peg$SyntaxError","expected","found","Error","captureStackTrace","child","ctor","constructor","prototype","peg$subclass","buildMessage","DESCRIBE_EXPECTATION_FNS","literal","expectation","literalEscape","escapedParts","classEscape","inverted","any","end","other","hex","charCodeAt","j","descriptions","describeExpected","describeFound","SyntaxError","peg$result","peg$FAILED","peg$startRuleFunctions","Expression","peg$parseExpression","peg$startRuleFunction","peg$c0","peg$c1","peg$literalExpectation","peg$c2","peg$c3","peg$c4","peg$c5","peg$c6","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","head","tail","element","peg$c13","peg$c14","peg$c15","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$c21","peg$c22","peg$c23","peg$c24","peg$c25","peg$c26","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","peg$c32","peg$c33","peg$otherExpectation","peg$c34","peg$c35","peg$c36","inv","peg$c37","peg$c38","peg$c39","peg$c40","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","peg$classExpectation","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","peg$c68","peg$c69","peg$c70","peg$c71","peg$c72","peg$c73","peg$currPos","peg$savedPos","peg$posDetailsCache","line","column","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","startRule","ignoreCase","peg$computePosDetails","pos","details","peg$computeLocation","startPos","endPos","startPosDetails","endPosDetails","offset","peg$fail","peg$buildStructuredError","peg$parseBooleanExpression","peg$parseEqualityExpression","s0","s1","s2","s3","s4","s5","s6","s7","peg$parseArithmeticExpression","peg$parse_","peg$parseTerm","peg$parseFactor","peg$parseBoolean","test","peg$parseStringLiteral","peg$parseInteger","peg$parseValue","peg$parsePath","s9","peg$parseIdentifier","peg$parseInvocation","s8","peg$parseArguments","availableModules","onInitializeType","onGetUsersType","loadUsers","getGraphqlErrorFromOption","ctxKey","ContractorActions","reducers","app","AppState","admin","ConstantsState","jobs","JobState","NotificationsState","UserState","ModulesState","isDebug","hostname","fileSizeLimit","filterMenuItems","showIf","NavMenuImpl","_props$user","showMessages","setShowMessages","showHelpDesk","setShowHelpDesk","hasWork","isContractorOrWorker","reportItems","setReportItems","fillReportItems","hidden","userLabel","hasPolicy","Sec","separator","Badge","_props$messages","_props$security$user","alt","Menubar","HelpDeskSupport","_state$modules$menuIt","_state$modules","_state$notifications$","_state$notifications","_state$notifications$2","_state$notifications2","_state$notifications3","_state$user$communica","_state$user2","_state$user3","RemoteHtml","useI18n","resource","silent","finalUrl","dangerouslySetInnerHTML","__html","_props$work3","footer","setFooter","footerResource","_props$work$contextDa","_props$work$contextDa2","_props$work2","phone","textDecoration","cursor","Cookies","showCookies","setShowCookies","acceptPrivacyConset","cookie","Layout","_React$PureComponent","_inherits","_super","_createSuper","NavMenu","LastLogs","setLogs","currentFilter","setCurrentFilter","formatDate","_props$users$find","filterLogs","Header","autoHide","Chart","labels","datasets","backgroundColor","hoverBackgroundColor","plugins","legend","StorageChart","chartData","setChartData","dataset","fill","tension","borderColor","basicOptions","maintainAspectRatio","aspectRatio","callbacks","scales","ticks","grid","beginAtZero","Admin","Card","SampleChart","valid","untilDate","showAuthorize","currentStatusType","showRevoke","ViewResourceHistory","statusTypeName","_props$requestClose","EditContractorInner","injectComponents","Panel","RequirePermission","ForceValidationResourceContainer","params","_params$contractorId","_params$match","_params$match$params","_params$workId","_params$match2","_params$match2$params","contractorid","workid","ContractorsStore","showRequirements","_getMachineries","getMachinery","_getMachinery","_saveMachinery","createJobRelations","getMachineries","MachineriesActions","saveMachinery","removeMachinery","reactivateMachinery","UploadFreeDocument","_e$target$files$lengt","_e$target$files","UploadDocument","restriction","_e$target$files$lengt2","_e$target$files2","canUpload","mimeTypes","regex","RegExp","excludeMimeTypes","UploadDocumentsWithRestrictions","documentRestrictions","restrictionWithDocuments","setRestrictionWithDocuments","onChangeDocument","allRequirementsFulfilled","canFulfill","setCanFulfill","hasDocumentRestrictions","setFiles","fulfilledRequirements","setFulfilledRequirements","checkDependencies","meetsDependencies","_meetsDependencies$er","_meetsDependencies$er2","expirationRequired","hasExpiration","onFreeDocument","onDocumentWithRestrictions","uploadDocument","docs","fileSize","requirementTypeDocumentRestrictionId","setFile","_documentRestrictions","_documentRestrictions2","_documentRestrictions3","_documentRestrictions4","targetKind","targetTitle","criteria","template","_url$startsWith","requirementFileName","_componentProperties$","_props$requirement$do","_props$requirement$do2","canBeValidated","setCanBeValidated","_resp","useComponentProperties","canBeDenied","disableDenyWithValidation","showInfo","doAdd","onSuccess","_props$note","defaultNote","skipExpirationDate","_remoteData$value","remoteData","setLastVersion","_documents$0$document","_documents$0$document2","_date$split","_date$split2","day","downloadFile","versionId","getWorker","_getWorker","defaultSaveWorkerOpts","uploadImageFile","_saveWorker","imageResourceId","_args4","imageFile","imageResource","WorkerActions","reactivateWorker","WorkersStore","MachineriesStore","_resource$photo6","setResource","setRequirementStatus","_requirement$find","machinery","_rt$isResourcePicture","isResourcePicture","reRender","onRender","renderPhoto","resourcePictureRequirement","photoMenu","pm","_resource$photo","_resource$photo2","_resource$photo3","_resource$photo4","_resource$photo5","photo","marginLeft","marginRight","marginBottom","Avatar","image","shape","AddRequirementIncidenceContainer","AddRequirementNoteContainer","UploadRequirement","ContextMenu","ViewRequirementValidations","currentStatus","optional","_DateUtils$parseDate","table","validationHolderType","jobImpliedRso","_props$job","_d$responsible","_d$responsible2","responsible","renderValidationHolderName","RequirementMode","ViewRequirementDocument","restrictionTitle","createdBy","RequirementDocument","_requirementType$docu","documentRestrictionId","RequirementDocumentsRow","RequirementRow","_work$settingsObj","_job$departments","_requirement$status$f","_requirement$status$f2","onRequestReload","requirementGroup","requirementPair","meetsRequirements","removeFile","performRemoveFreeRequirement","actionsBtn","selfContractor","setSelfContractor","resourceContractorId","setResourceContractorId","confirmRemoveFreeRequirement","_requirement$color","preCanUpload","mainContractorCanFulfillSubs","validationTypeId","ITA","haveIncidences","hasIncidences","haveNotes","canValidateContext","isJobRequirement","_showValidations","setShowValidations","showValidations","allHolders","REQUIRE_ALL","hideValidations","editRequirementsProps","canReportIncidencesDefaultPermission","canRemoveFreeRequirementDefaultPermission","canUploadDefaultPermission","canRemoveDefaultPermission","canAddObservationsDefaultPermission","canValidateDefaultPermission","canReportIncidences","canRemove","canRemoveFreeRequirement","canAddObservations","canValidate","onRequestClose","onValidate","isOnDate","isExpired","onNoteAdded","uploadRequirementsTitle","kindId","Mandatory","Optional","C","hasActiveVersion","ViewRequirementIncidencesContainer","ViewRequirementNotesContainer","inProgress","onMouseEnter","onMouseLeave","menuClassName","actionsContext","filterActions","calculateActions","ValidateRequirement","RequirementGroup","_ref9","requirementIncidence","skipMirrorDependencies","_ref10","_ref11","mode","requirementHasDependency","RequirementWithValidationDependency","_ref12","_ref13","_at$orderValue","_bt$orderValue","_ref14","at","_ref15","bt","_ref16","_mode$meetsRequiremen","_ref17","_r$requirementType$de2","dependencyType","RequirementMustHaveBeenValidated","isMirrorRequirement","_r$requirementType$de3","_r$requirementType","_d$propagate","associateRequirementTypes","allRequirementTypes","EditRequirementsImpl","_requirements$value$f","setGroups","activeIndex","_setActiveIndex","siblingRequirements","siblingType","siblingId","parentSiblingRequirements","siblingJobHasContractorId","requirementsGroups","setRequirementsGroups","freeRequirements","setFreeRequirements","setAllRequirementTypes","_ref18","_a$orderValue","_b$orderValue","_g$requirementTypes2","loadSiblingRequirements","_siblingRequirements$","_parentSiblingRequire","mirrorDependencies","siblings","parentSiblings","requirementGroupId","_r$requirementType$de","getRequirementDependency","sourceReq","dependsOnRequirementId","sourceRequirementTypeOriginal","sourceRequirementType","RequirementWithMirrorDependency","reqsWithDependencies","_r$requirementType$de4","_r$requirementType2","_r$requirementType2$d","_loop2","IBO","IBODependency","rs","isValidated","freeR","directRequirements","_loop3","isFree","FreeRequirement","DirectRequirement","onHasPendingRequirements","hasPendingRequirement","allRequirements","anyPending","_r$status","statuses","_r$status2","some","freeRequirementGroup","freeRequirementType","freeComponents","TabPanel","_r$requirementType3","isEmpty","_requirementsGroups","_r$requirementType4","ResourcePhotoContainer","_r$requirementType5","currentGroups","_requirements$value2","canValidateAllDocuments","TabView","onTabChange","_requirementsGroups2","_requirementsGroups3","currentGroupTab","marginTop","textAlign","EditRequirements","_state$jobs$selectedJ","MachineryRequirements","useContractorFromAppUser","selfContractorId","setSelfContractorId","_props$workId","_props$machineryId","_props$work$machinery","_props$work$machinery2","subTypes","setSubTypes","selectedMachineryTypeId","setSelectedMachineryTypeId","selectedSubType","canSave","customValidations","validateMachinery","withFieldValidations","mt","_mt$subTypes","machinerySettings","onlyLicenseNumber","subTypeMandatory","WrappedMachineryRequirements","_getIntParams","machineryid","WrappedMachineryForm","_getIntParams2","EditMachineryFormContainer","MachineryRoutes","exact","path","EditMachineryInner","_props$machinery","_props$machinery2","doReactivateMachinery","confirmActivate","contractorData","displayName","isGestorOrContractor","WorkerRequirements","validateWorkerF","workerSettings","notEmptyIf","workerTypeIsMandatory","EditWorkerForm","pictureRequirement","setPictureRequirement","_r$requirementTypes","auxReq","validateWorker","workerTypeId","workerDocumentTypeId","sm","filterDocumentTypes","_props$workerId","workerid","WrappedWorkerRequirements","WrappedWorkerForm","EditWorkerFormContainer","WorkerRoutes","FormType","EditWorkerInner","_props$worker","_props$worker2","Data","formType","setFormType","doReactivateWorker","None","clearWorkerForm","doSave","JobFinalizeFormImpl","lastStatusSearch","lastStatus","jobStatusTypeId","_state$user$work$user","_status$value2","_props$jobSettings$sk","_props$jobSettings","setCurrentStatus","resolveUserName","_status$value","jobStatus","allStatus","loadAllStatus","statusDefaultName","jobSettings","skipInformationLoadedState","azsa","statusName","JobPanelActionsImpl","_props$selectedJobHas3","_props$selectedJobHas4","_props$work$settingsO2","_props$work$settingsO3","currentState","setCurrentState","isNotified","canAddSubContractorState","setCanAddSubContractorState","reloadJob","goToAddSubContractor","currentJobHasContractor","_props$selectedJobHas","_props$selectedJobHas2","selectedContractor","selfJobHasContractorId","canAddSubContractor","canFinalize","hasWorker","jobState","canAuthorize","requirePermissionMemo","setCurrentJobStatus","JobAuthorizeForm","JobRevokeForm","JobFinalizeForm","JobReactivateForm","RequireRole","_props$selectedJobHas5","_props$selectedJobHas6","_props$selectedJobHas7","_props$selectedJobHas8","JobPanelActions","workSettings","_props$job$contractor","jobLogs","setHasAccessJobInformation","resourceContractor","setResourceContractor","findJobHasContractor","_jobHasWorker$value","_jobHasWorker$value$","jobHasWorker","jobHasC","_jobHasM$value","_jobHasM$value$","jobHasM","_jobHasContractorId","_jobHasC","_props$job$currentSta","haveReadInformation","jobLogType","ACCESS_JOB_INFORMATION","isReadonly","setIsReadonly","setWorkerReadonly","_props$siblingId","_props$workSettings2","setMachineryReadonly","_props$workSettings","isR","setContractorReadonly","permsCtx","resourceTitle","siblingContractorId","getTabs","setContractor","parents","mc","tabHeader","parentHierarchyLevel","parentContractorName","headerTemplate","parentJobHasContractorId","User","_workSettings$allowAl","_props$job$department","_departments$value","_departments$value2","targetReqPending","setTargetReqPending","allowAlwaysNotifyInformationLoaded","reqPending","setCanSave","canNotify","setCanNotify","permCtx","calculateCanSave","resN","canSaveRequirements","contractorTabs","_dep$department","_dep$department2","_dep$id","_dep$department3","_dep$department4","_dep$id2","_props$jobId","jobid","validateInvitation","_props$job2","doSendInvitation","_props$onCreate","_props$onCreate2","onCreate","formIsValid","validateJob","validateCode","builder","JobDataImpl","_props$job$id","_props$job$name","_props$job$code","_props$job3","_props$job$properties","_props$job4","_props$job5","_props$job6","_props$job7","_props$job8","codeIsManual","jobEncodingType","Manual","jobPropertiesCreate","validateWorkspaces","ManageJobDepartmentsContainer","validateContractor","_work$contractorSetti","_work$contractorSetti2","contractorSettings","jhcStartDateMandatory","jhcDescriptionMandatory","_state$user$work$prop","_props$parentContract3","_props$work$contracto","_props$work$contracto2","_props$work$contracto3","currentSearchTerm","setActiveIndex","setContractors","setSelectedContractor","jobContractors","_props$parentContract","foundContractor","jc","parentContractor","_props$parentContract2","jobsDescription","shipmentNumber","sourceContractorId","targetContractorId","saveNewContractor","contractorsTable","noShipmentNumber","Accordion","AccordionTab","ResourceStatus","showResourceType","_props$contractor$pro","_jobHasContractor$val","countryRegion","contactName","contactSurname","contactEmail","contactPhone","legalFormId","address","postalCode","_props$jobHasContract","ContractorType","isJobContractor","CONTRACTOR","isContractorRequest","CONTRACTOR_REQUEST","JobContractorsImpl","_props$parentId","_workSettings$hideByD","_query$value","canRemoveState","setCanRemoveState","editOverlay","EditJobHasContractorFields","completeStatusList","currentJhc","hasContractor","selfJobHasContractorsIds","scheduler","doRemoveContractor","refreshContractors","doDeleteContractor","confirmDelete","jobContractorProps","EditContractorValues","authorize","canEdit","calculateCanRemove","hideByDefaultEnded","canAddContractor","cannotRemoveItself","_fltrs$name","_r$name","_filters$filters$name","fltrs","every","targetName","INVITATION","contractorStartDate","_d$validatedCount","_d$totalCount","validatedCount","totalCount","_d$countWorkersAuthor","_d$countContractorWor","authorized","countWorkersAuthorized","countContractorWorkers","_d$countMachineriesAu","_d$countContractorMac","countMachineriesAuthorized","countContractorMachineries","tag","_d$countSubContractor","_d$countContractorSub","countSubContractorsAuthorized","countContractorSubContractors","onRequestAddContractor","hierarchyLevel","toggleApplications","EditJobHasContractorContainer","JobContractors","getSelectedNodes","CountryRegionSelect","countryNodes","selectedRegionNode","setSelectedRegionNode","TreeSelect","_ev$value$concat$slic","_ev$value$concat$slic2","newData","validateContractorRequest","gridColumn","Result","ProcessContractorRequest","ACCEPT","accepted","acceptedDate","discarded","discardedDate","setResult","resultOptions","REJECT","ContractorRequestData","_contractor$descripti","requests","setRequests","requestToProcess","setRequestToProcess","invitations","setInvitations","onProcessSuccess","invitationSearch","invisSearch","canProcessRequests","resultMessage","_jobHasContractor$cur","_jobHasContractor$cur2","userIsSubcontractor","canRender","setCanRender","contractorUserData","jobContractorsData","subContractors","isSubcontractor","jobContractorData","_contractorUserData$i","_contractorUserData$i2","requestSearch","_jobHasContractor$cur3","_jobHasContractor$cur4","parentIds","filteredRequests","_jobHasContractor$cur5","_jobHasContractor$cur6","filteredInvitations","_jobHasContractor$cur7","sourceId","_jobHasContractor$cur8","_jobHasContractor$cur9","sourceName","_jobHasContractor$cur10","_d$jobCode","acceptedByContractor","acceptedByWork","Indicator","colorize","hideCount","JobDepartments","_departmentSearchs$va","departmentSearchs","departmentsTable","padding","JobCard","_job$currentStatus$id","_job$currentStatus","_job$currentStatus$jo","_job$currentStatus2","_job$requirementsTota","_job$requirementsVali","_jobSettings$colorize","_job$depReqTotal","_job$depReqValidated","_job$workersTotal","_job$workersValidated","_job$contractorsTotal","_job$contractorsValid","_job$machineriesTotal","_job$machineriesValid","_job$depTotal","_job$depValidated","_job$depTotal2","_job$machineriesTotal2","_job$machineriesValid2","currentJobHasContractorId","doRemoveJob","confirmRemoveJob","isSubContractor","setIsSubContractor","currentEmployer","setCurrentEmployer","_currentEmployer","goOpts","resolveWorkspace","resolveActivity","addSubContractor","setActions","actionsI","evaluations","_security$user$roles","_security$user$depart","can","userDepartments","statusId","jobHasContractorCurrentStatusType","responsibleName","requirementsTotalCount","requirementsValidatedCount","colorizeContractorIndicators","contractorsTotal","contractorsValidated","depReqTotal","depReqValidated","workersTotal","workersValidated","machineriesTotal","machineriesValidated","depTotal","depValidated","_contractors$value","notify","_c$contractor","MachineryInfo","machineryTypeName","_props$relationId","jobHasMachinery","MachineryDocumentation","List","selectedMachinery","setSelectedMachinery","setMachineries","canValidateState","setCanValidateState","onlyMainContractors","HideByDefaultEnded","filteredContractors","doRemove","calculateCanValidate","doDeleteMachinery","confirmDeleteMachinery","reactivateJobHasMachinery","machineryContractorName","_props$work$jobSettin","hasDelayedRevokation","showResourceIncidenceIndicator","machineName","machineCode","prefixNumber","selectedMachineryType","addRecord","newRecord","canAdd","parentContractors","setParentContractors","searchContractorHasContracts","parentContractorId","calculateLevel","level","jobContractor","U","selectedMachinerySubType","contractorCurrent","availableSubTypes","setAvailableSubTypes","Event","defineProperty","canAddSubMachineries","existingMachineries","currentContractor","findMachineries","subTypeId","searchContractor","_contractors","excludeMachineries","machineriesList","_props$work$contracto4","_m$contractor","hasName","hasCode","uniqueName","_props$moduleManager$","selfJobHasContractor","subcontractors","subcontractorIds","deepSubcontractors","_c$parentId","_mt$subTypes$sort","_m$jobHasContractorId","_props$jobHasWorker$w","_props$jobHasWorker$p","_props$jobHasWorker$w2","_props$jobHasWorker$w3","_props$jobHasWorker$w4","_props$jobHasWorker$w5","_props$jobHasWorker$w6","_contractorData$value","resolveWorkerType","resolveWorkerDocumentType","setSelectedWorker","doRemoveWorker","refreshWorkers","doDeleteWorker","_yield$query$doSearch","_query$value2","reactivateJobHasWorker","createId","workerContractorName","EditJobHasWorkerContainer","validateJobHasWorker","JobAddWorkerImpl","_selectedWorker$contr","_selectedWorker$contr2","_selectedWorker$contr5","_selectedWorker$contr6","viewParentSelector","showProperties","activeContractor","canAddSubWorkers","_selectedWorker$contr3","_selectedWorker$contr4","existingWorkers","initializeForWorkers","initializeForContractors","_existingWorkers$valu","_existingWorkers$valu2","_existingWorkers$valu3","jobHasContractors","excludeWorkers","jhc","_jhc$contractor","saveWorkerRelation","_selectedWorker$jobHa","workersTable","_d$contractor","_U$getQueryParameter","_state$jobs$selectedJ2","RequirementStore","fileToData","createRequirement","canCreateRequirement","isShared","departmentColorPortovesme","WrappedJobHasContractorRequirements","jobhascontractorid","_rel$contractor","Routes","JobHasResourceRequirements","WrappedJobHasMachineryRequirements","jobhasmachineryid","WrappedJobHasWorkerRequirements","_getIntParams3","jobhasworkerid","_rel$worker","WrappedJobRequirements","_getIntParams4","JobRequirements","WrappedJobCreateRequirement","_getIntParams5","_getIntQueryParameter","WrappedJobCreateResourceRequirement","_getIntParams6","_getIntQueryParameter2","CreateRequirement","WrappedJobCard","_getIntParams7","JobInfoCardContainer","WrappedJobInformationLoaded","_getIntParams8","WrappedJobInformationLoadedControl","_getIntParams9","JobInformationLoadedControl","WrappedJobNotifyInformationLoaded","_getIntParams10","JobNotifyInformationLoaded","WrappedEditJobData","_getIntParams11","JobDataContainer","WrappedJobContractors","_getQueryParameter","_getIntParams12","JobContractorsContainer","WrappedJobContractor","_getIntParams13","WrappedAddContractor","_getIntParams14","JobAddContractorContainer","WrappedRequestNewContractor","_getIntParams15","JobRequestContractorContainer","WrappedContractorRequests","_getIntParams16","JobContractorRequestsContainer","WrappedSubContractorRequests","_getIntParams17","JobContractorSubRequestsContainer","WrappedContractorInvite","_getIntParams18","CreateContractorInvitation","WrappedMachineries","_getIntParams19","ManageJobMachineries","WrappedMachinery","_getIntParams20","WrappedMachineryCreate","_getIntParams21","AddJobHasMachinery","WrappedMachineryAdd","_getIntParams22","safeParseInt","SelectJobHasMachinery","WrappedAddWorker","_getIntParams23","JobAddWorkerContainer","WrappedWorkers","_getIntParams24","JobLoader","ManageJobWorkersContainer","WrappedWorker","_getIntParams25","JobRoutesImpl","setParameters","setJobHasContractor","noParameter","_params$jobHasContrac","JobRoutes","_a$job","_b$job","selectedJobHasContractorId","ContractorsStrore","loadData","validateOptions","JobForm","_props$data$id","_props$data$name","_props$data2","_props$data3","_props$data4","_props$data5","_props$data$departmen","_props$data6","_props$data$propertie","_props$data7","_props$data8","_props$data9","_props$loading","availableWorkers","setAvailableWorkers","setSelectedDepartment","selectedResponsible","setSelectedResponsible","setDepartments","resolveDepartment","resolveWorker","_d$workers","formSettings","worksSpacesSearch","workSpaces","setWorkSpaces","filterWorkers","_w$workspaces$find","_w$workspaces","_props$security$user$","filterDepartment","availableDepartments","setAvailableDepartments","_props$security$user$2","_props$security$user2","_props$security$user3","obliqueDepartments","_props$security$user4","_props$security$user5","de","calculateAvailableDepartments","todayOffset","setDate","Skeleton","newDepartments","removeDepartment","SelectJob","JobListMode","__jobListMode","ALLJOBS","JobsImpl","jobListMode","setJobListMode","canCreateJobState","setCanCreateJobState","isNotOblique","responsibles","setResponsibles","dataValue","setDataValue","contractorParents","setContractorParents","formDialog","getSearch","_d$workers2","wd","calculateIsOblique","MYJOBS","DEPARTMENT","INVOLVED","SUBCONTRACTED","current_status_type","userFilters","exclude_status","parentsSearch","responsiblesSearch","contractorsSearch","filterStatusTypes","_worksSpacesSearch$va","calculateWorkSpaces","parent_contractor","select_contractor","department_id","calculateParentContractors","filterByParentContractor","_parents$","unshift","calculateCreateJob","calculateOptions","selectJob","_prev$moduleManager","_next$moduleManager","ViewContractorInvitationsImpl","sortedData","row","_props$work$users$fin","ADD_PERMISSION","validateContractorF","legalFormMandatory","AddContractor","selectedLegalForm","setSelectedLegalForm","calculateProperties","newValues","_propertyGroupTypes$f","providerCode","city","contactPerson","otherActivityType","propertiesInvalid","userCanAdd","lf","mandatoryPropertyIds","mandatoryPropertyNames","hiddens","boolTextNames","valueText","calculateFormPropertiesAreValid","loadRegions","parseContractor","ManageContractorsImpl","paginateData","work_id","confirmInvalidate","doActivateContractor","resolveLegalForm","resolveActivityType","isArray","renderEmail","CreateContractor","CreateInvitation","ViewInvitations","getActions","CreateContractorInvitationContainer","ViewContractorInvitationsContainer","ManageContractors","RequireContractorId","_r$validatedCount","_r$totalCount","_r$countMachineriesAu","_r$countContractorMac","_r$countWorkersAuthor","_r$countContractorWor","RequestState","ProcessSubContractorRequest","_request$sourceContra","_request$job","_request$job2","doAccept","sourceContractor","ManageSubContractorRequestsImpl","needWorkAcceptance","acceptSubContractorRequests","userInvitationsSearch","userInvitations","invitationsAsRequests","invitation","userInvitationsAsRequests","_invitation","_request","t3","t4","t5","t6","t7","t8","t9","t10","t11","targetContractor","acceptedByContractorDateTime","t12","_r$sourceContractor$n","_r$sourceContractor","_r$targetContractor2","_r$targetContractor$n","_r$targetContractor3","_r$job$name","_r$job","_r$targetContractor","canProcessRequest","ContractorModule","ManageSubContractorRequestsContainer","ContractorRequirements","onCheck","langRegExp","detectLanguages","exec","lang","localeIncluded","getNotificationByLanguage","filterMessages","messageType","contractorSearch","messageSearch","filterMessage","contractorProperties","jobProperties","parseMessageProps","propNames","_data$p","parseMessages","_m$message","excludeNotificationTypes","_state$work$work$id","doRemoveCheckedMessages","originalMessages","setMessages","checkedMessages","setCheckedMessages","om","original","messagesToRender","WorkCard","_work$settingsObj$cli","workClass","borderRadius","clientImage","_state$user$works","_props$works","NotificationsCenter","ReportOutputType","SynchronizedDispatch","parseColumn","parseColumns","ReportOutputTableComponent","setColumns","report","output","_value$filters","_res$value","autoStart","searchName","getOwnPropertyNames","useSynchronizedDispatch","parseAction","_c$parameter","parameter","filtersContext","filterParameters","canExport","ReportContainer","ReportOutputBarChartComponent","setOptions","serieLabels","serieValues","aria","decal","trigger","formatter","xAxis","yAxis","series","ReportOutputComponent","outputType","Table","BarChart","_props$match","_props$match$params","_props$match2","_props$match2$params","_props$filterParamete","_report$outputs","setReport","setJobs","loadReferences","jobStatuses","years","outputs","statusTypes","month","year","renderResourceStatus","resourceStatusType","Machineries","_searchJobs$value","myJobs","searchJobs","setMachinery","setCode","setName","licensePlate","setPlate","renderLicensePlate","ShowJobs","_searchMachineries$va","_searchMachineries$va2","jobsTable","_filters$name","_filters$code","_filters$licensePlate","jobIds","justifyContent","Workers","_searchWorkers$value","setWorker","ListWorkers","RequireContractor","WorkAccessControlRoutes","WorkUtilsImpl","cm","rm","accessControlMenu","paddingLeft","WorkUtils","WorkMenuImpl","_props$work$settingsO4","screenImage","WorkMenu","_props$communications","_work$activeModules$f","workModules","_m$hasFrontend","loadedModules","getModule","setModulesLoaded","modulesLoaded","_request$targetContra","renderRequestInfo","rejectedDateTime","rejectedReason","WorkSubContractorRequestsImpl","_job","totalInvitations","t13","t14","filterData","_r$job2","MachineryJobsForm","saveMachineryRelation","activateMachineryRelation","removeMachineryRelation","isRelated","AddMachinery","_work$machinerySettin","_work$machinerySettin2","setCreateJobRelations","GRUA_AUTOPROPULSADA","CAMION_PLUMA","TURISMO_FURGONETA_Y_CAMIONES","MAQUINARIA_SIN_MATRICULA","MAQUINARIA_CON_MATRICULA","PLATAFORMA_ELEVADORA","EQUIPOS_DE_TRABAJO","_data$machineryTypeId","_data$machineryTypeId2","ViewMachineriesImpl","machinerySubtypes","setMachinerySubtypes","machinery_type","machinery_sub_type","calculateSubTypes","filteredSubTypes","resolveMachineryType","doReload","doActivateMachinery","doDeactivateMachinery","doRemoveMachinery","confirmDeactivate","_resolveMachinerySubT","_props$machineryTypes","_props$machineryTypes2","_props$machineryTypes3","resolveMachinerySubType","_r$id","MachineryJobsDialog","machineryTitle","ViewMachineries","WorkerJobsFormImpl","reactiveWorkerRelation","removeWorkerRelation","setPropertyGroups","_p$properties$sort","_p$properties","newWorker","AddWorker","_work$workerSettings2","_work$workerSettings3","_work$workerSettings4","_work$settingsObj2","selectedWorkerType","selectedWorkerDocumentType","availableWorkerTypes","setAvailableWorkerTypes","shouldValidateCode","setShouldValidateCode","contractorUser","workerTypeCalculator","_legalForms$find$work","_legalForms$find","_legalForms$find$work2","selectedWorkerTypes","_contractor$value","Metal","Construcción","Otros","showWorkerImage","_work$workerSettings","cannotSave","ViewWorkersImpl","_props$work$workerSet","_props$work$workerSet2","selectWorker","doActivateWorker","doDeactivateWorker","photoId","showGeneralIndicators","openQualificationsDialog","maxHeight","maxWidth","ProfessionalQualificationsDialog","WorkerJobsDialog","ViewWorkers","DocumentLogType","DocumentKind","FolderKind","documentKindOptions","INTERNAL","ALL","folderKindOptions","documentLogTypes","VIEW","CREATE","UPDATE","CREATE_FILE","UPDATE_FILE","documentIcons","DocumentLogs","_icons","_data$value","resolveLogType","icons","getIcon","_icons$r$documentLogT","documentLogTypeId","logEvents","eventName","FolderForm","_props$folder","_props$onCancel","_props$onSubmit","UploadFileForm","edition","folderId","onSave","_props$onSave","EditDocumentForm","createFolderNode","draggable","droppable","createDocumentNode","_f$title","_f$sortOrder","iconForDocument","_Object$keys$find","isFolder","nodeIsFolder","_key$startsWith","nodeIsDocument","_key$startsWith2","nodeKeyGetId","DocumentsStore","_permissionIcons","setModel","selectedNode","setSelectedNode","setDocuments","folders","setFolders","setIncludeDocumentKinds","foldersQuery","documentsQuery","hierarchy","parentFolderId","createDocumentsModel","initializeFolders","initializeDocuments","doDownloadFile","doMoveFolder","doRemoveFolder","doRemoveDocument","doSaveFolder","doSaveDocument","areaDownload","doUploadFile","fileId","temporalResource","doSaveFile","menuActions","addFolder","editFolder","uploadFile","showDocumentLogs","editDocument","addFile","createNodeMenu","nodeKey","_opts$actions","iF","createMenu","handleDragAndDrop","_event$dropNode","dragNode","dropNode","newModel","_newModel$splice","_newModel$splice2","dragNodeObj","_doc","_folderId","dropIndex","permissionIcons","renderPermissions","_permissionIcons$node","documentKind","renderDocumentLabel","rounded","document2Node","_d$sortOrder","uploadDateTime","folder2Node","treeNodes","setTreeNodes","_b$sortOrder","_a$sortOrder","_b$sortOrder2","_a$sortOrder2","createNodes","treeTable","_node$data$title2","_nodeActions$length","nodeActions","Tree","nodeTemplate","_node$data$title","onDoubleClick","dragdropScope","onDragDrop","contextMenuSelectionKey","onContextMenuSelectionChange","ManageDocuments","password","passwordConfirmation","doCreateUser","appUser","userEmail","WorkerForm","ManageWorkerAppUser","requirementid","documentid","setReq","docUrl","setDocUrl","setMimeType","_req$documents","_req$documents2","_req$documents3","_props$contractorId","initializeCountries","_props$propertyGroupT","CreateWorkContractorAppUser","password1","password2","ManageRelations","listData","setListData","setRows","fillList","onRequestCreate","createText","renderHeader","renderRow","ContractorAccessDataForm","setUsers","doRemoveAppUserRelation","userResp","appUsersDialog","createAppUser","associateAppUser","WrappedContractorRequirements","WrappedContractorForm","EditContractorFormContainer","WrappedContractorAccesData","WorkContractorAccessDataContainer","ContractorRoutes","EditContractorContainer","inputFile","allJobs","setAllJobs","selectedJobs","setSelectedJobs","selectedDepartments","setSelectedDepartments","selectedWorkspaces","setSelectedWorkspaces","validateForm","onSelectDocument","_j$workspaceId","_form$values$title","_form$values$descript","_form$values$startDat","_form$values$endDate","_form$values$recursiv","fromDate","toDate","isRecursive","recursive","previewReceivers","receivers","checkEndDate","justifyItems","ViewCommunication","_communication$docume","setCommunication","EditCommunication","clearDialog","comm","checkDate","RemoveCommunication","deleteCommunication","fontWeight","anyDeleted","setAnyDeleted","showCommunication","departmentIds","arr1","arr2","checkArrays","exportCommunicationToXls","communicationStatus","html","percentage","RenderReceivers","searchForReceivers","communicationId","renderValidated","validationDate","clean","cleanSearch","activeTab","setActiveTab","currentDocuments","setCurrentDocuments","_communications$activ","ValidateCommunicationContainer","wrapWork","WorkLoaderContainer","JobWrapper","JobContainer","JobsWrapper","JobsContainer","ReportWrapper","ContractorWrapper","ContractorsWrapper","ManageContractorsContainer","WorkSubContractorRequestsWrapper","WorkSubContractorRequestsContainer","SubcontractorsWrapper","ManageSubcontractorsContainer","EditMachineryWrapper","EditMachineryContainer","MachineriesWrapper","ViewMachineriesContainer","EditWorkerWrapper","EditWorkerContainer","WorkersWrapper","ViewWorkersContainer","WorkAccessControlWrapper","WorkAccessControl","WorkDocumentsWrapper","WorkDocumentsContainer","WorkUsersWrapper","WorkUsersContainer","WorkReportsWrapper","WorkReports","WorkWrapper","WorkContainer","RequirementDocumentWrapper","WorkRequirementDocumentContainer","CommunicationFormWrapper","CommmunicationFormContainer","CommunicationsListWrapper","CommunicationsListContainer","CurrentCommunicationsWrapper","CurrentCommunicationsContainer","ContractorRoutesWrapper","Module","setItems","lastMessagesReload","home","createItems","BreadCrumb","SelectWorkContainer","_state$jobs","UsersStore","login","_login","auth","HTTP","getUser","Login","referrer","setReferrer","formik","username","touched","doReset","ResetPassword","InputText","Images","Bottom","Home","LoginPanel","AdminModule","ProgressBar","UserModuleContainer","GuestHome","validateDocumentType","prepareData","DocumentTypeForm","_props$data$descripti","ConstantsStore","showConfirmRemove","setShowConfirmRemove","validateUser","isValidUser","UserPolicies","_props$data$policies","newPolicy","setNewPolicy","removable","onRemove","removePolicy","UserForm","_props$data$userName","_props$data$email","_props$data$roles","_props$data$policies2","availableRoles","loadingNotifications","userWorks","searchFilter","setSearchFilter","showEditUser","setShowEditUser","addUserData","setAddUserData","searchCtrl","_searchCtrl$current","fillUsers","pairUsers","workNames","AddUserFooter","EditUserFooter","onKeyDown","AdminRoutesWrapper","zIndex","top","setWork","validateWorkspace","WorkspaceForm","_props$data$contact","_props$data$address","_props$data$location","_props$data$postalCod","_props$data10","_props$data$phone","_props$data11","_props$data$fax","_props$data12","_props$data13","_props$data14","contact","fax","_props$data15","AdminWorkWorkspaces","_props$work$workspace","_props$work$propertyG","_props$work$propertyG2","setWorkspaces","formatWorkspaceRegions","loadWorkspaces","currentWorkspace","_resp$data$removeWork","AddEditFooter","ListFooter","validateWorkShift","convert","startMinutes","endMinutes","WorkShiftForm","_props$data$startMinu","_props$data$endMinute","AdminWorkShifts","_props$work$workShift","setWorkShifts","loadShifts","validateWork","WorkForm","_props$data$settings","_props$data$countryId","createUserInput","selectedUsers","setSelectedUsers","validateI18NResource","WorkI18NResourceForm","_props$data$language","_props$data$value","I18nResources","AdminWorkI18NResources","setWorkI18NResources","validateActivity","ActivityTypeForm","AdminActivityType","setActivities","validateLegalForm","LegalFormForm","_props$data$workerTyp","_props$data3$workerTy","_props$data$hideContr","workerTypesReal","wt","getLegalForm","_props$data$id2","AdminLegalForm","setLegalForms","setWorkerTypes","_w$workerTypes","validateWorkFunction","WorkFunctionForm","ManageManyToManyRelations","_props$targetLabel","_props$targetValue","relations","setRelations","targets","setTargets","requestRemove","setRequestRemove","selectedTarget","loadRelations","loadTargets","initializeTargets","onAdd","targetValue","colSpan","targetLabel","AdminWorkFunction","setWorkFunctions","workersDialog","addWorkFunctionHasWorker","WorkToolbar","MachineryTypeForm","validateMachinerySubType","MachinerySubTypeForm","AdminMachineryType","setMachineryTypes","validateWorkerDocumentType","WorkerDocumentTypeForm","AdminWorkerDoucmentType","setWorkerDocumentTypes","validateWorkerType","WorkerTypeForm","AdminWorkerType","prepareWork","showEditUsers","setShowEditUsers","WorkFormFooter","AdminWorkUsersContainer","addData","setAddData","countryName","_props$countries$find","AddFooter","EditFooter","cancelEvent","configureWork","rowClassName","GraphQlUi","DepartmentForm","_props$data$isOblique","_props$data$notifyJob","_props$data$id4","setPolicies","notifyJobCreation","onSaved","onAddPoliciy","saveDepartmentPolicy","onRemovePolicy","_props$data$id3","Chips","doStringSearch","_data$value2","_data$value3","filtered","_r$policies","addDepartmentHasWorker","validatePermission","TestExpression","teUser","setTeUser","teWork","setTeWork","teJob","setTeJob","containsJob","setContainsJob","initializeJobs","testExpression","Expressions","PermissionForm","_props$data$action","_props$data$expressio","_form$values$roles$sp","_form$values$roles","activePanel","setActivePanel","predefinedPermissions","editable","InputTextarea","setPermissions","performRemovePermission","performSavePermission","ManagePolicies","chip","now","hasAssociatedUser","addPolicy","RenderCreateAppUserRelation","onCreated","createAndAssociateUser","UserFormContainer","_props$data$surname","_props$data$code","_props$data$workspace","_props$data$remarks","editAccess","setEditAccess","Edit","createAppUserDialog","savePolicies","RemovePolicyToAppUser","newPolicies","addWorkerHasWorkspace","associateExistingUser","requestEditUser","AppUser","saveAppUser","onSystemUserCreated","_props$onChange2","showConfirmDeactivate","setShowConfirmDeactivate","_formDialog$currentEd","_w$policies","_w$policies2","PropertyTypeForm","setSelectOptions","dispositionTypes","PropertyGroupTypeForm","PropertyGroupStyle","_style$backgroundColo","updateColor","PropertyGroupTypeHidableForm","propertyGroupType","PropertyType","propertyType","parsePropertyGroup","_g$properties","groupDialogs","propertyDialog","setAddRecord","addPropertyRecord","setAddPropertyRecord","EditableText","isPropertyType","isGroupType","allowDrop","currentOrder","sourceProperty","_parent$properties","_g$properties2","_r$propertyOrder","_s$propertyOrder","_d$styleObj","_d$styleObj2","float","onDragStart","doAddPropertyType","doAddPropertyGroup","defaultSettings","ContractorsConfiguration","__acceptSubContractorRequests","__mainContractorCanFulfillSubs","__rememberSubContractorAcceptances","rememberSubContractorAcceptances","gridTemplateColumns","gridGap","JobsConfiguration","_work$contextDataObj","_workSettings$jobHidd","_workSettings$jobHidd2","_workSettings$contrac","_workSettings$contrac2","_workSettings$workerH","_workSettings$workerH2","_workSettings$machine","_workSettings$machine2","_form$values$__jobEnc","_form$values$__jobHid","_form$values$__contra","_form$values$__worker","_form$values$__machin","_form$values$__client","_form$values$__screen","_notificationTemplate","_notificationTemplate2","notificationTemplates","workContextData","encodingOptions","Sequential","SequentialByWorkspace","contractorInvitationTemplateId","helpDeskEmail","resetPasswordTemplateId","__jobEncodingType","__jobEncodingPrefix","jobEncodingPrefix","__allowAlwaysNotifyInformationLoaded","__clientImage","__screenImage","__createJobRelations","__jobHiddenFields","jobHiddenFields","__contractorHiddenFields","contractorHiddenFields","__workerHiddenFields","workerHiddenFields","__machineryHiddenFields","machineryHiddenFields","__simpleDelayedRevokation","simpleDelayedRevokation","__jobDelayedRevokation","jobDelayedRevokation","__hideByDefaultEnded","__jobChainFinalisation","jobChainFinalisation","__contextDataPhone","__contextDataEmail","_form$get$split$map","_form$get","_form$get$split","_form$get$split$map2","_form$get2","_form$get2$split","_form$get$split$map3","_form$get3","_form$get3$split","_form$get$split$map4","_form$get4","_form$get4$split","_props$work$propertyG3","_props$work$propertyG4","_props$work$propertyG5","_props$work$propertyG6","contentClassName","PropertyGroupTypesContainer","RegisterContractorForm","_invitation$name","_invitation$propertyG2","_invitation$propertyG3","setInvitation","setActivityTypes","setLegalFormMandatory","setHiddenFields","updateValues","invitationId","equalTo","_hiddenFields","_invitation$propertyG","RegisterContractorSuccess","State","AdminStore","INIT","passwordConfirm","validateUserData","doChange","UserConfigurationForm","DependencyOptions","allRequirementGroups","allDependencyOptions","NONE","PROPAGATE","allRequirementDependencyTypes","RequirementMustHaveBeenRead","selectedDependencyType","setSelectedDependencyType","dependencyOptions","setDependencyOptions","setAllRequirements","setSelected","resolveDependency","resolveDependencyType","doAddRequirement","getRequirementTitle","_requirementTargetTyp","targetTypeName","selectedTargetType","_g$requirementTypes3","_g$requirementTypes4","_g$requirementTypes5","filterBy","getReferenceValues","propertyOperatorName","_allOperators$find$na","_allOperators$find","allOperators","propertyTitle","propertyIsReference","propertyIsBoolean","propertyIsCheckExistence","Operator","PropertyOperator","getCommonProperties","EQUAL","GREATER_EQUAL_THAN","GREATER_THAN","IN","LESSER_EQUAL_THAN","LESSER_THAN","CONTAINS","NOT_EQUAL","TRUE","FALSE","IS_NULL","IS_NOT_NULL","getJobDynamicProperties","_a$properties","getDynamicProperties","_a$properties2","propertyToCode","targetEntityName","propIsBoolean","operator","resourcePrefix","prefix","_propertyOperatorToCo","propertyName","isString","propertyIsString","propertyOperatorToCode","_propertyOperatorToCo2","expressionToCode","AND","expressions","expressionsToCode","fragments","_targets","getTargetEntityName","getPropertyNameWithoutPath","ExpressionFragment","fragment","onChangeOperator","onPropertiesChanged","selectedProperty","setSelectedProperty","selectedOperator","setSelectedOperator","operators","setOperators","isReference","setIsReference","setReferenceValues","selectedReference","setSelectedReference","selectedReferenceName","setSelectedReferenceName","selectedValue","setSelectedValue","setProperties","displayValues","setDisplayValues","isBooleanProp","dvs","__display","_values$find","isRef","isExst","isDyn","commonProperties","dynamicProperties","jobDynamicProperties","dynamicPropertyPrefix","OR","indx","removePropertyByIndex","newProperty","newProperties","astGetPropertyOperator","ast","_ast$values2","astGetInvocation","_ast$values3","parseAstOperator","_map$op","astToFragments","_ast$left","_ast$left2","_ast$right","_ast$right2","_ast$left3","_ast$left4","_ast$right3","_ast$right4","isRoot","_invocation$args$valu","_invocation$args","_ast$values","astGetPropertyName","invocation","astNodeToExpression","_ast$values4","astHasBooleanPropInvocation","_ast$right5","propertyPath","_ast$values5","astGetPath","_values","_values$length","_values2","setFragments","parseAndSetExpression","saveRequirementType","removeFragment","updateFragment","newFragment","newFragments","commonMimeTypes","AddDocumentRestriction","__excludeMimeTypes","__mimeTypes","DocumentRestrictionRepresentation","reps","_requirementType$valu","_requirementType$valu2","Add","_data$value$suggestio","LIST","onDelete","suggestion","addForm","ADD","_work$value$users","_work$value","_work$value$departmen","_work$value2","_work$value$workFunct","_work$value3","validationHolder","_data$value$validatio","editHolderRecord","setEditHolder","addHolderRecord","setAddHolderRecord","EDIT","doDelete","_work$value$users$fin","_work$value2$departme","_work$value2$departme2","resolveWorkFunction","_work$value3$workFunc","_work$value3$workFunc2","onlyNotifications","isBlocking","RequirementTypeValidationHolder","AddRequirementGroupInput","saveRequirementGroup","borderWidth","borderStyle","EditRequirementGroup","AddRequirementTypeInput","_requirementExpiratio","expirationTypeId","RequirementTypeConfiguration","templates","billingTypes","background","RequirementTypeSetPolicy","RequirementTypeInfo","_requirementType$depe","_allRequirements$find","RequirementTypeRow","requestRefresh","requestSelected","splitButton","expanded","setExpanded","saveChanges","close","_requirementGroup$req","sourceRequirement","_requirementGroup$req2","_r$orderValue","_s$orderValue","EditRequirementTypeDocumentRestrictionsContainer","EditRequirementTypeDependenciesContainer","EditRequirementTypeExpression","RequirementTypeSuggestions","RequirementTypeValidationHolders","RequirementGroupRow","colorRef","setRequirementTypes","selectedRequirementType","setSelectedRequirementType","_requirementGroup$req3","RequirementGroups","_ref19","_a$orderValue2","_b$orderValue2","_props$work$requireme","setSelectedTargetType","tt","NotificationTemplateForm","_props$data$title","_props$data$message","showFooter","filtersForm","filteredTemplates","setFilteredTemplates","isBlank","_filters$action$toLow","_filters$action","_filters$title$toLowe","_filters$title","filterTemplate","NotificationMessageForm","_props$data$byMail","commonActions","notificationResourceTypes","resourceTypes","restrictToResourceType","restrictToResourceId","notificationTemplateId","byMail","actionKey","_props$work$departmen","_messages$value","_templates$value","resourceTypeRestrict","resolveAction","resolveResourceType","resolveRestrictResourceType","setFilteredMessages","_messages$value2","restrictResource","actionName","_r$notificationTempla","notificationTemplate","_m$notificationTempla","notificationTemplateName","_props$work$departmen2","_props$work$departmen3","AdminWorkMessages","AdminNotificationTemplates","decodeExpression","encodeExpression","FieldValidationForm","_decodeExpression","setExpression","setTestExpression","cifCantBeRepeated","noInformationLoadedState","freeRequirementsAreMandatory","omitJobHasContractorDefaultNotification","jobHasContractorNotificationTargetPolicy","informationLoadedNotificationPolicy","_props$work$workHasMo","_props$availableModul","workHasModules","workRelations","_r$isActive","moduleName","workHasModule","saveModuleRelation","toggleWorkHasModule","_raw$workHasModule$is","_raw$workHasModule","newRel","toggleModuleRelation","EventTriggerForm","_props$data$resourceT","_props$data$eventTrig","eventTriggerTypes","resourceTypeId","eventTriggerTypeId","getValue","monaco","theme","onresize","layout","eventTriggers","setEventTriggers","resolveEventTriggerType","saveTrigger","el","paths","vs","define","moduleView","view","_module$handleView","handleView","route","ContractorUserProfileImpl","_res$error","ContractorStore","WorkerStore","_state$identity2","WorkerProfile","ContractorProfile","ModuleViewWrapper","WorkLoader","ModuleViewContainer","UserProfileWrapper","UserProfileContainer","AdminWrapper","AdminLoader","AdminDocumentTypesWrapper","AdminDocumentTypesContainer","AdminUsersWrapper","AdminUsers","AdminWorkWrapper","AdminWorkLoader","EditWorkContainer","AdminWorksWrapper","AdminWorks","AdminWorkPermissionsWrapper","AdminWorkPermissions","AdminWorkRequirementsWrapper","AdminWorkRequirementsContainer","AdminWorkConfigurationWrapper","AdminWorkConfiguration","AdminWorkDepartmentsWrapper","AdminWorkDepartments","AdminWorkNotificationsWrapper","AdminWorkNotifications","AdminWorkValidationsWrapper","AdminWorkValidations","AdminWorkUsersWrapper","AdminWorkWorkers","AdminWorkContractorsSettingsWrapper","AdminWorkContractorsSettings","AdminWorkMachineriesSettingsWrapper","AdminWorkMachineriesSettings","AdminWorkWorkersSettingsWrapper","AdminWorkWorkersSettings","AdminWorkJobSettingsWrapper","AdminWorkJobsSettings","AdminWorkModulesWrapper","AdminWorkModules","AdminWorkEventsWrapper","AdminWorkEvents","AdminDevelVoyagerWrapper","AdminDevelGraphqlUi","AdminDevelGraphqlUiWrapper","AdminRoutes","RegisterContractorContainer","UserConfigurationContainer","ChangePasswordContainer","ResetPasswordContainer","ModuleViewRedirectionContainer","ReactDOM","isLocalhost","registerValidSW","swUrl","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","catch","process","getElementsByTagName","getAttribute","store","initialState","middleware","thunk","routerMiddleware","rootReducer","combineReducers","router","connectRouter","enhancers","windowIfDefined","__REDUX_DEVTOOLS_EXTENSION__","createStore","compose","applyMiddleware","configureStore","History","AppActions","_startSignalNotifications","__last_reloadns","Provider","ConnectedRouter","origin","contentType","ready","unregister","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.8c98ee61.chunk.js","sourcesContent":["import { useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\n\nimport { ApplicationState } from '../../store';\nimport { IUserIdentity, IWork, IWorkPermission } from '../../models';\nimport { evalAndParse } from '../../utils/expressions';\n\nfunction WithPermissions({action, children, work, user}: {\n action: string, children: any, work: IWork, user: IUserIdentity\n}) {\n const [hasPermissions, setHasPermissions] = useState(false);\n\n const evalPermission = (p: IWorkPermission) => {\n if (user.roles.includes('gestor')) {\n return true;\n }\n if (p.expression) {\n return evalAndParse(p.expression, {\n identity: user,\n work: work,\n workId: work?.id,\n });\n }\n else if (p.roles) {\n const roles = p.roles.split(',');\n return user.roles.find(r => roles.includes(r)) != undefined;\n }\n else if (p.policies) {\n const policies = p.policies.split(',');\n return user.policies.find(r => policies.includes(r)) != undefined;\n }\n else {\n return false;\n }\n }\n\n useEffect(() => {\n const perms = work.permissions.filter(p => p.action == action);\n setHasPermissions(perms.length == 0 || perms.find(evalPermission) != undefined);\n }, [user, work, action]);\n\n if (hasPermissions) {\n return children;\n }\n else {\n return null;\n }\n}\n\nexport default connect(\n (state: ApplicationState) => ({\n work: state.user.work,\n user: state.identity?.user,\n }),\n {},\n)(WithPermissions as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { ModuleManager, ISecurity, IWork } from '@models';\nimport * as S from '@utils/security';\n\ntype IUsePermissionsProps = {\n security: ISecurity;\n moduleManager: ModuleManager;\n work: IWork;\n}\n\ntype IUsePermissionsOpts = {\n ctx?: any;\n defaults?: any;\n explicit?: boolean;\n debug?: boolean;\n dependencies?: any;\n};\n\nexport interface IPermissions {\n get: (name: string) => boolean;\n isGestor: () => boolean;\n isContractor: () => boolean;\n}\n\nexport function usePermissions(\n props: IUsePermissionsProps,\n opts: IUsePermissionsOpts,\n permissions: any = {}) {\n const hasPermission = (p: string, ctx: any = {}) => S.hasPermission(p, {\n user: props.security.user,\n work: props.work,\n explicit: opts.explicit !== false,\n ...ctx\n });\n\n const security = props.security;\n const moduleManager = props.moduleManager;\n\n const [values, setValues] = React.useState({});\n const [id, setId] = React.useState(0);\n\n const permissionCtx = {\n work: props.work,\n security: props.security,\n ...(opts.ctx ?? {}),\n };\n\n const requirePermission = async (name: string, key: string, defaultValue: any = undefined) => {\n const defaultPermission = defaultValue\n ?? hasPermission(name, permissionCtx)\n ?? false;\n\n const res = await moduleManager.requirePermission(\n name,\n permissionCtx,\n defaultPermission,\n );\n\n\t if (opts.debug) {\n\t console.log(`## PERMISSIONS: initialize ${key}`, name, res, {\n default: defaultPermission,\n hasPermission: hasPermission(name, permissionCtx),\n ctx: permissionCtx\n\t });\n\t }\n\n\t return res;\n }\n\n const initialize = async () => {\n\t const res: any = {};\n\t const keys = Object.keys(permissions);\n for (const k of keys) {\n const v = permissions[k];\n const perm = typeof(v) === 'string' ? v : v.name;\n const defaultValue = typeof(v) === 'string' ? opts.defaults?.[k] : v.default;\n const r = await requirePermission(perm, k, defaultValue);\n res[k] = r;\n }\n\n setValues(res);\n setId(new Date().getTime());\n }\n\n const get = (name: string) => {\n if (opts.debug) {\n console.log('## PERMISSIONS: get', name, values[name] ?? false, values);\n }\n return values[name] ?? false;\n }\n\n React.useEffect(() => {\n\t initialize();\n }, [props.moduleManager.getId(), props.security, opts?.dependencies]);\n\n return {\n id,\n get,\n isGestor: () => props.security.isGestor(),\n isContractor: () => props.security.isContractor(),\n };\n}\n","import * as React from 'react';\n\nexport interface IProps {\n children: any;\n}\n\nexport function ButtonSet(props: IProps) {\n return {props.children}\n}","import * as React from 'react';\n\nexport interface IProps {\n label: string;\n labelClassName?: string;\n children: any;\n}\n\nexport function F({label, labelClassName, children}: IProps) {\n return \n \n {children}\n \n}","import * as React from 'react';\n\nimport { classNames } from 'primereact/utils';\n\nexport interface IProps {\n title: string;\n className?: string;\n containerClassName?: string;\n children: any;\n\n collapsible?: boolean;\n closed?: boolean;\n}\n\nexport function FieldsBox({collapsible, children, className, closed, title, containerClassName}: IProps) {\n const [isDown, setIsDown] = React.useState(!closed);\n const toggle = () => setIsDown(b => !b);\n\n return
\n
\n {collapsible && }\n {title}\n
\n
\n {(!collapsible || isDown) && children}\n
\n
\n}\n","import * as React from 'react';\n\ninterface IFloatFieldProps {\n id: string;\n title: string;\n children: any;\n type?: string;\n className?: string;\n labelClassName?: string;\n errorMessage?: false | JSX.Element;\n}\n\nexport function FormField(props: IFloatFieldProps) {\n return
\n {props.children}\n {props.errorMessage}\n
;\n}\n\nexport function FloatField(props: IFloatFieldProps) {\n return
\n \n {props.children}\n {props.title}\n \n {props.errorMessage}\n
;\n}\n","import * as React from 'react';\n\nimport { classNames } from 'primereact/utils';\nimport SignalManager from '@components/common/SignalManager';\n\nexport interface IProps {\n className?: string;\n name?: string;\n label: string;\n children: any;\n signals?: SignalManager;\n}\n\nexport function G({className, children, label, name, signals}: IProps) {\n return <>\n {(signals == undefined || signals?.fieldIsVisible(name)) &&\n
\n \n {children}\n
}\n ;\n}\n","import * as React from 'react';\n\nimport { useLoading } from '@utils/hooks';\n\nexport function InlineInputText({className, style, object, field, save}: {className: string, style?: any, object: any, field: string, save: Function}) {\n const loading = useLoading();\n\n const update = loading.wrap(async (ev: any) => {\n object[field] = ev.target.value;\n\n await save(object);\n });\n\n return
\n \n {loading.render()}\n
;\n}\n","import * as React from 'react';\n\nimport { Dropdown as Select } from 'primereact/dropdown';\nimport { useLoading } from '@utils/hooks';\n\nexport function InlineSelect({options, optionLabel, optionValue, object, field, save}: {\n options: any[], optionLabel?: string, optionValue?: string,\n object: any, field: string, save: Function\n}) {\n const loading = useLoading();\n\n const update = loading.wrap(async (ev: any) => {\n object[field] = ev.target.value;\n\n await save(object);\n });\n\n return
\n \n {loading.render()}\n
;\n}\n","import * as React from 'react';\n\nimport { classNames } from 'primereact/utils';\n\nexport interface IProps {\n className?: string;\n suffix: string;\n children: any;\n}\n\nexport function InputGroup(props: IProps) {\n return
\n {props.children}\n {props.suffix &&\n \n \n }\n
\n}","import * as React from 'react';\n\nimport { Loading } from './Loading';\n\nexport interface IProps {\n message?: string;\n}\n\nexport function LoadingBox(props: IProps) {\n return (
\n
\n {props.message}\n
)\n}","import * as React from 'react';\n\nimport { Message } from 'primereact/message';\nimport { INotification, NotificationType } from '../../models';\nimport { useTranslation } from 'react-i18next';\n\nexport interface IProps {\n notification: INotification;\n}\n\nexport function NotificationBox(props: IProps) {\n const { t } = useTranslation();\n if (props.notification.type === NotificationType.ERROR) {\n return ;\n }\n else {\n return null;\n }\n}","import * as React from 'react';\n\nimport { NotificationBox } from './NotificationBox';\nimport { INotification } from '../../models';\n\nexport interface IProps {\n notifications: INotification[];\n}\n\nexport function NotificationsBox(props: IProps) {\n return
\n {props.notifications.map((n, k) => )}\n
\n}","import * as React from 'react';\n\nexport interface IProps {\n className?: string;\n label: string;\n labelClassName?: string;\n children: any;\n}\n\nexport function R({className, label, labelClassName, children}: IProps) {\n return
\n \n {children}\n
\n}","import * as React from 'react';\n\nimport './TogglePanel.scss';\n\nexport interface IProps {\n bodyClassName?: string;\n children?: any;\n className?: string;\n isOpen?: boolean;\n title: string;\n titleIcon?: string;\n}\n\nexport function TogglePanel(props: IProps) {\n const [isOpen, setIsOpen] = React.useState(props.isOpen ?? false);\n\n return
\n
setIsOpen(a => !a)}>\n \n {props.titleIcon &&\n }\n {props.title}\n
\n\n {isOpen &&\n
\n {props.children}\n
}\n
\n}","import * as React from 'react';\n\nimport { paginate, searchExportToXls, DEFAULT_LIMIT } from '@store/actions/search';\nimport { useLoading, useMessage } from '@utils/hooks';\nimport { IPaginateResult, IPaginateSort } from '@models';\nimport { downloadBlob } from '@utils/file-utils';\nimport i18next from 'i18next';\n\nexport interface IProps {\n search: string;\n filters?: any;\n sortBy?: IPaginateSort[];\n workId: number;\n normalizeKeys?: boolean;\n lazy?: boolean;\n page?: number;\n limit?: number;\n map?: Function;\n dependencies?: any;\n exportFilename?: string;\n persist?: true;\n}\n\nconst __pages: {[key: string]: number} = {};\n\nexport default function useSearchPaginate(props: IProps) {\n const prevDependencies = React.useRef(props.dependencies);\n const [data, setData] = React.useState>({\n total: 0,\n page: __pages[props.search] ?? 0,\n data: [],\n limit: DEFAULT_LIMIT,\n });\n const [currentLimit, setCurrentLimit] = React.useState(props.limit ?? DEFAULT_LIMIT);\n\n const [sortBy, setSortBy] = React.useState();\n\n const message = useMessage();\n const loading = useLoading();\n\n const initialized = React.useRef(false);\n\n const initialize = loading.wrap(async (filters: any = undefined, page: number | undefined = undefined, limit: number | undefined = undefined) => {\n const pageValue = page ?? props.page ?? __pages[props.search] ?? 0;\n const actualLimit = limit ?? currentLimit ?? props.limit;\n\n const resp = await paginate(props.workId, props.search, {\n normalizeKeys: props.normalizeKeys ?? true,\n filters: filters ?? props.filters,\n page: pageValue,\n limit: actualLimit,\n sortBy: sortBy ? [sortBy] : props.sortBy,\n });\n message.set(resp);\n setCurrentLimit(actualLimit);\n\n if (props.persist ?? false) {\n __pages[props.search] = pageValue;\n }\n\n if (resp.hasValue) {\n const v = resp.value;\n const rawData = (v.data && props.map)\n ? v.data.map(r => props.map!(r))\n : v.data;\n\n setData({ ...v, data: rawData });\n\n return rawData;\n }\n return undefined;\n });\n\n React.useEffect(() => {\n if (prevDependencies.current == props.dependencies) {\n return;\n }\n if (!props.lazy || initialized.current) {\n initialize();\n }\n\n if (!initialized.current) {\n initialized.current = true;\n }\n\n prevDependencies.current = props.dependencies;\n }, props.dependencies ?? []);\n\n React.useEffect(() => {\n if (sortBy != props.sortBy) {\n initialize();\n }\n }, [sortBy]);\n\n const exportToXls = async (filters: any, filename: string | undefined = undefined, useI18N: boolean = false) => {\n const resp = await searchExportToXls(props.workId, props.search, {\n filters: filters ?? props.filters,\n }, useI18N ? i18next.language : undefined);\n downloadBlob(resp, filename ?? props.exportFilename ?? 'export.xlsx');\n }\n\n const doSortBy = (name: string, asc: boolean = true) => {\n setSortBy({ name, asc });\n }\n\n return {\n data: data.data ?? [],\n value: data,\n loading,\n message,\n renderLoading: loading.renderBox,\n sortBy: doSortBy,\n exportToXls: (filters: any = undefined, filename: string | undefined = undefined, useI18N: boolean = false) => exportToXls(filters, filename, useI18N),\n doSearch: (filters: any = undefined, page: number | undefined = undefined, limit: number | undefined = undefined) => initialize(filters, page, limit),\n };\n}\n","import * as React from 'react';\n\nimport { search } from '@store/actions/search';\nimport { useLoading, useMessage } from '@utils/hooks';\n\nexport interface IProps {\n search: string;\n filters?: any;\n workId: number;\n normalizeKeys?: boolean;\n lazy?: boolean;\n dependencies?: any;\n}\n\nexport default function useSearchFirst(props: IProps) {\n const [data, setData] = React.useState([]);\n const loading = useLoading();\n const messages = useMessage();\n\n const initialize = loading.wrap(async (filters: any = undefined) => {\n const resp = await search(props.workId, props.search, {\n normalizeKeys: props.normalizeKeys ?? true,\n filters: filters ?? props.filters\n });\n messages.set(resp);\n if (resp.hasValue) {\n setData(resp.value);\n }\n });\n\n React.useEffect(() => {\n if (!props.lazy) {\n initialize();\n }\n }, props.dependencies ?? []);\n\n return {\n value: data && data.length > 0 ? data[0] : undefined,\n loading,\n messages,\n renderLoading: loading.render,\n doSearch: (filters: any = undefined) => initialize(filters),\n };\n}\n","type DispatcherF = (value: string) => void;\n\nexport default class InputEventDispatcher {\n private value?: string;\n private ts: number;\n private sended: boolean;\n\n constructor(\n private dispatchEvent: DispatcherF,\n private onChange?: DispatcherF,\n private delay: number = 500) {\n this.ts = new Date().getTime();\n this.value = undefined;\n\n this.enqueue = this.enqueue.bind(this);\n this.sended = false;\n }\n\n private enqueue() {\n const nts = new Date().getTime();\n if (nts - this.ts > this.delay) {\n if (this.sended) {\n return;\n }\n this.sended = true;\n this.dispatchEvent(this.value ?? '');\n }\n else {\n setTimeout(this.enqueue, this.delay);\n }\n }\n\n public append(event: any) {\n const value = event.target.value;\n const ts = new Date().getTime();\n\n this.sended = value == this.value;\n console.log('InputEventdispatcher, set ', value, this.onChange);\n this.onChange?.(value);\n\n this.value = value;\n setTimeout(this.enqueue, this.delay);\n\n this.ts = ts;\n }\n}\n","import * as React from 'react';\r\n\r\nimport { getUserFilters } from '@store/actions/search';\r\nimport {\r\n ISecurity, IUserSearchFilter, UserSearchFilterType\r\n} from '@models';\r\nimport {\r\n Button, InputSwitch, OverlayPanel, onChange, useLoading, useTranslation\r\n} from '@components';\r\nimport {\r\n storageGet, storageSet\r\n} from '@utils/storage';\r\nimport InputEventDispatcher from './InputEventDispatcher';\r\nimport { delay } from '@utils';\r\nimport './useSearchFilters.scss';\r\n\r\nexport interface IProps {\r\n workId: number;\r\n name: string;\r\n references?: any;\r\n onChange?: Function;\r\n security?: ISecurity;\r\n persist?: boolean;\r\n awaitForApply?: boolean;\r\n}\r\n\r\nfunction FilterInputTextOnEnter(props: any) {\r\n const [value, setValue] = React.useState(props.value || '');\r\n\r\n const onKeyPress = (e: any) => {\r\n if (e.key == 'Enter') {\r\n props.onChange(value);\r\n }\r\n }\r\n\r\n return setValue(e.target.value)} />\r\n}\r\n\r\nfunction FilterInputText(props: any) {\r\n const [value, setValue] = React.useState(props.value || '');\r\n\r\n const dispatcher = React.useRef(\r\n new InputEventDispatcher(\r\n props.onChange,\r\n setValue\r\n ));\r\n\r\n return \r\n dispatcher.current.append(e)\r\n } />\r\n}\r\n\r\nexport default function useSearchFilters(props: IProps) {\r\n const getLocalStorageKey = () => {\r\n return `filters_${props.name}_${props.workId}`;\r\n }\r\n\r\n const recoverStorage = () => {\r\n const data = storageGet(getLocalStorageKey(), {});\r\n return data;\r\n }\r\n\r\n const [filters, setFilters] = React.useState([]);\r\n const [filterValues, setFilterValues] = React.useState(\r\n recoverStorage()\r\n );\r\n const [temporaryFilterValues, setTemporaryFilterValues] = React.useState([]);\r\n\r\n const [defaultFilterValues, setDefaultFilterValues] = React.useState({});\r\n const [error, setError] = React.useState();\r\n const propagate = React.useRef(false);\r\n const loading = useLoading();\r\n const { t } = useTranslation();\r\n\r\n const buttonRef = React.useRef(null);\r\n\r\n const canApplyFilter = (f: IUserSearchFilter) => {\r\n return (f.excludeRole && !props.security?.hasRole(f.excludeRole))\r\n || (!f.excludeRole && f.requireRole && props.security?.hasRole(f.requireRole))\r\n || (!f.excludeRole && !f.requireRole);\r\n }\r\n\r\n const initialize = loading.wrap(async () => {\r\n try {\r\n const storeKey = getLocalStorageKey();\r\n const state: any = props.persist\r\n ? storageGet(storeKey, {})\r\n : {};\r\n const rawFs = await getUserFilters(props.workId, props.name);\r\n const fs = rawFs.filter(canApplyFilter);\r\n const values: any = {};\r\n const defaultValues: any = {};\r\n for (const f of fs) {\r\n if (f.type == UserSearchFilterType.REFERENCE && f.default == 'current_year') {\r\n const currentYear = new Date().getFullYear();\r\n f.default = currentYear;\r\n }\r\n else if (f.type == UserSearchFilterType.REFERENCE && f.default == 'current_month') {\r\n const currentMonth = new Date().getMonth();\r\n f.default = currentMonth;\r\n }\r\n else {\r\n defaultValues[f.name] = f.default;\r\n values[f.name] = state[f.name] ?? f.default;\r\n }\r\n }\r\n setFilterValues(values);\r\n setTemporaryFilterValues(values);\r\n setDefaultFilterValues(defaultValues);\r\n setFilters(fs);\r\n setTimeout(() => propagate.current = true, 700);\r\n\r\n buttonRef.current = null;\r\n }\r\n catch (_) {\r\n setError(t('search.filters.notfound'));\r\n }\r\n });\r\n\r\n React.useEffect(() => {\r\n initialize();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (props.onChange && propagate.current) {\r\n props.onChange(filterValues);\r\n }\r\n\r\n if (props.persist) {\r\n const key = getLocalStorageKey();\r\n storageSet(key, filterValues);\r\n }\r\n }, [filterValues]);\r\n\r\n const applyFilters = () => {\r\n setShowPanel(false);\r\n setFilterValues({ ...temporaryFilterValues });\r\n };\r\n\r\n const renderFilterComponent = (f: IUserSearchFilter) => {\r\n if (f.type === UserSearchFilterType.BOOL) {\r\n return {\r\n if (props.awaitForApply) {\r\n setTemporaryFilterValues({ ...temporaryFilterValues, [f.name]: e.value });\r\n }\r\n else {\r\n setFilterValues((v: any) => ({ ...v, [f.name]: e.target.value }));\r\n }\r\n }} />\r\n }\r\n else if (f.type === UserSearchFilterType.TEXT) {\r\n return {\r\n if (props.awaitForApply) {\r\n setTemporaryFilterValues({ ...temporaryFilterValues, [f.name]: v });\r\n }\r\n else {\r\n setFilterValues((values: any) => ({ ...values, [f.name]: v }));\r\n }\r\n }\r\n } />\r\n }\r\n else if (f.type === UserSearchFilterType.REFERENCE || f.type === UserSearchFilterType.MULTI_REFERENCE) {\r\n const referenceValues = props.references?.[f.name] ?? [];\r\n const values = () => {\r\n if (f.type === UserSearchFilterType.REFERENCE) {\r\n if (temporaryFilterValues[f.name] != filterValues[f.name]) {\r\n return temporaryFilterValues[f.name] ?? filterValues[f.name] ?? '';\r\n }\r\n else {\r\n return filterValues[f.name] ?? '';\r\n }\r\n }\r\n else {\r\n if (temporaryFilterValues[f.name] != filterValues[f.name]) {\r\n return temporaryFilterValues[f.name] ?? filterValues[f.name] ?? [];\r\n }\r\n else {\r\n return filterValues[f.name] ?? [];\r\n }\r\n }\r\n }\r\n const filterValue = values();\r\n if (props.workId == 23 && referenceValues.length == 0) {\r\n return null\r\n }\r\n return {\r\n const v = e.target.value;\r\n if (f.type === UserSearchFilterType.MULTI_REFERENCE) {\r\n if ((filterValue != undefined && filterValue.includes(+v))) {\r\n const newValue = filterValue.filter((x: any) => x != +v);\r\n if (props.awaitForApply) {\r\n setTemporaryFilterValues({ ...temporaryFilterValues, [f.name]: newValue });\r\n }\r\n else {\r\n setFilterValues((fv: any) => ({ ...fv, [f.name]: filterValue[f.name].filter((x: any) => x != +v) }));\r\n }\r\n }\r\n else if (filterValue == undefined) {\r\n if (props.awaitForApply) {\r\n setTemporaryFilterValues({ ...temporaryFilterValues, [f.name]: [+v] });\r\n }\r\n else {\r\n setFilterValues((fv: any) => ({ ...fv, [f.name]: [+v] }));\r\n }\r\n }\r\n else {\r\n if (props.awaitForApply) {\r\n setTemporaryFilterValues({ ...temporaryFilterValues, [f.name]: [...filterValue, +v] });\r\n }\r\n else {\r\n setFilterValues((fv: any) => ({ ...fv, [f.name]: [...filterValue, +v] }));\r\n }\r\n }\r\n } else {\r\n if (props.awaitForApply) {\r\n setTemporaryFilterValues({ ...temporaryFilterValues, [f.name]: +v });\r\n }\r\n else {\r\n setFilterValues((fv: any) => ({ ...fv, [f.name]: +v }));\r\n //? setFilterValues((fv: any) => ({ ...fv, [f.name]: filterValues[f.name] != undefined ? [...filterValues[f.name], v] : [v] }));\r\n }\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }} multiple={f.type === UserSearchFilterType.MULTI_REFERENCE}>\r\n \r\n {referenceValues\r\n .sort((a: any, b: any) => typeof a.name == \"number\" && typeof b.name == \"number\" ? a.name - b.name :\r\n f.shouldTranslate == false ? a.name?.localeCompare(b.name) : t(a.name).localeCompare(t(b.name))\r\n )\r\n .map((r: any, i: number) => {\r\n return \r\n }\r\n )}\r\n ;\r\n }\r\n else if (f.type === UserSearchFilterType.DATE) {\r\n return {\r\n const value = e.target.value;\r\n if (props.awaitForApply) {\r\n setTemporaryFilterValues({ ...temporaryFilterValues, [f.name]: value });\r\n }\r\n else {\r\n setFilterValues((v: any) => ({ ...v, [f.name]: value }))\r\n }\r\n }} />\r\n }\r\n else if (f.type === UserSearchFilterType.DATE_RANGE) {\r\n return
\r\n {\r\n const value = e.target.value;\r\n let oldValue = temporaryFilterValues[f.name] ?? filterValues[f.name];\r\n if (oldValue == null) {\r\n oldValue = [null, null];\r\n }\r\n oldValue[0] = value;\r\n if (props.awaitForApply) {\r\n temporaryFilterValues({ ...temporaryFilterValues, [f.name]: oldValue });\r\n }\r\n else {\r\n setFilterValues((v: any) => ({ ...v, [f.name]: oldValue }))\r\n }\r\n }} />\r\n\r\n {\r\n const value = e.target.value;\r\n let oldValue = temporaryFilterValues[f.name] ?? filterValues[f.name];\r\n if (oldValue == null) {\r\n oldValue = [null, null];\r\n }\r\n oldValue[1] = value;\r\n if (props.awaitForApply) {\r\n setTemporaryFilterValues({ ...temporaryFilterValues, [f.name]: oldValue });\r\n }\r\n else {\r\n setFilterValues((v: any) => ({ ...v, [f.name]: oldValue }))\r\n }\r\n }} />\r\n
\r\n }\r\n else {\r\n return TODO\r\n }\r\n }\r\n\r\n const renderFilterRow = (f: IUserSearchFilter) => {\r\n\r\n const filterComponent = renderFilterComponent(f);\r\n if (props.workId === 23 && !filterComponent) { return null }\r\n\r\n return
\r\n \r\n {f.help && }\r\n \r\n \r\n {filterComponent}\r\n
\r\n }\r\n\r\n const clearFilters = (e: any) => {\r\n setShowPanel(false);\r\n panelRef.current.hide(e);\r\n setFilterValues(defaultFilterValues);\r\n }\r\n\r\n const closePanel = (e: any) => {\r\n panelRef.current.hide(e);\r\n setShowPanel(false);\r\n }\r\n\r\n const render = () => {\r\n return
\r\n {loading.renderBox()}\r\n {error === undefined &&\r\n
\r\n {filters.map && filters.map(f => renderFilterRow(f))}\r\n
}\r\n {error !== undefined &&\r\n
\r\n \r\n {error}\r\n
}\r\n\r\n
\r\n \r\n \r\n {props.awaitForApply &&\r\n }\r\n \r\n
\r\n
\r\n };\r\n\r\n const [showPanel, setShowPanel] = React.useState(false);\r\n\r\n const panelRef = React.useRef();\r\n\r\n function RenderAsButton({ className }: { className?: string } = {}) {\r\n className = className || 'fas fa-filter pointer filter-btn';\r\n let hasFilters = false;\r\n\r\n for (const i in defaultFilterValues) {\r\n if (defaultFilterValues[i] != null && defaultFilterValues[i] != undefined && defaultFilterValues[i] != '') {\r\n hasFilters = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!hasFilters) {\r\n for (const i in filterValues) {\r\n if (filterValues[i] != null && filterValues[i] != undefined && filterValues[i] != '') {\r\n hasFilters = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (filters.length > 0) {\r\n return
\r\n {\r\n if (props.awaitForApply) {\r\n setShowPanel(a => !a)\r\n } else {\r\n panelRef.current.toggle(e);\r\n }\r\n }} />\r\n\r\n {showPanel && props.awaitForApply &&
\r\n {render()}\r\n
}\r\n\r\n \r\n {render()}\r\n \r\n
;\r\n }\r\n else {\r\n return ;\r\n }\r\n }\r\n\r\n\r\n const renderAsButton = ({ className }: { className?: string } = {}) => {\r\n if (buttonRef.current == null) {\r\n const instance = ;\r\n buttonRef.current = instance;\r\n }\r\n\r\n React.useEffect(() => {\r\n return () => {\r\n buttonRef.current = null;\r\n }\r\n }, [filterValues]);\r\n\r\n return \r\n }\r\n\r\n const Component = React.memo(\r\n RenderAsButton,\r\n (a: any, b: any) => {\r\n return true;\r\n });\r\n\r\n const setFilter = (name: string, value: any) => {\r\n setFilterValues((f: any) => ({ ...f, [name]: value }));\r\n }\r\n\r\n const hasFilters = () => {\r\n const keys = Object.keys(filterValues);\r\n const values = keys.map(k => filterValues[k]).filter(r => r != undefined);\r\n return values.length > 0;\r\n }\r\n\r\n return {\r\n signature: JSON.stringify(filterValues),\r\n Component: Component,\r\n loading,\r\n filters: filterValues,\r\n hasFilters,\r\n mergeFilters: (v: any) => ({ ...filterValues, ...v }),\r\n merge: (v: any) => ({ ...filterValues, ...v }),\r\n render: render,\r\n setFilter,\r\n renderAsButton: renderAsButton,\r\n }\r\n}\r\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport { RequireRole } from '../../components/custom/RequireRole';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity\n }),\n {},\n)(RequireRole as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { IUserIdentity } from '@models';\n\nexport interface IProps {\n children: any;\n exclude?: string;\n role?: string;\n oneOf?: string[];\n user: IUserIdentity;\n}\n\nexport function RequireRole({children, oneOf, user, role, exclude}: IProps) {\n if (oneOf != undefined && oneOf.find(o => user.roles.includes(o)) != undefined) {\n return children;\n }\n if (exclude != undefined && !user.roles.includes(exclude)) {\n return children;\n }\n else if (role != undefined && user.roles.includes(role)) {\n return children;\n }\n else {\n return null;\n }\n}\n","const MAIL_REGEXP = /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/;\n\nconst minLength = (min: number) =>\n (s: number|string|undefined) =>\n s && s != null && typeof(s) === 'string' && s.length >= min;\n\nconst notEmpty = (s: number|string|undefined) =>\n s && s != null && (typeof(s) !== 'string' || s.trim() !== '');\n\nconst match = (pre: string|undefined) =>\n (value: string|undefined) => value == pre;\n\nconst email = (s: string) =>\n s == '' || s == undefined || s.match(MAIL_REGEXP) != undefined;\n\nconst validations = {\n minLength,\n match,\n notEmpty,\n email,\n}\n\nconst validate = (data: any, prop: string, errors: any, fn: Function, message: string = 'Error', all: boolean = false) => {\n const v = fn(data ? (!all ? data[prop] : data) : undefined, data);\n\n if (!v) {\n errors[prop] = message;\n }\n}\n\nexport {\n validations,\n validate\n};","import { get as i18n } from '../i18n';\nimport { validate, validations as V } from '@components/custom/validations';\nimport { createFieldValidation, IFieldValidation } from '@models';\n\ntype IValidation = {\n name: string,\n message: string,\n validation: Function,\n all?: boolean,\n};\n\ntype EqualsToTarget = {\n object: any,\n property: string,\n};\n\nconst isEqualsToTarget = (v: any): v is EqualsToTarget =>\n (v as EqualsToTarget).object !== undefined;\n\nexport default class ValidationBuilder {\n private t: Function = i18n;\n private errors: any = {};\n private data: T|undefined;\n private validations: IValidation[] = [];\n\n static create(data: T|undefined = undefined) {\n return new ValidationBuilder(data);\n }\n\n static new() {\n return new ValidationBuilder(undefined);\n }\n\n constructor(data: T|undefined = undefined) {\n this.data = data;\n }\n\n public lift() {\n return (data: T) => {\n this.data = data;\n\n return this.build();\n }\n }\n\n public withFieldValidations(resourceType: number, fields?: IFieldValidation[]) {\n const fieldValidations = fields?.filter(f => f.resourceType === resourceType) ?? [];\n for (const f of fieldValidations) {\n this.custom(f.errorMessage, createFieldValidation(f.value), f.field);\n }\n return this;\n }\n\n public withI18n(f: Function) {\n this.t = f;\n return this;\n }\n\n public withData(data: T) {\n this.data = data;\n return this;\n }\n\n public customValidations(validations: {name: string, msg: string, validation: Function}[]) {\n for (const v of validations) {\n this.custom(v.msg, v.validation, v.name);\n }\n return this;\n }\n\n public custom(msg: string, validation: Function, name: string | undefined = undefined) {\n this.validations.push({name: name ?? 'error', validation, message: this.t(msg), all: true});\n return this;\n }\n\n public add(name: string, validation: Function, message: string) {\n this.validations.push({name, validation, message: this.t(message)});\n return this;\n }\n\n public minLength(name: string, minLength: number, message: string|undefined = undefined) {\n this.add(name, V.minLength(minLength), message ?? `${name} is required`);\n return this;\n }\n\n public notEmpty(name: string, message: string|undefined = undefined) {\n this.add(name, V.notEmpty, message ?? `${name} is required`);\n return this;\n }\n\n public notEmptyIf(condition: boolean|Function|undefined, name: string, message: string|undefined = undefined) {\n if (typeof(condition) === 'boolean' && condition === true) {\n this.add(name, V.notEmpty, message ?? `${name} is required`);\n }\n else if (typeof(condition) === 'function' && condition()) {\n this.add(name, V.notEmpty, message ?? `${name} is required`);\n }\n\n return this;\n }\n\n public match(name: string, data: any, message: string) {\n this.add(name, V.match(data), message);\n return this;\n }\n\n public email(name: string, message: string = 'Invalid email') {\n this.add(name, V.email, message);\n return this;\n }\n\n public equalTo(name: string, prop: string|EqualsToTarget, message: string) {\n this.validations.push({\n name: name,\n validation: (value: any) =>\n value == undefined ||\n (typeof(prop) === 'string'\n ? value == (this.data as any)[prop]\n : isEqualsToTarget(prop)\n ? value == (prop.object[prop.property])\n : value == prop),\n message: this.t(message)\n });\n return this;\n }\n\n public build() {\n let errors: any = {};\n\n for (const v of this.validations) {\n try {\n validate(this.data, v.name, errors, v.validation, v.message, v.all);\n }\n catch (e) {\n console.log(e);\n errors['*'] = e + '';\n }\n }\n\n return errors;\n }\n}\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport { RequirePermission } from '../../components/custom/RequirePermission';\nimport { hasPermission } from '../../utils/security';\n\ntype Props = {\n explicit?: boolean;\n}\n\nexport default connect(\n (state: ApplicationState, ownProps: any) => ({\n ...state.identity,\n hasPermission: (p: string, ctx: any = {}) => hasPermission(p, {\n user: state.identity?.user,\n work: state.user.work,\n explicit: ownProps.explicit !== false,\n ...ctx\n }),\n }),\n {},\n)(RequirePermission as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { ISecurity } from '@models';\n\nexport interface IProps {\n children: any;\n hasPermission: Function;\n permission: string;\n ctx: any;\n security: ISecurity;\n}\n\nexport function RequirePermission({children, hasPermission, permission, security, ctx}: IProps) {\n const v = security.isGestor() || hasPermission(permission, ctx);\n\n if (v && children) {\n return children;\n }\n else {\n return null;\n }\n}\n","import * as React from 'react';\n\nimport { useKeyListener, useTranslation } from '@components';\nimport { storageGet, storageSet } from '@utils/storage';\n\nimport InputEventDispatcher from './InputEventDispatcher';\n\ntype InputSearchFilterCallback = (_: string | undefined) => void;\n\ntype InputSearchFilterProps = {\n filterKey: string;\n onChange?: InputSearchFilterCallback;\n title?: string;\n focus?: boolean;\n}\n\nexport function InputSearchFilter(props: InputSearchFilterProps) {\n const { t } = useTranslation();\n const searchInput = React.useRef();\n\n const [filter, setFilter] = React.useState(storageGet(props.filterKey, ''));\n\n const dispatcher = React.useRef(\n new InputEventDispatcher(\n props.onChange!,\n setFilter,\n ));\n\n React.useEffect(() => {\n storageSet(props.filterKey, filter);\n }, [filter]);\n\n if (props.focus) {\n useKeyListener({\n key: 'f',\n keyCtrl: true,\n handle: () => {\n searchInput.current.focus();\n }\n });\n }\n\n return setFilter(e.target.value)}\n onChange={e => dispatcher.current.append(e)}\n type='search'\n value={filter}\n placeholder={t(props.title ?? 'Search')} />\n}\n\nexport function useInputSearch(props: InputSearchFilterProps) {\n const [filter, setFilter] = React.useState(storageGet(props.filterKey, ''));\n\n const onInput = (search: string | undefined) => {\n setFilter(search);\n props.onChange?.(search);\n }\n\n const render = () => {\n return ;\n }\n\n return {\n render: render,\n value: filter,\n }\n}\n","import * as React from 'react';\n\nexport interface IProps {\n onPaste?: Function;\n children?: any;\n}\n\nexport function InputPasteHandler(props: IProps) {\n const containerEl = React.useRef();\n\n const handlePasteEvent = (event: any) => {\n\tconst w = window as any;\n\n\tconst data = (event.clipboardData || w.clipboardData).getData('text');\n\tif (props.onPaste) {\n\t props.onPaste(data);\n\t}\n\tevent.preventDefault();\n }\n\n React.useEffect(() => {\n\tif (containerEl.current) {\n\t containerEl.current.addEventListener('paste', handlePasteEvent);\n\n\t return () => containerEl.current.removeEventListener('paste', handlePasteEvent);\n\t}\n }, [containerEl.current]);\n\n return (
\n\t{props.children}\n
);\n}\n","import * as React from 'react';\n\nimport { FormikValues, useFormik } from 'formik';\nimport { FloatField, FormField } from './FormField';\nimport { AutoComplete } from 'primereact/autocomplete';\nimport { classNames } from 'primereact/utils';\nimport { Calendar } from 'primereact/calendar';\nimport { InputGroup } from './InputGroup';\nimport { Message } from 'primereact/message';\nimport { Editor } from 'primereact/editor';\nimport { InputSwitch, MultiSelect, Select, useTranslation } from '..';\nimport { Dropdown } from 'primereact/dropdown';\nimport { InputPasteHandler } from './InputPasteHandler';\nimport * as DateUtils from '@utils/date-utils';\nimport { currentLocale } from '../../i18n';\nimport { observeValue } from '@utils/hooks';\n\nexport interface IUseFormProps {\n initialValues: T;\n validate?: (_: T) => any;\n onSubmit?: Function;\n onChange?: Function;\n validateOnMount?: boolean,\n readonly?: boolean;\n loading?: any;\n validateOnChange?: boolean;\n}\n\ninterface IInputOpts {\n autoFocus?: boolean;\n type?: string;\n title?: string;\n containerClassName?: string;\n className?: string;\n containerStyle?: any;\n placeholder?: string;\n style?: any;\n defaultValue?: any;\n onBlur?: Function;\n ref?: any;\n map?: Function;\n readOnly?: boolean;\n}\n\ntype ICalendarOpts = IInputOpts & {\n dateFormat?: string;\n}\n\ntype ITextareaInputOpts =\n IInputOpts & {\n rows?: number;\n suggestions?: string[];\n length?: number;\n readonly?: boolean;\n };\n\ninterface ISelectOpts {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n placeholder?: string;\n containerClassName?: any;\n containerStyle?: any;\n onBlur?: Function;\n style?: any;\n blank?: boolean;\n blankText?: string;\n filter?: boolean;\n}\n\nexport function useForm(props: IUseFormProps = { initialValues: {} as T }) {\n const [loading, setLoading] = React.useState(false);\n const [error, setError] = React.useState(undefined);\n\n const { t } = useTranslation();\n\n const form: any = useFormik({\n initialValues: props.initialValues,\n validate: (data) => {\n if (props.validate && !props.readonly) {\n return props.validate(data);\n }\n else {\n return undefined;\n }\n },\n onSubmit: async (data) => {\n if (props.onSubmit && !props.readonly) {\n const resp = await props.onSubmit(data);\n if (resp.ok) {\n setError(undefined);\n }\n else {\n setError(t(resp.message));\n }\n setLoading(false);\n }\n else {\n setError(undefined);\n setLoading(false);\n }\n },\n validateOnChange: props.validateOnChange,\n });\n\n React.useEffect(() => {\n if (props.validateOnMount && props.validate && !props.readonly) {\n form.setErrors(props.validate(props.initialValues));\n }\n }, []);\n\n const hasError = () =>\n Object.keys(form.errors).length > 0;\n\n const isFormFieldValid = (name: string) => {\n return !form.errors[name];\n }\n\n const getFormErrorMessage = (name: string) => {\n const isDate = name.toLowerCase().includes('date');\n const className = isDate ? 'p-error date' : 'p-error';\n return !isFormFieldValid(name) && {form.errors[name]};\n };\n\n const handleChange = (ev: any, opts: any | undefined = undefined) => {\n const res = form.handleChange(ev);\n\n if (props.onChange) {\n const value = opts?.map\n ? opts!.map(ev.target.value)\n : (opts?.type == 'number')\n ? parseFloat(ev.target.value)\n : ev.target.value;\n\n const data = { ...form.values, [ev.target.id]: value };\n props.onChange(data);\n }\n return res;\n }\n\n const hasChanges = () => {\n return JSON.stringify(props.initialValues) != JSON.stringify(form.values);\n }\n\n const field = (name: string, title: string, comp: Function) => {\n return \n {comp()}\n \n }\n\n const floatField = (name: string, title: string, comp: Function) => {\n return \n {comp()}\n \n }\n\n const suffixField = (name: string, suffix: string, comp: Function) => {\n return \n \n {comp()}\n \n ;\n }\n\n const errorBox = () => {\n if (error)\n return \n else\n return null;\n }\n\n const inputs = (names: string[], opts: { [key: string]: IInputOpts }) => {\n return \n {names.map(name =>\n
\n opts[name]?.onBlur && opts[name]?.onBlur?.(e)}\n placeholder={opts[name]?.placeholder}\n autoFocus={opts[name]?.autoFocus}\n className={classNames('e', opts[name]?.className, { 'p-invalid': !isFormFieldValid(name) })} />\n {getFormErrorMessage(name)}\n
)}\n \n }\n\n const input = (name: string, opts: IInputOpts = {}) => {\n if (opts.type == 'date') {\n const setDateFromEvent = (data: string) => {\n form.setFieldValue(name, DateUtils.format(data, 'y-m-d'))\n }\n\n return (\n
\n handleChange(e, opts)}\n onBlur={e => opts.onBlur && opts.onBlur(e)}\n placeholder={opts.placeholder}\n autoFocus={opts.autoFocus}\n className={classNames('e', opts.className, { 'p-invalid': !isFormFieldValid(name) })} />\n {getFormErrorMessage(name)}\n
\n );\n }\n else {\n return (\n handleChange(e, opts)}\n onBlur={e => opts.onBlur && opts.onBlur(e)}\n placeholder={opts.placeholder}\n autoFocus={opts.autoFocus}\n className={classNames('e', opts.className, { 'p-invalid': !isFormFieldValid(name) })} />\n {getFormErrorMessage(name)}\n );\n }\n }\n\n const editor = (name: string, opts: IInputOpts = {}) => {\n return \n form.setFieldValue(name, ev.htmlValue)}\n value={form.values[name] ?? ''} />\n ;\n }\n\n const checkBox = (name: string, opts: IInputOpts = {}) => {\n return
\n \n {getFormErrorMessage(name)}\n
\n }\n\n const autoCompleteTextArea = (name: string, inputOpts: ITextareaInputOpts | string[] = {}) => {\n const opts: ITextareaInputOpts = inputOpts.length\n ? { suggestions: inputOpts } as ITextareaInputOpts\n : inputOpts as ITextareaInputOpts;\n\n return
\n form.setFieldValue(name, e.target.value)}\n />\n \n {/* opts.suggestions}\n autoFocus={opts.autoFocus}\n suggestions={opts.suggestions}\n className={classNames('e', { 'p-invalid': !isFormFieldValid(name) })}> */}\n {getFormErrorMessage(name)}\n
\n }\n\n const autoComplete = (name: string, inputOpts: ITextareaInputOpts | string[] = {}) => {\n const opts: ITextareaInputOpts = inputOpts.length\n ? { suggestions: inputOpts } as ITextareaInputOpts\n : inputOpts as ITextareaInputOpts;\n\n return
\n opts.suggestions}\n autoFocus={opts.autoFocus}\n suggestions={opts.suggestions}\n className={classNames('e', { 'p-invalid': !isFormFieldValid(name) })}>\n {getFormErrorMessage(name)}\n
\n }\n\n const textarea = (name: string, opts: ITextareaInputOpts = {}) => {\n return
\n \n {getFormErrorMessage(name)}\n
\n }\n\n const calendar = (name: string, opts: ICalendarOpts = {}) => {\n const setDateFromEvent = (data: string) => {\n form.setFieldValue(name, DateUtils.parseDate(data))\n }\n\n return (\n
\n {\n const date = e.value as Date;\n if (date == null) {\n return null;\n }\n const utc = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0));\n handleChange({\n target: e.target,\n value: utc\n });\n }}\n showIcon />\n {getFormErrorMessage(name)}\n
\n
);\n }\n\n const select = (name: string, inputOpts: ISelectOpts | any[]) => {\n const opts: ISelectOpts = (\"options\" in inputOpts)\n ? inputOpts as ISelectOpts\n : { options: inputOpts } as ISelectOpts;\n\n const key = opts.optionValue ?? 'id';\n const label = opts.optionLabel ?? 'name';\n\n const resolve = (value: any) => {\n if (value) {\n return opts.options.find(o => o[key] == form.values[name])?.[label];\n }\n else {\n return opts.placeholder;\n }\n }\n\n function isWritable(obj: T, key: keyof T) {\n const desc = Object.getOwnPropertyDescriptor(obj, key) || {}\n return Boolean(desc.writable)\n }\n\n const isSimple = opts.options.length > 0\n && typeof (opts.options[0]) === 'string';\n\n const options = opts.blank\n ? [{ [label]: opts.blankText, }].concat(opts.options)\n : isSimple\n ? opts.options.map(o => ({ [key]: o, [label]: o }))\n : opts.options;\n\n options.map(o => {\n const iw = isWritable(o, 'name')\n if (iw) {\n o.name = t(o.name);\n }\n });\n\n return
\n {props.readonly &&\n }\n {!props.readonly && opts.onBlur && opts.onBlur(e)}\n className={classNames('e', { 'p-invalid': !isFormFieldValid(name) })} />}\n {getFormErrorMessage(name)}\n
\n }\n\n const multiselect = (name: string, inputOpts: ISelectOpts | any[], filter?: boolean) => {\n const opts: ISelectOpts = (\"options\" in inputOpts)\n ? inputOpts as ISelectOpts\n : { options: inputOpts } as ISelectOpts;\n\n const key = opts.optionValue ?? 'id';\n const label = opts.optionLabel ?? 'name';\n\n const resolve = (value: any) => {\n if (value) {\n return opts.options.find(o => o[key] == form.values[name])?.[label];\n }\n else {\n return opts.placeholder;\n }\n }\n\n const isSimple = opts.options.length > 0\n && typeof (opts.options[0]) === 'string';\n\n const options = opts.blank\n ? [{ [label]: opts.blankText, }].concat(opts.options)\n : isSimple\n ? opts.options.map(o => ({ [key]: o, [label]: o }))\n : opts.options;\n\n return
\n {props.readonly &&\n }\n {!props.readonly && opts.onBlur && opts.onBlur(e)}\n className={classNames('e', { 'p-invalid': !isFormFieldValid(name) })} />}\n {getFormErrorMessage(name)}\n
\n }\n\n\n const span = (name: string, opts: IInputOpts = {}) => {\n return
\n \n
\n }\n\n const clear = () => {\n const data = form.values;\n for (const k of Object.keys(data)) {\n form.setFieldValue(k, null);\n }\n if (props.initialValues) {\n for (const k of Object.keys(props.initialValues)) {\n form.setFieldValue(k, (props.initialValues as any)[k]);\n }\n }\n }\n\n const setFieldValues = (data: any) => {\n form.resetForm();\n if (!props.readonly) {\n for (const k of Object.keys(data)) {\n form.setFieldValue(k, data[k]);\n }\n }\n }\n\n const isLoading = () => {\n if (props.loading && typeof (props.loading) === 'boolean') {\n return props.loading;\n }\n else if (props.loading && props.loading.isLoading) {\n return props.loading.isLoading();\n }\n else {\n return false;\n }\n }\n\n const isInvalid = () => hasError() || isLoading();\n\n const isValid = () => !isInvalid();\n\n type GetF = (name: string) => R;\n const get: GetF = (name: string) => form.values[name];\n\n function observe(name: string, handler: (_: T) => void) {\n return observeValue(handler, form.values[name]);\n }\n\n return {\n autoComplete,\n autoCompleteTextArea,\n calendar,\n checkBox,\n clear,\n editor,\n errorBox,\n field,\n floatField,\n form,\n get,\n getFormErrorMessage,\n handleChange: handleChange,\n handleSubmit: form.handleSubmit,\n hasChanges,\n hasError,\n input,\n inputs,\n isFormFieldValid,\n isInvalid,\n isValid,\n multiselect,\n observe,\n select,\n setFieldValue: form.setFieldValue,\n setFieldValues,\n span,\n suffixField,\n textarea,\n values: form.values,\n }\n}\n","import * as React from 'react';\n\nimport { OverlayPanel } from 'primereact/overlaypanel';\n\nexport interface IUseOverlayProps {\n className?: string;\n render: Function;\n requireData?: boolean;\n style?: any;\n}\n\nexport function useOverlay(props: IUseOverlayProps) {\n const panelRef = React.useRef();\n const [data, setData] = React.useState();\n\n const render = () =>\n \n {props.requireData === true && data != undefined && props.render(data)}\n {props.requireData != true && props.render(data)}\n \n\n const show = (event: any, data: any = undefined) => {\n setData(data);\n panelRef.current.toggle(event)\n };\n\n const clear = (event: any = undefined) => {\n setData(undefined);\n if (panelRef.current) {\n panelRef.current.hide();\n }\n }\n\n return {\n clear,\n render,\n show,\n };\n}\n","import * as React from 'react';\n\nimport * as signalR from '@microsoft/signalr';\n\nexport interface IUseSignalRProps {\n key?: string;\n method: string;\n onMessage: (data: T) => void;\n endpoint?: string;\n}\n\nconst __connections: any = {};\nconst __connectionHandlers: any = {};\n\nconst startSignalNotifications = async (signalConnection: signalR.HubConnection) => {\n try {\n await signalConnection.start();\n }\n catch (err) {\n console.log(err);\n setTimeout(() => startSignalNotifications(signalConnection), 5000);\n }\n};\n\nfunction getConnection(endpoint: string, method: string) {\n const key = endpoint + method;\n if (!__connections[key]) {\n const conn = new signalR.HubConnectionBuilder()\n .withUrl(endpoint)\n .withAutomaticReconnect()\n .build();\n __connections[key] = conn;\n\n // console.log('GET CONNECTION (register)', key);\n\n conn.on(method, rawMessage => {\n // console.log('USE SIGNALR (register): ', rawMessage, key);\n const handlers = __connectionHandlers[key] ?? [];\n for (const h of handlers) {\n h(rawMessage);\n }\n });\n\n conn.onclose(async () => {\n // console.log('USE SIGNALR (register) CLOSE');\n await startSignalNotifications(conn);\n });\n\n conn.start();\n }\n\n return __connections[endpoint];\n}\n\ntype Handler = (message: T) => void;\n\nfunction registerHandler(\n endpoint: string,\n method: string,\n handler: Handler,\n uniqueKey: string | undefined) {\n // console.log(`register handler ${uniqueKey}`, endpoint, method, handler);\n const key = endpoint + method;\n if (!__connectionHandlers[key]) {\n __connectionHandlers[key] = [];\n }\n __connectionHandlers[key].push(handler);\n}\n\nfunction unregisterHandler(\n endpoint: string,\n method: string,\n handler: Handler,\n uniqueKey: string | undefined) {\n // console.log(`unregister handler: ${uniqueKey}`, endpoint, method);\n const key = endpoint + method;\n if (!__connectionHandlers[key]) {\n __connectionHandlers[key] = [];\n }\n __connectionHandlers[key] = __connectionHandlers[key].filter((h: any) => h != handler);\n}\n\nexport function useSignalR(props: IUseSignalRProps) {\n const endpoint = props.endpoint ?? '/notifications';\n const conn = getConnection(endpoint, props.method);\n\n React.useEffect(() => {\n registerHandler(endpoint, props.method, props.onMessage, props.key);\n\n return () => unregisterHandler(endpoint, props.method, props.onMessage, props.key);\n }, []);\n\n return conn;\n}\n","import * as React from 'react';\n\nimport * as echarts from 'echarts';\n\nexport interface IProps {\n height?: number;\n options: any;\n}\n\nexport default function EChart(props: IProps) {\n const canvasRef = React.useRef();\n const chartInstance = React.useRef();\n\n const initialize = () => {\n const domElement = canvasRef.current;\n const parent = domElement.parentElement;\n const h = parseInt(parent.getBoundingClientRect().height);\n domElement.height = props.height ?? h;\n domElement.style.height = `${props.height ?? h}px`;\n // setHeight(`${h}px`);\n const chart = echarts.init(domElement);\n \n chart.setOption(props.options);\n \n chartInstance.current = chart;\n };\n\n React.useEffect(() => {\n initialize();\n \n return () => {\n if (chartInstance.current) {\n chartInstance.current.clear();\n }\n };\n }, [props.options]);\n\n return
;\n}","import * as React from 'react';\n\ntype Predicate = (source: any, ctx: any) => boolean;\n\ninterface Signal {\n field: string;\n source: string;\n type: 'show' | 'none';\n when: Predicate;\n}\n\nconst parsePredicate = (source: string|undefined) => {\n if (source) {\n const body = 'const a = ' + source + '; return a;';\n const fn = new Function('value', 'ctx', body);\n return fn;\n }\n else {\n return null;\n }\n}\n\nconst createSources = (source: string, ctx: string) => {\n const signals: Signal[] = [];\n try {\n const data = JSON.parse(atob(source));\n\n for (const field of Object.keys(data[ctx])) {\n const raw = data[ctx][field];\n const signal = {\n field,\n source: raw.source,\n type: raw.type,\n when: parsePredicate(raw.when),\n };\n\n signals.push(signal as Signal);\n }\n }\n catch (e) {\n console.error(e);\n console.log('error creating source signals', source);\n }\n\n return signals;\n}\n\nexport default class SignalManager {\n private signals: Signal[] = [];\n\n private hiddenFields: string[] = [];\n\n static create(source: string|undefined, ctx: string) {\n return React.useRef(new SignalManager(source, ctx));\n }\n\n constructor(source: string|undefined, ctx: string) {\n this.signals = source\n ? createSources(source, ctx)\n : [];\n }\n\n setValues(values: any, ctx: any = {}) {\n this.hiddenFields = [];\n // procesamos las senhales que ocultan/muestran campos\n const visibilitySignals = this.signals.filter(s => s.type === 'show');\n for (const v of visibilitySignals) {\n const field = v.field;\n let show = false;\n try {\n show = v.when(values[v.source], {...values, ...ctx});\n }\n catch (e) {\n console.log(e);\n }\n\n if (!show) {\n this.hiddenFields.push(field);\n }\n }\n\n return this;\n }\n\n fieldIsVisible(field: string|undefined) {\n return field == undefined || !this.hiddenFields.includes(field);\n }\n}\n","export interface ICountry {\n id: number;\n name: string;\n code: string;\n regions: IRegion[];\n}\n\nexport interface IDocumentType {\n id: number;\n name: string;\n description: string;\n isActive: boolean;\n}\n\nexport interface IRegion {\n id: number;\n name: string;\n counties: ICounty[];\n}\n\nexport interface ICounty {\n id: number;\n name: string;\n code: string;\n}\n\nexport interface INode {\n label: string;\n key: any;\n data: any;\n children: INode[];\n}\n\nexport const countyToNode = (c: ICounty, r: IRegion, y: ICountry) => {\n return {\n label: c.name,\n key: [y.id, r.id, c.id],\n data: c.id\n }\n}\n\nexport const regionToNode = (r: IRegion, c: ICountry) => {\n return {\n label: r.name,\n key: [c.id, r.id],\n data: r.id,\n children: r.counties.map(ct => countyToNode(ct, r, c)),\n }\n}\n\nexport const countryToNode = (c: ICountry) => {\n return {\n label: c.name,\n key: [c.id],\n data: c.id,\n children: c.regions.map(r => regionToNode(r, c)),\n }\n}\n\nexport const countriesToNode = (c: ICountry[]) =>\n c.map(countryToNode) as any[];","import { IWorker } from \"@models\";\n\nexport enum Roles {\n ADMIN = 'admin',\n CONTRACTOR = 'contractor',\n WORKER = 'worker',\n GESTOR = 'gestor',\n}\n\nexport interface IUserIdentity {\n id: number;\n userName: string;\n email: string;\n roles: string[];\n policies: string[];\n\n departments?: number[];\n obliqueDepartments?: number[];\n workFunctions?: number[];\n\n workerIds?: number[];\n contractorIds?: number[];\n}\n\nexport interface IUserData {\n id?: number;\n userName: string;\n email: string;\n password: string;\n roles: string[];\n}\n\nexport interface IAuthRequest {\n username: string;\n password: string;\n}\n\nexport interface IRole {\n id: number;\n name: string;\n}\n","import {\r\n ICountry, ICounty,\r\n IDocumentType,\r\n INode, IRegion,\r\n countriesToNode,\r\n countryToNode,\r\n countyToNode,\r\n regionToNode,\r\n} from './common';\r\nimport ModuleManager from '../modules/ModuleManager';\r\nimport { IAuthRequest, IUserData, IUserIdentity, IRole, Roles } from './identity';\r\nimport { messageTypes, IMessage, MessageType, INotification, NotificationType } from './notifications';\r\nimport {\r\n IMachinery, IWorker, IWorkerWithRelations, IWorkI18NResource, IActivityType, ILegalForm,\r\n IDepartment, IWorkFunction, IContractor, IContractorRequest,\r\n IMachinerySubType, IMachineryType,\r\n IResourceStatus, IResourceStatusType,\r\n ResourceStatusType,\r\n ResourceType,\r\n departmentIsProductive,\r\n getNotificationResourceTypes,\r\n getResourceTypes,\r\n} from './resources';\r\nimport {\r\n JobEncodingType,\r\n parseWork,\r\n PropertyGroupObjectType,\r\n IPropertyType, IPropertyGroupType, IPropertyGroup,\r\n IElementHasProperties,\r\n NotificationMessageAction,\r\n PropertyTypes,\r\n IContractorInvitation,\r\n IContractorInvitationRegisterData,\r\n IFieldValidation,\r\n INotificationMessage,\r\n INotificationTemplate,\r\n ISubContractorRequest,\r\n IWork, IWorkSettings, IWorkspace, IWorkShift, IWorkPermission, IContractType, AllPropertyTypes, IPreventiveResource,\r\n IModuleInfo,\r\n IWorkHasModule,\r\n getNotificationMessageActions,\r\n isJobPropertyGroupType,\r\n isJobHasContractorPropertyGroupType,\r\n isMachineryPropertyGroupType,\r\n isWorkerPropertyGroupType,\r\n isContractorWorkerPropertyGroupType,\r\n isRRHHPropertyGroupType,\r\n createFieldValidation,\r\n fieldValidationResourceTypes,\r\n} from './works';\r\nimport {\r\n jobStatusTypes, parseJob,\r\n IJob, IJobStatus, IJobHasContractor, IJobHasDepartment, IJobHasContractorAppUser, IJobHasMachinery, IJobHasWorker,\r\n JobStatusType, JobLogType, IJobLog\r\n} from './jobs'\r\nimport { ILog } from './logs';\r\nimport { IDocument } from './documents';\r\n\r\nexport interface IConstants {\r\n countries: ICountry[];\r\n}\r\n\r\nexport interface IPaginateResult {\r\n page: number;\r\n total: number;\r\n limit: number;\r\n data: T[];\r\n}\r\n\r\nexport interface IPaginateSort {\r\n name: string;\r\n asc: boolean;\r\n}\r\n\r\nexport enum UserSearchFilterType {\r\n BOOL = 0,\r\n TEXT = 1,\r\n DATE = 2,\r\n DATE_RANGE = 3,\r\n REFERENCE = 4,\r\n INT = 5,\r\n FLOAT = 6,\r\n MULTI_REFERENCE = 7,\r\n}\r\n\r\nexport interface IHelpDeskItemFile {\r\n fileName: string;\r\n temporalResourceId: string;\r\n}\r\n\r\nexport interface IHelpDeskItem {\r\n name: string;\r\n email: string;\r\n subject: string;\r\n description: string;\r\n files?: IHelpDeskItemFile[];\r\n workId: number;\r\n}\r\n\r\nexport interface ICommunicationFile {\r\n fileName: string;\r\n temporalResourceId: string;\r\n fileSize: number;\r\n}\r\n\r\nexport interface ICommunication {\r\n id: number;\r\n\r\n title: string;\r\n fromDate: Date;\r\n toDate: Date;\r\n description: string;\r\n isRecursive?: boolean;\r\n departments: ICommunicationHasDepartment[];\r\n file?: ICommunicationFile;\r\n workId: number;\r\n workspaces: ICommunicationHasWorkspace[];\r\n jobs: ICommunicationHasJob[];\r\n targetType?: number;\r\n isActive?: boolean;\r\n\r\n documents?: IDocument[];\r\n}\r\n\r\nexport interface ICommunicationHasDepartment {\r\n id?: number;\r\n communicationId?: number;\r\n departmentId: number;\r\n}\r\n\r\nexport interface ICommunicationHasWorkspace {\r\n id?: number;\r\n communicationId?: number;\r\n workspaceId: number;\r\n}\r\n\r\nexport interface ICommunicationHasJob {\r\n id?: number;\r\n communicationId?: number;\r\n jobId: number;\r\n}\r\n\r\nexport interface ICommunicationHasPolicy {\r\n id?: number;\r\n communicationId?: number;\r\n policy: string;\r\n}\r\nexport interface IUserSearchFilter {\r\n name: string;\r\n title: string;\r\n default?: any;\r\n help?: string;\r\n type: number;\r\n excludeRole?: string;\r\n requireRole?: string;\r\n shouldTranslate? : boolean;\r\n}\r\n\r\nexport interface IPaginateOptions {\r\n page?: number;\r\n limit?: number;\r\n searchTerm?: string;\r\n orderBy?: string;\r\n orderAsc?: boolean;\r\n}\r\n\r\nexport interface ISecurity {\r\n user?: IUserIdentity;\r\n\r\n hasRole: (role: string) => boolean;\r\n isAdmin: () => boolean;\r\n isGestor: () => boolean;\r\n isWorker: () => boolean;\r\n isContractor: () => boolean;\r\n isGestorOrWorker: () => boolean;\r\n isGestorOrContractor: () => boolean;\r\n hasPolicy: (policy: string) => boolean;\r\n\r\n setContext: (ctx: any) => void;\r\n withContext: (ctx: any) => ISecurity;\r\n\r\n hasWorker: (id?: number) => boolean;\r\n hasContractor: (id?: number) => boolean;\r\n getWorkerIds: () => number[];\r\n\r\n hasPermission: (perm: string, explicit?: boolean) => boolean;\r\n}\r\n\r\nexport type {\r\n IAuthRequest,\r\n // common\r\n IContractor,\r\n IContractorInvitation,\r\n IContractorInvitationRegisterData,\r\n IContractorRequest,\r\n ICountry,\r\n ICounty,\r\n IDocumentType,\r\n INode,\r\n ILog,\r\n IMachinery,\r\n IMachineryType,\r\n IMachinerySubType,\r\n IMessage,\r\n INotification,\r\n INotificationMessage,\r\n INotificationTemplate,\r\n IElementHasProperties,\r\n IPropertyGroup,\r\n IPropertyGroupType,\r\n IPropertyType,\r\n IRegion,\r\n IRole,\r\n ISubContractorRequest,\r\n IUserData,\r\n IUserIdentity,\r\n IModuleInfo,\r\n IWorkHasModule,\r\n IWork,\r\n IWorker,\r\n IWorkerWithRelations,\r\n IWorkI18NResource,\r\n IWorkSettings,\r\n IWorkShift,\r\n IWorkPermission,\r\n IWorkspace,\r\n IActivityType,\r\n ILegalForm,\r\n IDepartment,\r\n IFieldValidation,\r\n IWorkFunction,\r\n IJob,\r\n IJobStatus,\r\n IJobHasContractor,\r\n IJobHasDepartment,\r\n IJobHasContractorAppUser,\r\n IJobHasMachinery,\r\n IJobHasWorker,\r\n IJobLog,\r\n IContractType,\r\n IPreventiveResource,\r\n IResourceStatus,\r\n IResourceStatusType,\r\n}\r\n\r\nexport interface IOption {\r\n value: T;\r\n error?: string;\r\n hasValue?: boolean;\r\n isError?: boolean;\r\n}\r\n\r\nexport {\r\n AllPropertyTypes,\r\n JobEncodingType,\r\n JobLogType,\r\n JobStatusType,\r\n MessageType,\r\n ModuleManager,\r\n NotificationMessageAction,\r\n NotificationType,\r\n PropertyTypes,\r\n PropertyGroupObjectType,\r\n ResourceStatusType,\r\n ResourceType,\r\n Roles,\r\n createFieldValidation,\r\n fieldValidationResourceTypes,\r\n getNotificationMessageActions,\r\n getNotificationResourceTypes,\r\n getResourceTypes,\r\n isJobPropertyGroupType,\r\n isJobHasContractorPropertyGroupType,\r\n isMachineryPropertyGroupType,\r\n isContractorWorkerPropertyGroupType,\r\n isRRHHPropertyGroupType,\r\n isWorkerPropertyGroupType,\r\n jobStatusTypes,\r\n countriesToNode,\r\n countryToNode,\r\n countyToNode,\r\n parseJob,\r\n parseWork,\r\n regionToNode,\r\n departmentIsProductive,\r\n messageTypes,\r\n};\r\n\r\nexport const getMachineryName = (m: IMachinery) => {\r\n if (m === undefined) {\r\n return '';\r\n }\r\n else if (m.name && m.name != '') {\r\n return m.name;\r\n }\r\n else if (m.code && m.code != '') {\r\n return m.code;\r\n }\r\n else if (m.licenseNumber && m.licenseNumber != '') {\r\n return `${m.prefixLicenseNumber}/${m.licenseNumber}/${m.suffixLicenseNumber}`;\r\n }\r\n else {\r\n return `${m.id}`;\r\n }\r\n}\r\n\r\nexport interface IJobSettings {\r\n id?: number;\r\n workId: number;\r\n skipInformationLoadedState: boolean;\r\n colorizeContractorIndicators: boolean;\r\n freeRequirementsAreMandatory: boolean;\r\n omitJobHasContractorDefaultNotification: boolean;\r\n showResourceIncidenceIndicator: boolean;\r\n jobHasContractorNotificationTargetPolicy?: string;\r\n informationLoadedNotificationPolicy?: string;\r\n}\r\n\r\nexport interface IWorkerSettings {\r\n id?: number;\r\n workId: number;\r\n showGeneralIndicators: boolean;\r\n showWorkerImage: boolean;\r\n workerTypeIsMandatory: boolean;\r\n}\r\n\r\nexport interface IMachinerySettings {\r\n id?: number;\r\n workId: number;\r\n showGeneralIndicators: boolean;\r\n subTypeMandatory: boolean;\r\n onlyLicenseNumber: boolean;\r\n}\r\n\r\nexport interface IContractorSettings {\r\n id?: number;\r\n workId: number;\r\n showGeneralIndicators: boolean;\r\n legalFormMandatory: boolean;\r\n jhcStartDateMandatory: boolean;\r\n jhcDescriptionMandatory: boolean;\r\n cifCantBeRepeated: boolean;\r\n canAddSubWorkers: boolean;\r\n canAddSubMachineries: boolean;\r\n}\r\n\r\nexport interface IEventTrigger {\r\n id: number;\r\n workId: number;\r\n name: string;\r\n code: string;\r\n eventTriggerTypeId: number;\r\n resourceTypeId: number;\r\n}\r\n\r\nexport enum EventTriggerType {\r\n BeforeUpdate = 1,\r\n BeforeCreate = 2,\r\n BeforeUpdateOrCreate = 3,\r\n AfterUpdate = 4,\r\n AfterCreate = 5,\r\n AfterUpdateOrCreate = 6,\r\n};\r\n\r\nexport const getEventTriggerTypes = (t: Function) => {\r\n return [\r\n { id: EventTriggerType.BeforeUpdate, name: t('Before update') },\r\n { id: EventTriggerType.BeforeCreate, name: t('Before create') },\r\n { id: EventTriggerType.BeforeUpdateOrCreate, name: t('Before create or update') },\r\n { id: EventTriggerType.AfterUpdate, name: t('After update') },\r\n { id: EventTriggerType.AfterCreate, name: t('After create') },\r\n { id: EventTriggerType.AfterUpdateOrCreate, name: t('After create or update') },\r\n ];\r\n}\r\n","import history from '../AppHistory';\nimport Hooks from './hooks';\nimport { formatLocalDate, formatMinutes, timeToMinutes } from './date-utils';\nimport { KeyCodes, keyIsEnter } from './key-utils';\nimport { interpolate, format, strConcat, strJoin, zeroPad, zeroRightPad } from './string-utils';\nimport { formatFileSize } from './file-utils';\n\nconst DEBUG = true;\n\nexport const __d = (...args: any[]) => {\n if (DEBUG) {\n console.log(...args);\n }\n}\n\nexport const unique = (data: any[], property: string = 'id') => {\n const uniqueIndexes: any[] = [];\n const res: any[] = [];\n for (const o of data) {\n const id = o[property];\n if (!uniqueIndexes.includes(id)) {\n res.push(o);\n uniqueIndexes.push(id);\n }\n }\n\n return res;\n}\n\n// file utils\nexport { formatFileSize };\n\n// date utils\nexport { formatLocalDate, formatMinutes, timeToMinutes };\n\n// string utils\nexport { interpolate, format, strConcat, strJoin, zeroPad, zeroRightPad };\n\nexport const redirectToExternal = (url: string) => {\n window.location.href = url;\n}\n\nexport const redirectToExternalNewTab = (url: string) => {\n window.open(url, '_blank');\n}\n\nexport const goBack = () => {\n history.goBack();\n}\n\ntype RedirectOpts = {\n reload?: boolean;\n}\n\nexport const redirectTo = (url: string, opts: RedirectOpts = {}) => {\n if (opts?.reload ?? false) {\n redirectToExternal(url);\n }\n else {\n history.push(url);\n }\n}\n\nexport const delay = (ms: number) => {\n return new Promise((resolve, _) => {\n setTimeout(resolve, ms);\n });\n}\n\nexport const getGraphqlError = (res: any, op: string | undefined = undefined) => {\n if (res.errors && res.errors.length > 0) {\n return JSON.stringify(res.errors[0]);\n }\n else if (op) {\n return res.data[op].error;\n }\n}\n\nexport function flatten(data: T[][]): T[] {\n return data.reduce((acc, t) => acc.concat(t), []);\n}\n\nexport function downloadFileFromUrl(url: string, name: string) {\n const link = document.createElement(\"a\");\n link.download = name;\n link.href = url;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n}\n\nexport const getIntParams = (o: any) => {\n const res: any = {};\n for (const k of Object.keys(o)) {\n res[k] = parseInt(o[k]);\n }\n\n return res;\n}\n\ninterface IQueryParameterOptions {\n defaultValue?: T,\n map?: (_: string) => T | undefined,\n};\n\nexport function getIntQueryParameters(url: string) {\n const parametersStr = url.startsWith('?') ? url.substr(1) : url;\n const parametersArr = parametersStr.split('&');\n const parameters: any = {};\n\n for (const k of parametersArr) {\n const [name, value] = k.split('=');\n const res = parseInt(value);\n if (res != undefined && !isNaN(res)) {\n parameters[name] = res;\n }\n }\n\n return parameters;\n}\n\nexport function getQueryParameter(url: string, parameterName: string, options: IQueryParameterOptions = {}) {\n const parametersStr = url.startsWith('?') ? url.substr(1) : url;\n const parametersArr = parametersStr.split('&');\n const parameters: any = {};\n for (const k of parametersArr) {\n const [name, value] = k.split('=');\n parameters[name] = options.map ? options.map(value) : value;\n }\n\n return parameters[parameterName] ?? options.defaultValue;\n}\n\ntype WithName = {\n name: string;\n} | string;\n\nexport function nameOf(n: WithName | undefined) {\n return typeof n === 'string' ? n : n?.name;\n}\n\nexport default {\n delay,\n downloadFileFromUrl,\n flatten,\n getIntParams,\n getQueryParameter,\n getIntQueryParameters,\n getGraphqlError,\n goBack,\n nameOf,\n redirectTo,\n redirectToExternal,\n // file utils\n formatFileSize,\n // date utils\n formatLocalDate,\n formatMinutes,\n timeToMinutes,\n // string\n format,\n interpolate,\n strConcat,\n strJoin,\n zeroPad,\n zeroRightPad,\n // hooks\n onNotification: Hooks.onNotification,\n //\n __d,\n KeyCodes,\n keyIsEnter,\n unique,\n}\n","import {\n ApolloClient,\n InMemoryCache,\n gql,\n} from \"@apollo/client\";\n\nimport DateUtils from '@utils/date-utils';\n\nlet _client: ApolloClient | null = null;\n\nconst getClient = () => {\n if (_client == null) {\n _client = new ApolloClient({\n uri: '/graphql',\n cache: new InMemoryCache()\n });\n }\n\n return _client;\n}\n\nexport interface ISimpleQueryOpts {\n returnPath?: string;\n map?: (a: T) => any,\n mapEvery?: (a: T) => any,\n}\n\nasync function q(query: string, variables: any, opts: ISimpleQueryOpts = {}) {\n const client = getClient();\n const resp = await client.query({\n query: gql(query),\n variables,\n fetchPolicy: noCache,\n });\n\n if (opts.returnPath) {\n const parts = opts.returnPath.split('.');\n const res = parts.reduce((acc, p) => {\n return acc[p];\n }, resp.data);\n\n if (opts.map) {\n return opts.map(res);\n }\n else if (opts.mapEvery && res && res.length) {\n return res.map(opts.mapEvery);\n }\n else {\n return res;\n }\n }\n else {\n return resp;\n }\n}\n\nconst parseVariables = (data: any) => {\n const res: any = {};\n\n if (data == null) {\n return data;\n }\n else if (typeof(data) != 'object') {\n return data;\n }\n\n for (const k of Object.keys(data)) {\n if (data[k] === null) {\n res[k] = null;\n }\n else if (typeof(data[k]) === 'object' && data[k].getTimezoneOffset) {\n res[k] = DateUtils.fromUtc(data[k]);\n }\n else if (typeof(data[k]) === 'object' && data[k].concat) {\n res[k] = data[k].map(parseVariables);\n }\n else if (typeof(data[k]) === 'object') {\n res[k] = parseVariables(data[k]);\n }\n else {\n res[k] = data[k];\n }\n }\n\n return res;\n}\n\nasync function m(query: string, variables: any, opts: ISimpleQueryOpts = {}) {\n const client = getClient();\n const parsedVariables = parseVariables(variables);\n\n const resp = await client.mutate({\n mutation: gql(query),\n variables: parsedVariables,\n });\n\n if (opts.returnPath) {\n const parts = opts.returnPath.split('.');\n const res = parts.reduce((acc, p) => {\n return acc[p];\n }, resp.data);\n\n return res;\n }\n else {\n return resp;\n }\n}\n\nconst noCache = 'no-cache';\n\nexport {\n gql,\n getClient,\n noCache,\n m,\n q,\n}\n","import { IJob, IJobHasDepartment, ISecurity } from '@models';\r\nimport { IDocument, IDocumentVersion } from '@models/documents';\r\nimport { i18n } from '@components';\r\n\r\nexport enum RequirementTypeKind {\r\n Mandatory = 1,\r\n Optional = 2,\r\n}\r\n\r\nexport enum RequirementTargetType {\r\n Contractor = 1,\r\n JobHasContractor = 2,\r\n Worker = 3,\r\n JobHasWorker = 4,\r\n Machinery = 5,\r\n JobHasMachinery = 6,\r\n JobHasDepartment = 7,\r\n Job = 8,\r\n}\r\n\r\nexport enum RequirementValidationType {\r\n NOT_EMPTY = 1,\r\n SIGNED_PDF = 2,\r\n REQUIRE_ALL = 3,\r\n ITA = 4,\r\n}\r\n\r\nexport enum RequirementStatusFlag {\r\n FILE_REMOVED = 1,\r\n EXPIRED = 2,\r\n}\r\n\r\nexport const requirementTargetTypes = [\r\n { id: RequirementTargetType.Contractor, name: i18n('Contractor') },\r\n { id: RequirementTargetType.JobHasContractor, name: i18n('JobHasContractor') },\r\n { id: RequirementTargetType.Machinery, name: i18n('Machinery') },\r\n { id: RequirementTargetType.JobHasMachinery, name: i18n('JobHasMachinery') },\r\n { id: RequirementTargetType.Worker, name: i18n('Worker') },\r\n { id: RequirementTargetType.JobHasWorker, name: i18n('JobHasWorker') },\r\n { id: RequirementTargetType.JobHasDepartment, name: i18n('JobHasDepartment') },\r\n { id: RequirementTargetType.Job, name: i18n('Job') }\r\n];\r\n\r\ntype IRequirementCanUploadOpts = {\r\n hasAccessJobInformation?: boolean;\r\n requirementType?: IRequirementType;\r\n}\r\n\r\nexport function requirementCanUpload(\r\n r: IRequirement,\r\n targetType: RequirementTargetType,\r\n security: ISecurity,\r\n opts: IRequirementCanUploadOpts = {}): boolean {\r\n const isContractorResource = [\r\n RequirementTargetType.Contractor,\r\n RequirementTargetType.Machinery,\r\n RequirementTargetType.Worker,\r\n RequirementTargetType.JobHasContractor,\r\n RequirementTargetType.JobHasMachinery,\r\n RequirementTargetType.JobHasWorker,\r\n ].indexOf(targetType) >= 0;\r\n\r\n const isJobContractorResource = [\r\n RequirementTargetType.JobHasContractor,\r\n RequirementTargetType.JobHasMachinery,\r\n RequirementTargetType.JobHasWorker,\r\n ].indexOf(targetType) >= 0;\r\n\r\n const current = r.status.find(s => s.isCurrent);\r\n const requirementStatusRestriction =\r\n current?.statusTypeId == RequirementStatusTypes.NOT_LOADED\r\n || current?.statusTypeId == RequirementStatusTypes.NOT_VALIDATED\r\n || current?.statusTypeId == RequirementStatusTypes.PENDING\r\n || current?.statusTypeId == RequirementStatusTypes.VALIDATED; // NOTE: aunque esté validado dejamos subir un nuevo archivo\r\n\r\n if (security.isContractor() && isJobContractorResource && opts.requirementType?.requireJobInformationAccess) {\r\n return requirementStatusRestriction && (opts.hasAccessJobInformation ?? false);\r\n }\r\n else if (isContractorResource) {\r\n return requirementStatusRestriction && security.isContractor();\r\n }\r\n else {\r\n return requirementStatusRestriction && security.isWorker();\r\n }\r\n}\r\n\r\nexport function requirementHaveIncidences(r: IRequirement) {\r\n const current = r.incidences?.find(i => i.id);\r\n return current?.id;\r\n}\r\n\r\nexport function requirementHaveNotes(r: IRequirement) {\r\n const current = r.notes?.find(n => n.id);\r\n return current?.id;\r\n}\r\n\r\nexport function requirementCanBeValidated(r: IRequirement) {\r\n const current = r.status.find(s => s.isCurrent);\r\n return current?.statusTypeId == RequirementStatusTypes.PENDING\r\n || current?.statusTypeId == RequirementStatusTypes.VALIDATED\r\n || current?.statusTypeId == RequirementStatusTypes.NOT_VALIDATED;\r\n}\r\n\r\nexport enum RequirementStatusTypes {\r\n NOT_LOADED = 1,\r\n PENDING = 2,\r\n VALIDATED = 3,\r\n NOT_VALIDATED = 4,\r\n}\r\n\r\nexport interface IRequirementTypeKind {\r\n id: number;\r\n name: string;\r\n description?: string;\r\n}\r\n\r\nexport interface IRequirementExpirationType {\r\n id: number;\r\n name: string;\r\n description?: string;\r\n}\r\n\r\nexport interface IRequirementExpirationType {\r\n id: number;\r\n name: string;\r\n description?: string;\r\n}\r\n\r\nexport interface IRequirementTypeDocumentRestriction {\r\n id?: number;\r\n name: string;\r\n title: string;\r\n requirementTypeId: number;\r\n isActive: boolean;\r\n\r\n excludeMimeTypes?: string;\r\n mimeTypes?: string;\r\n limitFileSize?: number;\r\n regexp?: string;\r\n}\r\n\r\nexport interface IRequirementTypeValidationHolder {\r\n id?: number;\r\n requirementTypeId: number;\r\n\r\n isBlocking?: boolean;\r\n validationOrder?: number;\r\n\r\n policy?: string;\r\n appUserId?: number;\r\n departmentId?: number;\r\n workFunctionId?: number;\r\n jobResponsible?: boolean;\r\n onlyNotifications?: boolean;\r\n jobRso?: boolean;\r\n jobImpliedRso?: boolean;\r\n optional?: boolean;\r\n}\r\n\r\nexport interface IRequirementTypeSuggestion {\r\n id?: number;\r\n name: string;\r\n requirementTypeId: number;\r\n}\r\n\r\nexport enum RequirementTypeDependencyType {\r\n RequirementMustHaveBeenRead = 1,\r\n RequirementMustHaveBeenValidated = 2,\r\n IBO = 3,\r\n}\r\n\r\nexport interface IRequirementTypeDependency {\r\n id?: number;\r\n requirementTypeId: number;\r\n dependsOnRequirementId?: number;\r\n dependencyType?: RequirementTypeDependencyType;\r\n\r\n dependsOnRequirement?: IRequirementType;\r\n propagate?: boolean;\r\n}\r\n\r\nexport interface IRequirementType {\r\n id?: number;\r\n workId: number;\r\n name: string;\r\n title?: string;\r\n description?: string;\r\n requirementGroupId: number;\r\n targetType: number;\r\n kindId: number;\r\n expression?: string;\r\n isActive: boolean;\r\n isShared?: boolean;\r\n isPublic?: boolean;\r\n policy?: boolean;\r\n expirationTypeId?: number;\r\n expirationValue?: number;\r\n expirationThreshold?: number;\r\n expirationRequired?: boolean;\r\n validationTypeId?: number;\r\n isResourcePicture?: boolean;\r\n\r\n criteria?: string;\r\n template?: string;\r\n color?: string;\r\n orderValue?: number;\r\n notifyContractors?: boolean;\r\n notifyTitle?: string;\r\n notifyPolicy?: string;\r\n notifyResponsible?: boolean;\r\n requireJobInformationAccess?: boolean;\r\n messageTemplateId?: number;\r\n\r\n dependencies?: IRequirementTypeDependency[];\r\n documentRestrictions?: IRequirementTypeDocumentRestriction[];\r\n suggestions?: IRequirementTypeSuggestion[];\r\n validationHolders?: IRequirementTypeValidationHolder[];\r\n\r\n billingTypeId?: number;\r\n}\r\n\r\nexport interface IRequirementStatusType {\r\n id: number;\r\n name: string;\r\n description?: string;\r\n}\r\n\r\nexport interface IRequirementValidationType {\r\n id: number;\r\n name: string;\r\n}\r\n\r\nexport interface IRequirementGroup {\r\n id?: number;\r\n name: string;\r\n title: string;\r\n description?: string;\r\n orderValue?: number;\r\n isActive: boolean;\r\n workId: number;\r\n legend?: string;\r\n\r\n color?: string;\r\n style?: string;\r\n icon?: string;\r\n\r\n requirementTypes?: IRequirementType[];\r\n}\r\n\r\nexport interface IRequirementStatus {\r\n id: number;\r\n dateTime: Date;\r\n requirementId: number;\r\n statusTypeId: number;\r\n createdById: number;\r\n isCurrent?: boolean;\r\n flag?: number;\r\n validatedBy?: number;\r\n remarks?: string;\r\n displayDateTime?: Date;\r\n}\r\n\r\nexport interface IRequirement {\r\n id: number;\r\n creationDate: Date;\r\n workId: number;\r\n requirementTypeId: number;\r\n requirementType?: IRequirementType;\r\n\r\n isShared?: boolean;\r\n isExpired?: boolean;\r\n expirationDate?: Date;\r\n expirationThreshold?: number;\r\n\r\n title?: string;\r\n remarks?: string;\r\n color?: string;\r\n\r\n documents?: IRequirementHasDocument[];\r\n incidences: IRequirementIncidence[];\r\n notes: IRequirementNote[];\r\n\r\n status: IRequirementStatus[];\r\n\r\n hasNotes?: boolean;\r\n hasIncidences?: boolean;\r\n inProgress?: boolean;\r\n\r\n mandatory?: boolean;\r\n}\r\n\r\nexport interface IRequirementIncidence {\r\n id?: number;\r\n requirementId: number;\r\n creationDate: Date;\r\n createdById?: number;\r\n remarks: string;\r\n documentVersionId?: number;\r\n}\r\n\r\nexport interface IRequirementNote {\r\n id?: number;\r\n requirementId: number;\r\n creationDate: Date;\r\n createdById?: number;\r\n remarks: string;\r\n}\r\n\r\nexport interface IRequirementHasDocument {\r\n id: number;\r\n dateTime: Date;\r\n createdById: number;\r\n createdBy?: string;\r\n documentRestrictionId?: number;\r\n document: IDocument;\r\n}\r\n\r\nexport interface IRequirementFulfillDocument {\r\n name: string;\r\n resourceId: string | File;\r\n fileSize?: number;\r\n mimeType?: string;\r\n requirementTypeDocumentRestrictionId?: number;\r\n}\r\n\r\nexport interface IRequirementValidationData {\r\n remarks: string;\r\n expirationDate?: Date;\r\n expirationThreshold?: number;\r\n fileResourceId?: string;\r\n fileResourceName?: string;\r\n skipExpirationDate?: boolean;\r\n}\r\n\r\nexport function fulfillDocumentIsFile(r: string | File): r is File {\r\n return typeof (r) === 'object';\r\n}\r\n\r\nexport interface IRequirementFulfillData {\r\n documents: IRequirementFulfillDocument[],\r\n remarks?: string,\r\n color?: string,\r\n isShared?: boolean,\r\n departmentId?: number,\r\n jobResponsibleAsHolder?: boolean,\r\n requirementId?: number,\r\n title?: string,\r\n workId: number,\r\n}\r\n\r\nexport const userIsValidationHolder = (\r\n holder: IRequirementTypeValidationHolder,\r\n security: ISecurity,\r\n ctx: CanValidateContext | undefined = undefined) => {\r\n return ((holder.appUserId === null || holder.appUserId === security.user?.id)\r\n || (holder.departmentId === null || security.user?.departments?.includes(holder.departmentId!))\r\n || (holder.workFunctionId === null || security.user?.workFunctions?.includes(holder.workFunctionId!))\r\n || (holder.jobResponsible != true || security.getWorkerIds().includes(ctx?.mainDepartment?.responsibleId ?? 0)))\r\n ?? false;\r\n}\r\n\r\nexport type CanValidateContext = {\r\n job?: IJob;\r\n mainDepartment?: IJobHasDepartment;\r\n}\r\n\r\nexport const userCanValidateRequirement = (\r\n requirementType: IRequirementType,\r\n security: ISecurity,\r\n ctx: CanValidateContext | undefined = undefined) => {\r\n const a = ((requirementType.validationHolders?.length ?? 0) === 0);\r\n const b = (requirementType.validationHolders?.find(h => userIsValidationHolder(h, security, ctx)) != undefined);\r\n\r\n return security.isWorker() && (a || b);\r\n}\r\n\r\nexport interface IRequirementNotification {\r\n workId: number;\r\n requirementId: number;\r\n resourceType: number;\r\n resourceId: number;\r\n}\r\n\r\nexport const FreeRequirementType = 0;\r\n","import { zeroPad } from \"./string-utils\";\r\n\r\nconst isDmy = (s: string) => {\r\n const sep = s.includes('/') ? '/' : '-';\r\n const parts = s.split(sep);\r\n return parts.length > 1 && parts[2]?.length == 4;\r\n}\r\n\r\nexport const parseDate = (s: string | Date) => {\r\n if (s && typeof (s) === 'object' && s.getTime()) {\r\n return s;\r\n }\r\n else if (s && typeof (s) === 'string' && isDmy(s)) {\r\n const sep = s.includes('/') ? '/' : '-';\r\n const parts = s.split(sep);\r\n return new Date(\r\n parseInt(parts[2]),\r\n parseInt(parts[1]) - 1,\r\n parseInt(parts[0]),\r\n );\r\n }\r\n else if (typeof (s) === 'string') {\r\n return new Date(s);\r\n }\r\n else {\r\n return s;\r\n }\r\n}\r\n\r\nexport const dateIsLessOrEqual = (a: Date, b: Date) =>\r\n compareDates(a, b) <= 0;\r\n\r\nexport const compareDates = (a: Date, b: Date) => {\r\n if (a == undefined || b == undefined) {\r\n return 0;\r\n }\r\n if (a.getFullYear() > b.getFullYear()) {\r\n return 1;\r\n }\r\n else if (a.getFullYear() < b.getFullYear()) {\r\n return -1;\r\n }\r\n else if (a.getMonth() > b.getMonth()) {\r\n return 1;\r\n }\r\n else if (a.getMonth() < b.getMonth()) {\r\n return -1;\r\n }\r\n else if (a.getDate() > b.getDate()) {\r\n return 1;\r\n }\r\n else if (a.getDate() < b.getDate()) {\r\n return -1;\r\n } else if (a.getHours() < b.getHours()) {\r\n return -1;\r\n } else if (a.getHours() > b.getHours()) {\r\n return 1;\r\n } else if (a.getMinutes() < b.getMinutes()) {\r\n return -1;\r\n } else if (a.getMinutes() > b.getMinutes()) {\r\n return 1;\r\n } else if (a.getSeconds() < b.getSeconds()) {\r\n return -1;\r\n } else if (a.getSeconds() > b.getSeconds()) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n}\r\n\r\nexport const dateIsTodayOrFuture = (date: Date) => {\r\n const today = new Date();\r\n today.setHours(0, 0, 0, 0);\r\n return compareDates(date, today) >= 0;\r\n}\r\n\r\nexport const format = (input: Date | string | undefined, f: string = 'd-m-y') => {\r\n const patterns = f.toLowerCase().split('');\r\n\r\n if (input == undefined) {\r\n return '';\r\n }\r\n\r\n const d = typeof (input) === 'string'\r\n ? parseDate(input)\r\n : input;\r\n\r\n if (d.toString().includes(\"Invalid\")) {\r\n return '';\r\n }\r\n\r\n return patterns.reduce((r, p) => {\r\n if (p === 'd') {\r\n r.push(zeroPad(d.getDate(), 2));\r\n }\r\n else if (p === 'm') {\r\n r.push(zeroPad(d.getMonth() + 1, 2));\r\n }\r\n else if (p === 'y') {\r\n r.push(zeroPad(d.getFullYear(), 2));\r\n }\r\n else if (p === 'h') {\r\n r.push(zeroPad(d.getHours(), 2));\r\n }\r\n else if (p === 'i') {\r\n r.push(zeroPad(d.getMinutes(), 2));\r\n }\r\n else if (p === 's') {\r\n r.push(zeroPad(d.getSeconds(), 2));\r\n }\r\n else {\r\n r.push(p.toUpperCase());\r\n }\r\n\r\n return r;\r\n }, [] as any[]).join('');\r\n}\r\n\r\nexport const formatFullTime = (input: Date | string | undefined, f: string = 'd-m-y h:i:s') => {\r\n const patterns = f.toLowerCase().split('');\r\n\r\n if (input == undefined) {\r\n return '';\r\n }\r\n\r\n const d = typeof (input) === 'string'\r\n ? parseDate(input)\r\n : input;\r\n\r\n return patterns.reduce((r, p) => {\r\n if (p === 'd') {\r\n r.push(zeroPad(d.getDate(), 2));\r\n }\r\n else if (p === 'm') {\r\n r.push(zeroPad(d.getMonth() + 1, 2));\r\n }\r\n else if (p === 'y') {\r\n r.push(zeroPad(d.getFullYear(), 2));\r\n }\r\n else if (p === 'h') {\r\n r.push(zeroPad(d.getHours(), 2));\r\n }\r\n else if (p === 'i') {\r\n r.push(zeroPad(d.getMinutes(), 2));\r\n }\r\n else if (p === 's') {\r\n r.push(zeroPad(d.getSeconds(), 2));\r\n }\r\n else {\r\n r.push(p.toUpperCase());\r\n }\r\n\r\n return r;\r\n }, [] as any[]).join('');\r\n}\r\n\r\nexport const formatLocalDate = (date: Date | string, style = 'd/m/y h:i:s') => {\r\n const d = typeof (date) === 'string' ? new Date(date) : date;\r\n d.setTime(d.getTime() + d.getTimezoneOffset());\r\n\r\n return format(d, style);\r\n}\r\n\r\nexport const formatMinutes = (minutes: number) => {\r\n if (minutes > 0) {\r\n const hours = Math.floor(minutes / 60);\r\n const mints = (minutes - hours * 60);\r\n\r\n return `${zeroPad(hours, 2)}:${zeroPad(mints, 2)}`;\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n\r\nexport const timeToMinutes = (data: string | number) => {\r\n if (typeof (data) === 'string') {\r\n const [h, m] = data.split(':');\r\n return parseInt(h) * 60 + parseInt(m);\r\n }\r\n else {\r\n return data;\r\n }\r\n}\r\n\r\nexport const toUtc = (data: string | Date | undefined) => {\r\n if (data != undefined) {\r\n const d = typeof (data) === 'string'\r\n ? parseDate(data)\r\n : data;\r\n\r\n const off = d.getTimezoneOffset() * 60000;\r\n const t = d.getTime();\r\n const nd = new Date(t + off);\r\n return nd;\r\n }\r\n else {\r\n return data;\r\n }\r\n}\r\n\r\ntype FromUtcT = (data: string | Date) => Date;\r\n\r\nexport const fromUtc: FromUtcT = (data: string | Date) => {\r\n const hasTimezone = typeof (data) === 'string'\r\n ? data?.endsWith('Z')\r\n : false;\r\n\r\n if (hasTimezone && typeof (data) === 'string') {\r\n return fromUtc(data.substring(0, data.length - 1));\r\n }\r\n\r\n const d = typeof (data) === 'string'\r\n ? parseDate(data)\r\n : data;\r\n\r\n const off = d.getTimezoneOffset() * 60000;\r\n const t = d.getTime();\r\n const nd = new Date(t - off);\r\n return nd;\r\n}\r\n\r\nexport const formatFromUtc = (data: string | Date | undefined, f: string = 'd-m-y') => {\r\n if (data != undefined) {\r\n return format(toUtc(data), f);\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n\r\nexport const formatDateTimeFromUtc = (data: string | Date | undefined, f: string = 'd-m-y h:i:s') => {\r\n if (data != undefined) {\r\n return format(fromUtc(data), f);\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n\r\nexport const toIso8601 = (data: string | Date | undefined) => {\r\n if (data != undefined) {\r\n return format(data, 'y-m-dTh:i:sZ');\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n\r\n//Determines if a date or string is in date format\r\nexport const isDate = (data: string | Date) => {\r\n const d = typeof (data) === 'string'\r\n ? parseDate(data)\r\n : data;\r\n\r\n return d instanceof Date;\r\n}\r\n\r\nfunction strNow(interval: number = 0) {\r\n const date = new Date();\r\n date.setTime(date.getTime() + interval);\r\n\r\n return format(date, 'y-m-d');\r\n}\r\n\r\nconst oneDayMs = 24 * 60 * 60 * 1000;\r\n\r\nexport default {\r\n format,\r\n formatFromUtc,\r\n formatDateTimeFromUtc,\r\n formatFullTime,\r\n formatLocalDate,\r\n formatMinutes,\r\n parseDate,\r\n timeToMinutes,\r\n compareDates,\r\n dateIsLessOrEqual,\r\n dateISTodayOrFuture: dateIsTodayOrFuture,\r\n toUtc,\r\n fromUtc,\r\n strNow,\r\n oneDayMs,\r\n toIso8601,\r\n isDate,\r\n}\r\n","import { redirectTo } from '@utils';\n\nexport { redirectTo };\n\ntype IJobOpts = {\n jobHasContractorId?: number;\n parentId?: number;\n // si un contratista quiere acceder a los recursos\n // de sus subcontratistas\n relationId?: number;\n}\n\ntype GoToOpts = {\n reload?: boolean;\n}\n\nconst toQuery = (opts: any) => {\n return Object\n .keys(opts)\n .filter(k => opts[k] != undefined)\n .map(k => `${k}=${opts[k]}`)\n .join('&');\n}\n\n// JOB\nexport const goToJobs = (workId: number) =>\n redirectTo(`/work/${workId}/jobs`);\n\nexport const goToJob = (workId: number, jobId: number, opts: IJobOpts = {}) =>\n redirectTo(`/work/${workId}/jobs/${jobId}/data?${toQuery(opts)}`);\n\nexport const goToJobCard = (workId: number, jobId: number, opts: IJobOpts = {}) =>\n redirectTo(jobCardRoute(workId, jobId, opts));\n\nexport const jobCardRoute = (workId: number, jobId: number, opts: IJobOpts = {}) =>\n `/work/${workId}/jobs/${jobId}/card?${toQuery(opts)}`;\n\nexport const goToJobDocumentation = (workId: number, jobId: number, opts: IJobOpts = {}) =>\n redirectTo(`/work/${workId}/jobs/${jobId}/requirements?${toQuery(opts)}`);\n\nexport const goToJobAddContractor = (workId: number, jobId: number, parentId?: number) =>\n redirectTo(`/work/${workId}/jobs/${jobId}/add/contractor?parentId=${parentId}`);\n\nexport const goToJobCreateRequirement = (\n workId: number,\n jobId: number,\n resourceType: number | undefined = undefined,\n resourceId: number | undefined = undefined,\n statusType: number | undefined = undefined) =>\n redirectTo(jobCreateRequirementRoute(workId, jobId, resourceType, resourceId, statusType));\n\nexport const goToJobResourceCreateRequirement = (\n workId: number,\n jobId: number,\n resourceType: number | undefined = undefined,\n resourceId: number | undefined = undefined,\n statusType: number | undefined = undefined) =>\n redirectTo(jobCreateResourceRequirementRoute(workId, jobId, resourceType, resourceId, statusType));\n\nexport const goToJobContractors = (workId: number, jobId: number, loadInvitations: boolean = true) =>\n redirectTo(jobContractorsRoute(workId, jobId, loadInvitations));\n\nexport const jobContractorsRoute = (workId: number, jobId: number, loadInvitations: boolean = true) =>\n `/work/${workId}/jobs/${jobId}/contractors?loadInvitations=${loadInvitations}`;\n\nexport const goToJobSubContractors = (workId: number, jobId: number, opts: IJobOpts = {}) =>\n redirectTo(`/work/${workId}/jobs/${jobId}/contractors?${toQuery(opts)}`);\n\nexport const goToJobMachineries = (workId: number, jobId: number, opts: IJobOpts = {}) =>\n redirectTo(jobMachineriesRoute(workId, jobId, opts));\n\nexport const jobMachineriesRoute = (workId: number, jobId: number, opts: IJobOpts = {}) =>\n `/work/${workId}/jobs/${jobId}/machineries?${toQuery(opts)}`;\n\nexport const goToJobHasMachinery = (workId: number, jobId: number, jobHasMachineryId: number) =>\n redirectTo(`/work/${workId}/jobs/${jobId}/machinery/${jobHasMachineryId}`);\n\nexport const goToJobNotifyInformationLoaded = (workId: number, jobId: number) =>\n redirectTo(jobNotifyInformationLoadedRoute(workId, jobId));\n\nexport const goToJobRequirements = (workId: number, jobId: number, opts: GoToOpts = {}) =>\n redirectTo(jobRequirementsRoute(workId, jobId), opts);\n\nexport const goToCommunications = (workId: number) =>\n redirectTo(`/work/${workId}/communications`);\n\nexport const goToJobWorkers = (\n workId: number,\n jobId: number,\n opts: IJobOpts = {}) => {\n redirectTo(jobWorkersRoute(workId, jobId, opts));\n};\n\nexport const jobWorkersRoute = (\n workId: number,\n jobId: number,\n opts: IJobOpts = {}) =>\n `/work/${workId}/jobs/${jobId}/workers?${toQuery(opts)}`;\n\nexport const goToJobWorker = (workId: number, jobId: number, jobHasWorkerId: number) =>\n redirectTo(routeJobHasWorker(workId, jobId, jobHasWorkerId));\n\nexport const routeJobHasWorker = (workId: number, jobId: number, jobHasWorkerId: number) =>\n `/work/${workId}/jobs/${jobId}/worker/${jobHasWorkerId}`;\n\nexport const routeJobAddContractorWorker = (workId: number, jobId: number, contractorId: number) =>\n `/work/${workId}/jobs/${jobId}/workers/add?contractor=${contractorId}`;\n\nexport const goToJobAddContractorWorker = (workId: number, jobId: number, contractorId: number) =>\n redirectTo(routeJobAddContractorWorker(workId, jobId, contractorId));\n\nexport const goToJobInformationLoaded = (workId: number, jobId: number) =>\n redirectTo(`/work/${workId}/jobs/${jobId}/information-loaded`);\n\nexport const goToJobInformationLoadedControl = (workId: number, jobId: number) =>\n redirectTo(jobInformationLoadedControlRoute(workId, jobId));\n\nexport const goToJobEditContractor = (workId: number, jobId: number, jobHasContractorId: number) =>\n redirectTo(jobHasContractorRoute(workId, jobId, jobHasContractorId));\n\nexport const goToJobEditContractorRequirements = (workId: number, jobId: number, jobHasContractorId: number) =>\n redirectTo(jobHasContractorRequirementsRoute(workId, jobId, jobHasContractorId));\n\nexport const goToJobEditMachineryRequirements = (workId: number, jobId: number, jobHasMachineryId: number) =>\n redirectTo(jobHasMachineryRequirementRoute(workId, jobId, jobHasMachineryId));\n\nexport const goToJobEditWorkerRequirements = (workId: number, jobId: number, jobHasWorkerId: number) =>\n redirectTo(jobHasWorkerRequirementsRoute(workId, jobId, jobHasWorkerId));\n\nexport const jobHasContractorRequirementsRoute = (workId: number, jobId: number, id: number) =>\n `/work/${workId}/jobs/${jobId}/jobContractor/${id}/requirements?jobHasContractorId=${id}`;\n\nexport const jobHasContractorRoute = (workId: number, jobId: number, id: number) =>\n `/work/${workId}/jobs/${jobId}/contractor/${id}`;\n\nexport const jobHasMachineryRoute = (workId: number, jobId: number, id: number) =>\n `/work/${workId}/jobs/${jobId}/machinery/${id}`;\n\nexport const jobHasMachineryRequirementRoute = (workId: number, jobId: number, id: number) =>\n `/work/${workId}/jobs/${jobId}/machinery/${id}/requirements`;\n\nexport const jobHasWorkerRoute = (workId: number, jobId: number, id: number) =>\n `/work/${workId}/jobs/${jobId}/worker/${id}`;\n\nexport const jobHasWorkerRequirementsRoute = (workId: number, jobId: number, id: number) =>\n `/work/${workId}/jobs/${jobId}/worker/${id}/requirements`;\n\nexport const jobRequirementsRoute = (workId: number, jobId: number) =>\n `/work/${workId}/jobs/${jobId}/requirements`;\n\nexport const jobCreateRequirementRoute = (\n workId: number,\n jobId: number,\n resourceType: number | undefined = undefined,\n resourceId: number | undefined = undefined,\n statusType: number | undefined = undefined,\n) => {\n const args = [\n ['resourceType', resourceType],\n ['resourceId', resourceId],\n ['statusType', statusType],\n ].filter(r => r[1] != undefined).map(r => `${r[0]}=${r[1]}`).join('&');\n\n return `/work/${workId}/jobs/${jobId}/upload-requirement?${args}`;\n}\n\nexport const jobCreateResourceRequirementRoute = (\n workId: number,\n jobId: number,\n resourceType: number | undefined = undefined,\n resourceId: number | undefined = undefined,\n statusType: number | undefined = undefined,\n) => {\n const args = [\n ['resourceType', resourceType],\n ['resourceId', resourceId],\n ['statusType', statusType]\n ].filter(r => r[1] != undefined).map(r => `${r[0]}=${r[1]}`).join('&');\n\n return `/work/${workId}/jobs/${jobId}/create-requirement?${args}`;\n}\n\nexport const jobNotifyInformationLoadedRoute = (workId: number, jobId: number) =>\n `/work/${workId}/jobs/${jobId}/notify-information-loaded`;\n\nexport const jobInformationLoadedRoute = (workId: number, jobId: number) =>\n `/work/${workId}/jobs/${jobId}/information-loaded`;\n\nexport const jobInformationLoadedControlRoute = (workId: number, jobId: number) =>\n `/work/${workId}/jobs/${jobId}/information-loaded-control`;\n\n// machineries\nexport const goToMachineryRequirements = (workId: number, machineryId: number) =>\n redirectTo(machineryRequirementsRoute(workId, machineryId));\n\nexport const machineryRequirementsRoute = (workId: number, machineryId: number) =>\n `/work/${workId}/machineries/${machineryId}/requirements`;\n\nexport const goToMachineries = (workId: number) =>\n redirectTo(machineriesRoute(workId));\n\nexport const goToMachinery = (workId: number, machineryId: number) =>\n redirectTo(machineryRoute(workId, machineryId));\n\nexport const machineriesRoute = (workId: number) =>\n `/work/${workId}/machineries`;\n\nexport const machineryRoute = (workId: number, machineryId: number) =>\n `/work/${workId}/machineries/${machineryId}`;\n\n// workers\nexport const goToWorkerRequirements = (workId: number, workerId: number) =>\n redirectTo(workerRequirementsRoute(workId, workerId));\nexport const workerRequirementsRoute = (workId: number, workerId: number) =>\n `/work/${workId}/workers/${workerId}/requirements`;\n\nexport const goToWorker = (workId: number, workerId: number) =>\n redirectTo(workerRoute(workId, workerId));\nexport const workerRoute = (workId: number, workerId: number) =>\n `/work/${workId}/workers/${workerId}`;\n\nexport const goToWorkers = (workId: number) =>\n redirectTo(workersRoute(workId));\nexport const workersRoute = (workId: number) =>\n `/work/${workId}/workers`;\n\n// contractors\nexport const goToContractors = (workId: number) =>\n redirectTo(contractorsRoute(workId));\nexport const contractorsRoute = (workId: number) =>\n `/work/${workId}/contractors`;\n\nexport const goToContractor = (workId: number, contractorId: number) =>\n redirectTo(contractorRoute(workId, contractorId));\nexport const contractorRoute = (workId: number, contractorId: number) =>\n `/work/${workId}/contractors/${contractorId}`;\n\nexport const goToContractorRequirements = (workId: number, contractorId: number) =>\n redirectTo(contractorRequirementsRoute(workId, contractorId));\nexport const contractorRequirementsRoute = (workId: number, contractorId: number) =>\n `/work/${workId}/contractors/${contractorId}/requirements`;\n\nexport const goToContractorAccessData = (workId: number, contractorId: number) =>\n redirectTo(contractorAccessDataRoute(workId, contractorId));\nexport const contractorAccessDataRoute = (workId: number, contractorId: number) =>\n `/work/${workId}/contractors/${contractorId}/access-data`;\n\n// subcontractors\nexport const subContractorsRoute = (workId: number) =>\n `/work/${workId}/subcontractors`;\nexport const goToSubContractors = (workId: number) =>\n redirectTo(subContractorsRoute(workId));\n\nexport default {\n redirectTo,\n jobContractorsRoute,\n jobHasContractorRoute,\n jobHasMachineryRoute,\n jobHasWorkerRoute,\n jobCreateRequirementRoute,\n jobInformationLoadedRoute,\n jobInformationLoadedControlRoute,\n jobRequirementsRoute,\n goToJob,\n goToJobCard,\n jobCardRoute,\n goToJobs,\n goToJobAddContractor,\n goToJobDocumentation,\n goToJobEditContractor,\n goToJobEditContractorRequirements,\n goToJobContractors,\n goToJobSubContractors,\n goToJobCreateRequirement,\n goToJobInformationLoaded,\n goToJobMachineries,\n jobMachineriesRoute,\n goToJobNotifyInformationLoaded,\n goToJobInformationLoadedControl,\n goToJobRequirements,\n goToJobWorkers,\n jobWorkersRoute,\n // machineries\n goToMachineryRequirements,\n machineryRequirementsRoute,\n goToMachinery,\n machineryRoute,\n // workers\n goToWorkerRequirements,\n workerRequirementsRoute,\n goToWorker,\n workerRoute,\n goToWorkers,\n workersRoute,\n // contractors\n goToContractors,\n contractorsRoute,\n goToContractor,\n contractorRoute,\n goToContractorRequirements,\n contractorRequirementsRoute,\n subContractorsRoute,\n goToSubContractors,\n // communications\n goToCommunications\n}\n","import { Action, Reducer } from 'redux';\nimport {\n IJob, parseJob, IContractor,\n} from '../models';\nimport * as JobsActions from './actions/jobs';\nimport { actionCreators as N } from './notifications';\nimport { getJobLogs, jobNotifyInformationLoaded } from \"./actions/jobs\";\nimport { IJobHasContractor } from '@models';\n\nexport interface IJobState {\n selectedJob?: IJob;\n selectedJobHasContractor?: IJobHasContractor;\n}\n\n// types\nenum Types {\n LoadJob = '[JOBS] LOAD JOB',\n OnJobLoaded = '[USER] ON JOB LOADED',\n SelectJobHasContractor = '[JOBS] SELECT CONTRACTOR',\n ClearSelectedContractor = '[JOBS] CLEAR SELECTED CONTRACTOR',\n ClearSelectedJobHasContractor = '[JOBS] CLEAR SELECTED JOB HAS CONTRACTOR',\n ClearSelectedJob = '[JOBS] CLEAR SELECTED JOB',\n LocationChange = '@@router/LOCATION_CHANGE',\n}\n\n// actions\nexport interface OnJobLoaded {\n type: Types.OnJobLoaded;\n data: IJob;\n}\n\nexport interface SelectJobHasContractor {\n type: Types.SelectJobHasContractor;\n data: IJobHasContractor;\n}\n\nexport interface ClearSelectedContractor {\n type: Types.ClearSelectedContractor;\n}\n\nexport interface ClearSelectedJobHasContractor {\n type: Types.ClearSelectedJobHasContractor;\n}\n\nexport interface ClearSelectedJob {\n type: Types.ClearSelectedJob;\n}\n\nexport interface LocationChangeAction {\n type: Types.LocationChange;\n payload: any;\n}\n\nexport type KnownAction = OnJobLoaded\n | SelectJobHasContractor\n | ClearSelectedJobHasContractor\n | ClearSelectedContractor\n | ClearSelectedJob\n | LocationChangeAction\n | { type: undefined };\n\nexport const plainActions = {\n getJobStatus: JobsActions.getJobStatus,\n saveJobStatus: JobsActions.saveJobStatus,\n jobNotifyInformationLoaded: JobsActions.jobNotifyInformationLoaded,\n createContractorRequest: JobsActions.createContractorRequest,\n processContractorRequest: JobsActions.processContractorRequest,\n getJobContractorRequests: JobsActions.getJobContractorRequests,\n getJob: JobsActions.getJob,\n activateJobHasContractor: JobsActions.activateJobHasContractor,\n saveJobHasContractor: JobsActions.saveJobHasContractor,\n removeJobHasContractor: JobsActions.removeJobHasContractor,\n deleteJobHasContractor: JobsActions.deleteJobHasContractor,\n deleteJobHasWorker: JobsActions.deleteJobHasWorker,\n deleteJobHasMachinery: JobsActions.deleteJobHasMachinery,\n searchContractors: JobsActions.searchContractors,\n getJobContractors: JobsActions.getJobContractors,\n getJobContractorsViewModel: JobsActions.getJobContractorsViewModel,\n getJobHasContractor: JobsActions.getJobHasContractor,\n getJobDepartments: JobsActions.getJobDepartments,\n saveJobHasDepartment: JobsActions.saveJobHasDepartment,\n removeJobHasDepartment: JobsActions.removeJobHasDepartment,\n getJobHasMachineries: JobsActions.getJobHasMachineries,\n getJobHasMachinery: JobsActions.getJobHasMachinery,\n activateJobHasMachinery: JobsActions.activateJobHasMachinery,\n saveJobHasMachinery: JobsActions.saveJobHasMachinery,\n searchMachineries: JobsActions.searchMachineries,\n removeJobHasMachinery: JobsActions.removeJobHasMachinery,\n // workers\n getJobHasWorker: JobsActions.getJobHasWorker,\n getJobHasWorkers: JobsActions.getJobHasWorkers,\n searchWorkers: JobsActions.searchWorkers,\n activateJobHasWorker: JobsActions.activateJobHasWorker,\n saveJobHasWorker: JobsActions.saveJobHasWorker,\n removeJobHasWorker: JobsActions.removeJobHasWorker,\n // logs\n getJobLogs: JobsActions.getJobLogs,\n}\n\nexport const actionCreators = {\n clearSelectedJob: () => (dispatch: Function) => {\n dispatch({\n type: Types.ClearSelectedJob,\n });\n },\n clearSelectedContractor: () => (dispatch: Function) => {\n dispatch({\n type: Types.ClearSelectedContractor,\n });\n },\n clearSelectedJobHasContractor: () => (dispatch: Function) => {\n dispatch({\n type: Types.ClearSelectedJobHasContractor,\n });\n },\n selectJobHasContractor: (jobHasContractor: IJobHasContractor) => (dispatch: Function) => {\n dispatch({\n type: Types.SelectJobHasContractor,\n data: jobHasContractor,\n });\n },\n loadJob: (workId: number, jobId: number) => async (dispatch: Function) => {\n dispatch(N.startLoading({\n ctx: 'jobs.load',\n }));\n const resp = await JobsActions.getJob(workId, jobId);\n dispatch({\n type: Types.OnJobLoaded,\n data: parseJob(resp.data.work.job),\n });\n dispatch(N.stopLoading({\n ctx: 'jobs.load',\n }));\n },\n saveJob: (workId: number, job: IJob) => async (dispatch: Function) => {\n dispatch(N.startLoading({ ctx: 'jobs.save' }));\n\n const saveResp = await JobsActions.saveJob(job);\n const jobId = job.id ?? saveResp.value;\n const resp = await JobsActions.getJob(workId, jobId);\n dispatch({\n type: Types.OnJobLoaded,\n data: parseJob(resp.data.work.job),\n });\n dispatch(N.success({\n ctx: 'jobs.save',\n action: 'save',\n delay: 5000\n }));\n dispatch(N.stopLoading({ ctx: 'jobs.save' }));\n }\n};\n\nexport const reducer: Reducer = (state: IJobState | undefined, incomingAction: Action): IJobState => {\n if (state === undefined) {\n return {};\n }\n\n const action = incomingAction as KnownAction;\n\n switch (action.type) {\n case Types.LocationChange:\n if (action.payload.location.pathname?.includes('/jobs/')) {\n return state;\n }\n else {\n return { ...state, selectedJob: undefined, selectedJobHasContractor: undefined };\n }\n\n case Types.ClearSelectedJob:\n return { ...state, selectedJob: undefined, selectedJobHasContractor: undefined };\n\n case Types.OnJobLoaded:\n return { ...state, selectedJob: action.data, selectedJobHasContractor: undefined };\n\n case Types.SelectJobHasContractor:\n return { ...state, selectedJobHasContractor: action.data };\n\n case Types.ClearSelectedContractor:\n return { ...state, selectedJobHasContractor: undefined };\n\n case Types.ClearSelectedJobHasContractor:\n return { ...state, selectedJobHasContractor: undefined };\n\n default:\n return state;\n }\n};\n","import i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\nimport { addLocale } from 'primereact/api';\n\nconst es = require('./i18n/es.json');\nconst en = require('./i18n/en.json');\nconst it = require('./i18n/it.json');\n\nconst createOriginalResources = () => ({\n it: {\n translation: it\n },\n en: {\n translation: en\n },\n es: {\n translation: es\n }\n}) as any;\n\nconst loadResources = (resources: any) => {\n let locale = navigator.language;\n\n if (locale) {\n const language = locale.split('-')[0];\n locale = language;\n }\n else {\n locale = 'es';\n }\n\n i18n.use(initReactI18next).init({\n resources,\n lng: locale,\n interpolation: {\n escapeValue: false\n }\n });\n}\n\nconst resources = createOriginalResources();\nloadResources(resources);\n\nconst get = (...keys: string[]) => {\n const r = i18n.getDataByLanguage(i18n.language)?.translation;\n\n return keys.reduce((acc, key) => {\n return acc + ' ' + (r ? (r[key] ?? key) : key);\n }, '');\n}\n\nconst installResources = (resources: any, moduleKeys: any | undefined = undefined) => {\n const newResources = createOriginalResources();\n\n for (const l of Object.keys(newResources)) {\n const keys = resources.filter((r: any) => r.language == l);\n if (keys.length > 0) {\n const newLangResources: any = {};\n for (const k of keys) {\n newLangResources[k.name] = k.value;\n }\n newResources[l].translation = {\n ...newResources[l].translation,\n ...newLangResources\n };\n }\n }\n\n if (moduleKeys != undefined) {\n for (const l of Object.keys(moduleKeys)) {\n const keys = moduleKeys[l];\n const newLangResources: any = {};\n for (const k in keys) {\n newLangResources[k] = keys[k];\n }\n newResources[l].translation = {\n ...newResources[l].translation,\n ...newLangResources\n };\n // console.log('install module keys', newLangResources);\n }\n }\n\n loadResources(newResources);\n}\n\nconst languages = ['es', 'en', 'it'];\nconst defaultLanguage = 'es';\n\nconst currentLocale = () => i18n.language;\n\naddLocale('es', {\n firstDayOfWeek: 1,\n dayNames: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado'],\n dayNamesShort: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'],\n dayNamesMin: ['D', 'L', 'M', 'X', 'J', 'V', 'S'],\n monthNames: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'],\n monthNamesShort: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'],\n today: 'Hoy',\n clear: 'Limpiar'\n});\n\naddLocale('it', {\n firstDayOfWeek: 1,\n dayNames: ['domenica', 'lunedi', 'martedi', 'miercoledi', 'giovedi', 'venerdi', 'sabato'],\n dayNamesShort: ['dom', 'lun', 'mar', 'mie', 'gio', 'ven', 'sab'],\n dayNamesMin: ['D', 'L', 'M', 'X', 'G', 'V', 'S'],\n monthNames: ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'],\n monthNamesShort: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', 'ott', 'nov', 'dic'],\n today: 'Oggi',\n clear: 'Chiaro'\n});\n\naddLocale('it', {\n firstDayOfWeek: 1,\n dayNames: ['domenica', 'lunedi', 'martedi', 'miercoledi', 'giovedi', 'venerdi', 'sabato'],\n dayNamesShort: ['dom', 'lun', 'mar', 'mie', 'gio', 'ven', 'sab'],\n dayNamesMin: ['D', 'L', 'M', 'X', 'G', 'V', 'S'],\n monthNames: ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'],\n monthNamesShort: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', 'ott', 'nov', 'dic'],\n today: 'Oggi',\n clear: 'Chiaro'\n});\n\nexport {\n currentLocale,\n defaultLanguage,\n get,\n installResources,\n languages,\n}\n\nexport default i18n;\n","import { Dialog } from 'primereact/dialog';\r\nimport { ConfirmDialog } from 'primereact/confirmdialog';\r\nimport * as React from 'react';\r\nimport { Loading } from '../components/custom/Loading';\r\nimport { ICountry, INotification, IOption, IPaginateResult, IPaginateSort } from '../models';\r\nimport { get as i18n } from '../i18n';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Paginator } from 'primereact/paginator';\r\nimport { Column } from 'primereact/column';\r\nimport { classNames, confirmPopup, LoadingBox, Message, Portal, SplitButton, Toast, TreeTable, useTranslation } from '../components';\r\nimport * as DateUtils from '../utils/date-utils';\r\nimport TreeNode from 'primereact/treenode/treenode';\r\nimport { TreeTableExpandedKeysType } from 'primereact/treetable';\r\nconst __consumedNotifications: number[] = [];\r\n\r\nexport interface IToastOpts {\r\n life?: number;\r\n severity?: string;\r\n detail?: string;\r\n}\r\n\r\nconst DEFAULT_TOAST_LIFE = 5000;\r\nconst DEFAULT_TOAST_SEVERITY = 'success';\r\n\r\nexport function observeValue(handler: (data: T) => void, data: T) {\r\n const r = React.useRef(data);\r\n\r\n React.useEffect(() => {\r\n if (r.current != data) {\r\n handler(data);\r\n }\r\n\r\n r.current = data;\r\n }, [data]);\r\n}\r\n\r\nexport function useToast() {\r\n const ref = React.useRef();\r\n\r\n const render = () => {\r\n return ;\r\n }\r\n\r\n const show = (message: string, opts: IToastOpts = {}) => {\r\n if (ref.current) {\r\n ref.current.show({\r\n life: opts.life ?? DEFAULT_TOAST_LIFE,\r\n severity: opts.severity ?? DEFAULT_TOAST_SEVERITY,\r\n summary: message,\r\n detail: opts.detail,\r\n });\r\n }\r\n }\r\n\r\n const error = (message: string, opts: IToastOpts = {}) => {\r\n show(message, {\r\n severity: 'error',\r\n detail: opts.detail,\r\n life: opts.life,\r\n });\r\n };\r\n\r\n return {\r\n render,\r\n error,\r\n show,\r\n }\r\n}\r\n\r\nexport function onNotification(\r\n ctx: Partial,\r\n notifications: INotification[],\r\n f: Function) {\r\n const consumedNotifications = React.useRef(__consumedNotifications);\r\n const isConsumed = (id: number) => consumedNotifications.current.indexOf(id) >= 0;\r\n\r\n return React.useEffect(() => {\r\n const n = notifications\r\n .find(n => (ctx.action == undefined || n.action == ctx.action)\r\n && (ctx.ctx == undefined || n.ctx == ctx.ctx)\r\n && (ctx.type == undefined || n.type == ctx.type)\r\n && (ctx.id == undefined || n.id == ctx.id)\r\n && !isConsumed(n.id));\r\n if (n) {\r\n consumedNotifications.current.push(n.id);\r\n __consumedNotifications.push(n.id);\r\n f(n);\r\n }\r\n }, [notifications]);\r\n}\r\n\r\nexport function useMemoized(fn: Function, dependencies: any[] = []) {\r\n const cache = React.useRef({});\r\n\r\n React.useEffect(() => {\r\n cache.current = {};\r\n }, dependencies);\r\n\r\n return (...args: any[]) => {\r\n const key = JSON.stringify(args);\r\n if (cache.current[key]) {\r\n return cache.current[key];\r\n }\r\n else {\r\n const value = fn(...args);\r\n cache.current = { ...cache.current, [key]: value };\r\n\r\n return value;\r\n }\r\n }\r\n}\r\n\r\nexport interface IConfirmOpts {\r\n text: string;\r\n confirmText?: string;\r\n cancelText?: string;\r\n onConfirm: any;\r\n onCancel: any;\r\n}\r\n\r\nexport interface IUseDialogProps {\r\n className?: string;\r\n onShow?: Function;\r\n}\r\n\r\nexport interface IRenderDialogOpts {\r\n className?: string;\r\n showCloseFooter?: boolean;\r\n title?: string | Function;\r\n maximized?: boolean;\r\n style?: any;\r\n maskClassName?: string;\r\n}\r\n\r\nexport function useDialogs(props: IUseDialogProps = {}) {\r\n const [dialogs, setDialogs] = React.useState([]);\r\n const [dialogData, setDialogData] = React.useState({});\r\n const [cnf, setCnf] = React.useState(undefined);\r\n\r\n const confirm = (data: any) => setCnf(data);\r\n\r\n const get = (dialog: string) => dialogData[dialog];\r\n\r\n const show = (dialog: string, show: boolean | any = true) => {\r\n if (show && !dialogs.includes(dialog)) {\r\n props.onShow?.(show);\r\n setDialogs(dialogs.concat([dialog]));\r\n setDialogData((d: any) => ({ ...d, [dialog]: show }));\r\n }\r\n else if (!show) {\r\n setDialogs(dialogs.filter(d => d != dialog));\r\n setDialogData((d: any) => {\r\n delete d[dialog];\r\n return d;\r\n });\r\n }\r\n }\r\n\r\n const renderConfirm = (opts: IConfirmOpts) => {\r\n if (cnf) {\r\n return \r\n {opts.text}\r\n \r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n const render = (\r\n dialog: string,\r\n inputOpts: IRenderDialogOpts | string = {},\r\n content: any) => {\r\n const opts = typeof (inputOpts) === 'object' ? inputOpts : { title: inputOpts };\r\n\r\n if (dialogs.indexOf(dialog) >= 0 && dialogData[dialog]) {\r\n const title = typeof (opts.title) == 'string'\r\n ? opts.title\r\n : typeof (opts.title) == 'function'\r\n ? opts.title(dialogData[dialog])\r\n : undefined;\r\n\r\n return show(dialog, false)}\r\n visible={true}>\r\n {content(dialogData[dialog])}\r\n {opts.showCloseFooter &&\r\n
\r\n
\r\n \r\n
}\r\n \r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n const showFromEvent = (name: string, data: any = undefined) => {\r\n return (..._: any) => {\r\n show(name, data);\r\n }\r\n }\r\n\r\n const clear = () => setDialogs([]);\r\n\r\n const clearConfirm = () => setCnf(undefined);\r\n\r\n const hide = (dialog: string) => show(dialog, false);\r\n\r\n return {\r\n clear,\r\n clearConfirm,\r\n confirm,\r\n hide,\r\n show,\r\n showFromEvent,\r\n render,\r\n renderConfirm,\r\n get,\r\n getState: () => ({ dialogs, dialogData, cnf }),\r\n };\r\n}\r\n\r\nexport interface IFormDialogProps {\r\n id?: string;\r\n addTitle?: string;\r\n editTitle?: string;\r\n loading?: boolean;\r\n className?: string;\r\n editClassName?: string;\r\n addClassName?: string;\r\n portal?: string;\r\n}\r\n\r\nexport function useFormDialog(props: IFormDialogProps = {}) {\r\n const [showAdd, setShowAdd] = React.useState(false);\r\n const [showEdit, setShowEdit] = React.useState(undefined);\r\n const [errors, setErrors] = React.useState({});\r\n\r\n const clear = () => {\r\n setErrors({});\r\n setShowAdd(false);\r\n setShowEdit(undefined);\r\n };\r\n\r\n const renderNormal = (fn: any, maximized: boolean | undefined = false) => {\r\n return \r\n {props.loading && }\r\n {showAdd && setShowAdd(false)}>\r\n {fn({\r\n data: showAdd,\r\n error: errors['add']\r\n })}\r\n }\r\n {showEdit && setShowEdit(undefined)}>\r\n {fn(showEdit, {\r\n error: errors['edit'],\r\n })}\r\n }\r\n \r\n }\r\n\r\n const render = (fn: any, maximized: boolean | undefined = false) => {\r\n if (props.portal) {\r\n return \r\n {renderNormal(fn, maximized)}\r\n \r\n }\r\n else {\r\n return renderNormal(fn, maximized);\r\n }\r\n }\r\n\r\n const renderFooter = ({ loading, disabled, onSaveClicked }: { loading?: ILoading, disabled?: boolean, onSaveClicked?: Function } = {}) => {\r\n return
\r\n \r\n {loading != undefined && loading.render()}\r\n
\r\n {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n clear();\r\n }}>\r\n {i18n('Cancel')}\r\n \r\n \r\n
\r\n
\r\n }\r\n\r\n const setEditError = (msg: string) => {\r\n const newerrors = { ...errors, edit: msg };\r\n\r\n setErrors(newerrors);\r\n }\r\n\r\n const clearErrors = () => {\r\n setErrors({});\r\n }\r\n\r\n return {\r\n render,\r\n renderFooter,\r\n clear,\r\n clearErrors,\r\n showAdd: () => setShowAdd(true),\r\n showEdit: (e: T) => setShowEdit(e),\r\n Footer: (props: any = undefined) => renderFooter(props),\r\n setEditError,\r\n currentEdit: showEdit,\r\n }\r\n}\r\n\r\nexport interface IUseObjectStateProps {\r\n onChange?: Function;\r\n defaultValue?: any;\r\n}\r\n\r\nexport function useObjectState(data: T, opts: IUseObjectStateProps = {}) {\r\n const inhibitOnChange = React.useRef(false);\r\n const [value, setValue] = React.useState(data);\r\n\r\n React.useEffect(() => {\r\n if (opts.onChange && !inhibitOnChange.current) {\r\n opts.onChange(value);\r\n }\r\n else if (inhibitOnChange.current) {\r\n inhibitOnChange.current = false;\r\n }\r\n }, [value]);\r\n\r\n const parseAsFloat = (input: any) => {\r\n const v = parseFloat(input);\r\n return isNaN(v) ? undefined : v;\r\n }\r\n\r\n const parseAsInt = (input: any) => {\r\n const v = parseInt(input);\r\n return isNaN(v) ? undefined : v;\r\n }\r\n\r\n const field = (fieldName: string, defaultValue: any = undefined) => {\r\n return value[fieldName] ?? defaultValue ?? opts.defaultValue;\r\n }\r\n\r\n const reset = (v: T) => {\r\n inhibitOnChange.current = true;\r\n setValue(v);\r\n }\r\n\r\n const set = (fieldName: string) =>\r\n (eventOrValue: any) => {\r\n inhibitOnChange.current = false;\r\n if (eventOrValue.target) {\r\n eventOrValue.persist && eventOrValue.persist();\r\n setValue((v: any) => ({ ...v, [fieldName]: eventOrValue.target.value }));\r\n }\r\n else {\r\n setValue((v: any) => ({ ...v, [fieldName]: eventOrValue }));\r\n }\r\n }\r\n\r\n const setFloat = (fieldName: string) =>\r\n (eventOrValue: any) => {\r\n inhibitOnChange.current = false;\r\n if (eventOrValue.target) {\r\n eventOrValue.persist && eventOrValue.persist();\r\n setValue((v: any) => ({ ...v, [fieldName]: parseAsFloat(eventOrValue.target.value) }));\r\n }\r\n else {\r\n setValue((v: any) => ({ ...v, [fieldName]: parseAsFloat(eventOrValue) }));\r\n }\r\n }\r\n\r\n const setInt = (fieldName: string) =>\r\n (eventOrValue: any) => {\r\n inhibitOnChange.current = false;\r\n if (eventOrValue.target) {\r\n eventOrValue.persist && eventOrValue.persist();\r\n setValue((v: any) => ({ ...v, [fieldName]: parseAsInt(eventOrValue.target.value) }));\r\n }\r\n else {\r\n setValue((v: any) => ({ ...v, [fieldName]: parseAsInt(eventOrValue) }));\r\n }\r\n }\r\n\r\n return {\r\n field,\r\n set,\r\n reset,\r\n setInt,\r\n setFloat,\r\n value,\r\n }\r\n}\r\n\r\nexport interface IUseLoadingProps {\r\n container?: string;\r\n}\r\n\r\nexport interface ILoading {\r\n loading: boolean;\r\n render: Function;\r\n renderBox: Function;\r\n renderModal: Function;\r\n isLoading: (name?: string | undefined) => boolean;\r\n start: Function;\r\n stop: Function;\r\n wrap: Function;\r\n}\r\n\r\nexport function useLoading(props: IUseLoadingProps | boolean = false): ILoading {\r\n const lock = React.useRef(false);\r\n const [loading, setLoading] = React.useState({});\r\n\r\n React.useEffect(() => {\r\n if (typeof (props) === 'boolean') {\r\n setLoading({ 'global': props });\r\n }\r\n }, [props]);\r\n\r\n const wrapRender = (fn: Function) => {\r\n if (typeof (props) === 'object' && props.container) {\r\n return {fn()}\r\n }\r\n else {\r\n return fn();\r\n }\r\n }\r\n\r\n const renderBox = (ctx: string | undefined | any = undefined, optsArgs: any = {}) => {\r\n const ctxIsKey = typeof (ctx) === 'string' || ctx == undefined;\r\n const k = ctxIsKey ? (ctx || 'global') : 'global';\r\n const isLoading = loading[k];\r\n const opts = typeof (ctx) === 'object' ? ctx : optsArgs;\r\n\r\n if (isLoading) {\r\n return wrapRender(() =>\r\n
\r\n \r\n {opts.text &&
\r\n {opts.text}\r\n
}\r\n
\r\n )\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n const renderModal = (ctx: string | undefined = undefined, optsArgs: any = {}) => {\r\n const ctxIsKey = typeof (ctx) === 'string' || ctx == undefined;\r\n const k = ctxIsKey ? (ctx || 'global') : 'global';\r\n const isLoading = loading[k];\r\n const opts = typeof (ctx) === 'object' ? ctx : optsArgs;\r\n\r\n if (isLoading) {\r\n return wrapRender(() =>\r\n
\r\n \r\n {opts.text &&
\r\n {opts.text}\r\n
}\r\n
\r\n )\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n const render = (ctx: string | undefined = undefined) => {\r\n const k = ctx || 'global';\r\n const isLoading = loading[k];\r\n\r\n return wrapRender(() =>\r\n \r\n {isLoading && }\r\n \r\n );\r\n }\r\n\r\n const start = (ctx: string | undefined = undefined) => {\r\n if (lock.current) {\r\n return;\r\n }\r\n lock.current = true;\r\n const k = ctx || 'global';\r\n const n = { ...loading, [k]: true };\r\n\r\n setLoading(n);\r\n }\r\n\r\n const stop = (ctx: string | undefined = undefined) => {\r\n lock.current = false;\r\n const k = ctx || 'global';\r\n const n = { ...loading };\r\n delete n[k];\r\n\r\n setLoading(n);\r\n }\r\n\r\n const isLoading = (ctx: string | undefined = undefined) => {\r\n const k = ctx || 'global';\r\n\r\n return loading[k] as boolean;\r\n }\r\n\r\n const wrap = (fn: Function) => async (...params: any) => {\r\n start();\r\n const res = await fn(...params);\r\n stop();\r\n\r\n return res;\r\n }\r\n\r\n return {\r\n loading: loading['global'] ?? false,\r\n render,\r\n renderBox,\r\n renderModal,\r\n isLoading,\r\n start,\r\n stop,\r\n wrap,\r\n }\r\n}\r\n\r\ntype ColumnDelegate = 'date' | 'datetime' | 'boolean' | undefined;\r\n\r\ninterface IUseDataTableColumn {\r\n field?: string;\r\n className?: string;\r\n title?: string;\r\n render?: (_: T) => any;\r\n delegate?: ColumnDelegate;\r\n sortKey?: string;\r\n sortable?: boolean;\r\n}\r\n\r\ninterface IUseDataTableSplitAction {\r\n actions: (IUseDataTableActions | undefined)[];\r\n className?: string;\r\n headerClassName?: string;\r\n}\r\n\r\ninterface IUseDataTableActions {\r\n icon?: string | ((_: T) => string);\r\n text?: string;\r\n title?: string;\r\n onClick: (_: T, event: React.MouseEvent) => void;\r\n disabled?: boolean | ((_: T) => boolean | undefined);\r\n tooltip?: string | ((_: T | any) => string);\r\n className?: string;\r\n headerStyle?: any;\r\n headerClassName?: string;\r\n bodyClassName?: string;\r\n}\r\n\r\ntype SortHandler = (sortField: string, sortAsc: boolean) => void;\r\n\r\nexport interface IUseDataTableProps {\r\n actions?: (IUseDataTableActions | IUseDataTableSplitAction | undefined)[];\r\n className?: string;\r\n columns: (IUseDataTableColumn | string | undefined)[];\r\n data: T[];\r\n loading?: any;\r\n scrollable?: boolean;\r\n scrollHeight?: string;\r\n style?: any;\r\n tableStyle?: any;\r\n onRowClicked?: Function;\r\n onSort?: SortHandler;\r\n tooltip?: boolean;\r\n resizableColumns?: boolean;\r\n lazy?: boolean;\r\n paginator?: boolean;\r\n rows?: number;\r\n rowsPerPageOptions?: number[];\r\n paginatorTemplate?: string;\r\n emptyMessage?: string;\r\n}\r\n\r\nexport interface IRenderDataTableOptions {\r\n header?: any;\r\n}\r\n\r\nfunction columnIsDataTableColumn(c: any): c is IUseDataTableColumn {\r\n return c && (c.field || c.title || c.sortKey);\r\n}\r\n\r\nconst dateDelegate = (d: any) => {\r\n if (d) {\r\n try {\r\n return DateUtils.format(d, 'd-m-y');\r\n }\r\n catch (e) {\r\n return d;\r\n }\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n\r\nconst dateTimeDelegate = (d: any) => {\r\n if (d) {\r\n return DateUtils.format(d, 'd-m-y h:i:s');\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n\r\nconst booleanDelegate = (d: any) => {\r\n if (d) {\r\n return ;\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n\r\nconst createDelegate = (d: ColumnDelegate) => {\r\n if (d && d === 'date') {\r\n return dateDelegate;\r\n }\r\n else if (d && d === 'datetime') {\r\n return dateTimeDelegate;\r\n }\r\n else if (d && d === 'boolean') {\r\n return booleanDelegate;\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\n\r\nfunction actionIsMultiple(a: IUseDataTableSplitAction | IUseDataTableActions | undefined): a is IUseDataTableSplitAction {\r\n return (a as IUseDataTableSplitAction)?.actions != undefined;\r\n}\r\n\r\nexport function useDataTable(props: IUseDataTableProps) {\r\n const [currentSortField, setCurrentSortField] = React.useState();\r\n const [currentSortOrder, setCurrentSortOrder] = React.useState();\r\n\r\n const wrapTooltip = (fieldName: string | undefined) =>\r\n props.tooltip && fieldName\r\n ? (r: any) => {\r\n if (typeof (r) === 'string') {\r\n return {r}\r\n }\r\n else {\r\n return {r[fieldName]}\r\n }\r\n }\r\n : null;\r\n\r\n const renderColumn = (c: string | IUseDataTableColumn, i: number) => {\r\n const cap = (str: string) =>\r\n str ? str.charAt(0).toUpperCase() + str.slice(1)\r\n : str;\r\n\r\n if (typeof (c) === 'string') {\r\n const render = wrapTooltip(c);\r\n return \r\n }\r\n else {\r\n const delegateF = createDelegate(c.delegate);\r\n const delegate = delegateF\r\n ? (r: any) => delegateF(c.field ? r[c.field] : r)\r\n : undefined;\r\n\r\n const render = wrapTooltip(c.field);\r\n return \r\n }\r\n }\r\n\r\n const renderMultipleAction = (a: IUseDataTableSplitAction, data: T, index: number) => {\r\n const actions = a\r\n .actions\r\n .filter(a => a != undefined)\r\n .map(a => a as any)\r\n .filter(a => a.disabled === undefined\r\n || (typeof (a.disabled) === 'boolean' && a.disabled != true)\r\n || (typeof (a.disabled) === 'function' && a.disabled(data) != true))\r\n .map((s) => {\r\n const uniqueId = `split_button_${index}`;\r\n return ({\r\n icon: s.icon,\r\n label: s.title,\r\n command: (e: any) => {\r\n const id = uniqueId;\r\n s.onClick(data, {\r\n target: document.getElementById(id),\r\n id,\r\n });\r\n }\r\n })\r\n });\r\n\r\n if (actions.length > 0) {\r\n return ;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n const renderAction = (a: IUseDataTableActions | IUseDataTableSplitAction | undefined, i: number) => {\r\n if (actionIsMultiple(a)) {\r\n return renderMultipleAction(a, c, props.data.indexOf(c))} />\r\n }\r\n else if (a) {\r\n const disabled = (c: T) => {\r\n return typeof (a.disabled) === 'boolean'\r\n ? a.disabled\r\n : a.disabled\r\n ? a.disabled(c)\r\n : false;\r\n }\r\n\r\n return {\r\n if (disabled(c)) {\r\n return null;\r\n }\r\n else if (a.text) {\r\n return a.onClick(c, e)}>{i18n(a.text)}\r\n }\r\n else if (a.icon && typeof (a.icon) === 'string' && a.icon.startsWith('fa')) {\r\n return a.onClick(c, e)}>;\r\n }\r\n else if (a.icon && typeof (a.icon) === 'string') {\r\n return a.onClick(c, e)}>
;\r\n }\r\n else if (a.icon && typeof (a.icon) === 'function') {\r\n const icon = a.icon(c);\r\n return a.onClick(c, e)}>
;\r\n }\r\n else {\r\n return null;\r\n }\r\n }} />;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n const onRowClicked = (event: any) => {\r\n if (props.onRowClicked) {\r\n props.onRowClicked(event.data);\r\n }\r\n }\r\n\r\n const doSort = ({ sortField, sortOrder }: { sortField: string, sortOrder: any }) => {\r\n setCurrentSortField(sortField);\r\n setCurrentSortOrder(sortOrder);\r\n\r\n props.onSort?.(sortField, sortOrder == 1);\r\n }\r\n\r\n return (opts: IRenderDataTableOptions = {}) => {\r\n return <>\r\n {props.loading && props.loading.isLoading && props.loading.isLoading() && props.loading.renderBox()}\r\n \r\n {props\r\n .columns\r\n .filter(c => c != undefined)\r\n .map((r, i) => renderColumn(r!, i))}\r\n {props.actions && props.actions.map(renderAction)}\r\n \r\n \r\n }\r\n}\r\n\r\nexport interface IUseTreeTableProps {\r\n data: T[];\r\n columns: (IUseDataTableColumn | string | undefined)[];\r\n actions?: (IUseDataTableActions | undefined)[];\r\n idProperty?: string;\r\n parentProperty?: string;\r\n childrenProperty?: string;\r\n sortProperty?: string;\r\n expand?: boolean;\r\n toggleApplications?: boolean;\r\n selectable?: boolean;\r\n}\r\n\r\nexport function useTreeTable(props: IUseTreeTableProps) {\r\n const [nodes, setNodes] = React.useState([]);\r\n const [expandedKeys, setExpandedKeys] = React.useState({});\r\n\r\n const createKey = (d: any) =>\r\n d.key ??\r\n `${d.__typename}_${d.id}_${d[props.parentProperty ?? 'root']}`;\r\n\r\n const createNode = (d: any) => {\r\n return {\r\n data: d,\r\n key: d.key ?? createKey(d),\r\n children: [],\r\n } as any\r\n }\r\n\r\n const prepareFlatNodes = (data: any[], key: string, parentKey: string) => {\r\n const stack: any[] = [];\r\n const res: TreeNode[] = [];\r\n const all: any = {};\r\n const nodesAll: any = {};\r\n\r\n const availableIds: any[] = data.map(d => d[key]);\r\n\r\n for (const d of data) {\r\n all[d[key]] = d;\r\n const parentId = d[parentKey];\r\n if (parentId) {\r\n stack.push(d);\r\n }\r\n else {\r\n const n = createNode(d);\r\n nodesAll[d[key]] = n;\r\n res.push(n);\r\n }\r\n }\r\n\r\n let count = 0;\r\n while (stack.length > 0 && count < 10000) {\r\n const d = stack.pop();\r\n const parentId = d[parentKey];\r\n if (nodesAll[parentId]) {\r\n const newNode = createNode(d);\r\n nodesAll[d[key]] = newNode;\r\n nodesAll[d[parentKey]].children.push(newNode);\r\n if (props.sortProperty) {\r\n nodesAll[d[parentKey]].children =\r\n nodesAll[d[parentKey]]\r\n .children\r\n .sort((a: any, b: any) => a.data[props.sortProperty!] - b.data[props.sortProperty!]);\r\n }\r\n\r\n } // tengo un padre que no existe\r\n else if (!availableIds.includes(parentId)) {\r\n const n = createNode(d);\r\n nodesAll[d[key]] = n;\r\n res.push(n);\r\n }\r\n else {\r\n stack.splice(0, 0, d);\r\n count++;\r\n }\r\n }\r\n\r\n if (props.expand) {\r\n let _expandedKeys = { ...expandedKeys };\r\n\r\n for (const k of data.map((d: any) => d.key ?? createKey(d))) {\r\n _expandedKeys[k as string] = true;\r\n }\r\n\r\n setExpandedKeys(_expandedKeys);\r\n }\r\n\r\n setNodes(res);\r\n }\r\n\r\n const prepareChildrenNodes = (data: any[]) => {\r\n const res: TreeNode[] = [];\r\n\r\n for (const d of data) {\r\n const node = createNode(d)\r\n res.push(node);\r\n\r\n const children = prepareChildrenNodes(d[props.childrenProperty!] ?? []);\r\n for (const ch of children) {\r\n node.children.push(ch);\r\n }\r\n }\r\n\r\n return res;\r\n }\r\n\r\n const prepareNodes = (data: any[], key: string, parentKey: string) => {\r\n if (props.childrenProperty) {\r\n const res = prepareChildrenNodes(data);\r\n setNodes(res);\r\n if (props.expand) {\r\n setExpandedKeys((keys: any) => {\r\n for (const k of res.map(r => r.key ?? '')) {\r\n keys[k as string] = true;\r\n }\r\n\r\n return keys;\r\n });\r\n }\r\n }\r\n else {\r\n return prepareFlatNodes(data, key, parentKey);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n prepareNodes(\r\n props.data,\r\n props.idProperty ?? 'id',\r\n props.parentProperty ?? 'parentId');\r\n }, [props.data]);\r\n\r\n const renderColumn = (c: string | IUseDataTableColumn, i: number) => {\r\n const cap = (str: string) =>\r\n str ? str.charAt(0).toUpperCase() + str.slice(1)\r\n : str;\r\n\r\n const key = `col_${i}`;\r\n\r\n if (typeof (c) === 'string') {\r\n return \r\n }\r\n else {\r\n const delegateF = createDelegate(c.delegate);\r\n const delegate = delegateF\r\n ? (r: any) => delegateF(r)\r\n : undefined;\r\n\r\n const resolveFn = (node: any) => {\r\n const data = c.field ? node.data[c.field] : node.data;\r\n if (c.render) {\r\n return c.render(data);\r\n }\r\n else if (delegate) {\r\n return delegate(data);\r\n }\r\n }\r\n\r\n return \r\n }\r\n }\r\n\r\n const renderAction = (a: IUseDataTableActions | undefined, i: number) => {\r\n if (a) {\r\n const disabled = (c: T) => {\r\n return typeof (a.disabled) === 'boolean'\r\n ? a.disabled\r\n : a.disabled\r\n ? a.disabled(c)\r\n : false;\r\n }\r\n const key = `action_${i}`;\r\n return {\r\n const c = node.data;\r\n if (disabled(c)) {\r\n return null;\r\n }\r\n else if (a.text) {\r\n return a.onClick(c, e)}>{i18n(a.text)}\r\n }\r\n else if (a.icon && typeof (a.icon) === 'string' && a.icon.startsWith('fa')) {\r\n return a.onClick(c, e)} />;\r\n }\r\n else if (a.icon && typeof (a.icon) === 'function') {\r\n const icon = a.icon(c);\r\n return a.onClick(c, e)} />;\r\n }\r\n else {\r\n return a.onClick(c, e)} />;\r\n }\r\n }} />;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n return (opts: IRenderDataTableOptions = {}) => {\r\n const columns = props.columns ?\r\n props\r\n .columns\r\n .filter(c => c != undefined)\r\n .map((r, i) => renderColumn(r!, i))\r\n : [];\r\n const actions = props.actions\r\n ? props.actions.map(renderAction)\r\n : [];\r\n\r\n const children = [...columns, ...actions];\r\n\r\n return setExpandedKeys(e.value)}\r\n value={nodes}\r\n className='table'\r\n selectionMode={props.selectable ? 'single' : undefined}\r\n header={opts.header}>\r\n {children}\r\n ;\r\n }\r\n}\r\n\r\nexport interface IUseConfirmOpts {\r\n message?: string;\r\n icon?: string;\r\n accept?: any;\r\n reject?: any;\r\n target?: Function;\r\n}\r\n\r\nexport interface IUseConfirmRuntimeOpts {\r\n event: any;\r\n}\r\n\r\nexport function useConfirm(opts: IUseConfirmOpts = {}) {\r\n const { t } = useTranslation();\r\n\r\n const confirm = (args: (Partial & IUseConfirmRuntimeOpts) | any, event: any = undefined) => {\r\n const o = typeof (args) === 'object' && args.target == undefined\r\n ? args\r\n : {};\r\n const target = (args.target\r\n ? args.target\r\n : args.event\r\n ? args.event?.target\r\n : event?.target\r\n ? event?.target\r\n : event?.originalEvent?.target) ?? opts.target?.();\r\n\r\n const performReject = () => {\r\n const a = opts.reject ?? o.reject;\r\n if (a) {\r\n a(args);\r\n }\r\n }\r\n\r\n const performAccept = () => {\r\n const a = opts.accept ?? o.accept;\r\n if (a) {\r\n a(args);\r\n }\r\n }\r\n\r\n confirmPopup({\r\n target: target,\r\n message: (o && o.__typename) ? opts.message : (o.message ?? opts.message),\r\n icon: o.icon ?? opts.icon ?? 'pi pi-exclamation-triangle',\r\n accept: performAccept,\r\n reject: performReject,\r\n acceptLabel: t('confirm.accept'),\r\n rejectLabel: t('confirm.reject'),\r\n });\r\n }\r\n\r\n return confirm;\r\n}\r\n\r\nexport function useStringState(defaultValue: string | undefined = undefined) {\r\n const [state, setState] = React.useState(defaultValue);\r\n\r\n const setFromEvent = (event: any) => {\r\n if (event && event.target && event.target.value) {\r\n setState(event.target.value);\r\n }\r\n else if (event && typeof (event) === 'string') {\r\n setState(event);\r\n }\r\n else {\r\n setState(undefined);\r\n }\r\n }\r\n\r\n const clear = () => setState(undefined);\r\n\r\n return {\r\n hasValue: () => state != undefined,\r\n clear,\r\n value: state,\r\n set: setFromEvent,\r\n }\r\n}\r\n\r\nexport function useNumberState(defaultValue: number | undefined = undefined) {\r\n const [state, setState] = React.useState(defaultValue);\r\n\r\n const setFromEvent = (event: any | undefined) => {\r\n if (event && event.target?.value) {\r\n setState(Number(event.target.value));\r\n }\r\n else if (typeof (event) === 'number') {\r\n setState(event);\r\n }\r\n else {\r\n setState(undefined);\r\n }\r\n }\r\n\r\n const clear = () => setState(undefined);\r\n\r\n return {\r\n clear,\r\n hasValue: () => state != undefined,\r\n value: state,\r\n set: setFromEvent,\r\n }\r\n}\r\n\r\nexport function useBooleanState(defaultValue: boolean | undefined = undefined) {\r\n const [state, setState] = React.useState(defaultValue);\r\n\r\n const setFromEvent = (event: any | undefined) => {\r\n if (event && event.target.value) {\r\n setState(event.target.value === 'true');\r\n }\r\n else if (typeof (event) === 'boolean') {\r\n setState(event);\r\n }\r\n else {\r\n setState(undefined);\r\n }\r\n }\r\n\r\n const setFromBoolean = (value: boolean | undefined) => {\r\n setState(value);\r\n }\r\n\r\n const clear = () => setState(undefined);\r\n\r\n return {\r\n clear,\r\n hasValue: () => state != undefined,\r\n value: state,\r\n set: setFromEvent,\r\n setFromBoolean,\r\n }\r\n}\r\n\r\nexport interface IResolveNameOpts {\r\n id?: string;\r\n name?: string;\r\n defaultName?: string;\r\n translate?: boolean;\r\n}\r\n\r\nexport function useResolveName(data: T[], opts: IResolveNameOpts = {}) {\r\n const [cache, setCache] = React.useState({});\r\n const keyProperty = opts.id ?? 'id';\r\n const nameProperty = opts.name ?? 'name';\r\n\r\n React.useEffect(() => {\r\n setCache({});\r\n }, [data]);\r\n\r\n const resolve = (value: number | string | undefined) => {\r\n if (value && cache[value]) {\r\n return cache[value];\r\n }\r\n else if (value) {\r\n const d: any = data.find((obj: any) => obj[keyProperty] === value);\r\n if (d) {\r\n const resolvedValue = opts.translate\r\n ? i18n(d[nameProperty])\r\n : d[nameProperty];\r\n setCache((c: any) => ({ ...c, [value]: resolvedValue }));\r\n return resolvedValue;\r\n }\r\n else {\r\n return opts.defaultName;\r\n }\r\n }\r\n else {\r\n return opts.defaultName;\r\n }\r\n }\r\n\r\n return resolve;\r\n}\r\n\r\nexport interface IUseMessage {\r\n errorMessage?: string;\r\n successMessage?: string;\r\n autoClear?: boolean;\r\n clearAfterMillis?: number;\r\n}\r\n\r\nconst AUTO_CLEAR_MILLIS = 5000;\r\n\r\nexport function useMessage(opts: IUseMessage = {}) {\r\n const [error, setError] = React.useState();\r\n const [success, setSuccess] = React.useState();\r\n const [successMessage, setSuccessMessage] = React.useState(opts.successMessage);\r\n\r\n const clear = () => {\r\n setError(undefined);\r\n setSuccess(undefined);\r\n }\r\n\r\n const setFromOption = (result: IOption, overrideOpts: Partial = {}) => {\r\n clear();\r\n\r\n if (result.error || result.isError) {\r\n setError(i18n(result.error || overrideOpts.errorMessage || 'error'));\r\n }\r\n else if (result.hasValue) {\r\n setSuccess(result.value);\r\n setSuccessMessage(overrideOpts.successMessage ?? opts.successMessage);\r\n }\r\n\r\n if (opts.autoClear) {\r\n setTimeout(clear, AUTO_CLEAR_MILLIS);\r\n }\r\n\r\n if (opts.clearAfterMillis) {\r\n setTimeout(clear, opts.clearAfterMillis);\r\n }\r\n }\r\n\r\n const render = (fn: Function | undefined = undefined) => {\r\n const comp = success\r\n ? \r\n : error\r\n ? \r\n : null;\r\n\r\n if (comp && fn) {\r\n return fn(comp);\r\n }\r\n else {\r\n return comp;\r\n }\r\n }\r\n\r\n const renderIfError = (fn: Function | undefined = undefined) => {\r\n const comp = success\r\n ? null\r\n : error\r\n ? \r\n : null;\r\n\r\n if (comp && fn) {\r\n return fn(comp);\r\n }\r\n else {\r\n return comp;\r\n }\r\n }\r\n\r\n const hasError = () => error != undefined;\r\n\r\n const isSuccess = () => success != undefined;\r\n\r\n return {\r\n isSuccess,\r\n set: setFromOption,\r\n setError,\r\n clear,\r\n getError: () => error,\r\n hasError,\r\n render,\r\n renderIfError\r\n }\r\n}\r\n\r\nexport interface IUseErrorOpts { }\r\n\r\nexport function useError(opts: IUseErrorOpts = {}) {\r\n const [value, setValue] = React.useState();\r\n\r\n const clear = () => {\r\n setValue(undefined);\r\n }\r\n\r\n const setFromOption = (result: IOption) => {\r\n if (result.error) {\r\n setValue(result.error);\r\n }\r\n else {\r\n clear();\r\n }\r\n }\r\n\r\n const render = () => {\r\n if (value) {\r\n return \r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n const hasError = () => value != undefined;\r\n\r\n return {\r\n set: setValue,\r\n clear,\r\n hasError,\r\n render,\r\n setFromOption,\r\n }\r\n}\r\n\r\nexport interface IUseRemoteData {\r\n lazy?: boolean;\r\n parameters?: any;\r\n disabled?: boolean;\r\n\r\n map?: (input: T) => T,\r\n}\r\n\r\nexport interface IRemoteData {\r\n query: (...params: any) => Promise;\r\n value: T;\r\n loading: ILoading;\r\n isLoading: () => boolean,\r\n hasValues: () => boolean,\r\n renderLoading: Function,\r\n}\r\n\r\nexport function useRemoteData(provider: Function, opts: IUseRemoteData = {}): IRemoteData {\r\n const [data, setData] = React.useState();\r\n const loading = useLoading(!opts.lazy);\r\n\r\n const initialize = async (...parameters: any) => {\r\n loading.start();\r\n\r\n const finalParameters = parameters && parameters.length > 0\r\n ? parameters\r\n : opts.parameters && opts.parameters.length\r\n ? opts.parameters\r\n : [opts.parameters];\r\n\r\n const q = provider(...finalParameters);\r\n\r\n let resp: any = undefined;\r\n if (q.then) {\r\n resp = await q;\r\n }\r\n else {\r\n resp = q;\r\n }\r\n const result: T = opts.map ? opts.map(resp) : resp;\r\n\r\n setData(result);\r\n\r\n loading.stop();\r\n\r\n return result;\r\n }\r\n\r\n React.useEffect(() => {\r\n if (!opts.lazy && opts.disabled != true) {\r\n initialize();\r\n }\r\n }, []);\r\n\r\n const query = (...params: any) => {\r\n return initialize(...params);\r\n }\r\n\r\n const renderLoading = (opts: any = undefined) => {\r\n return loading.renderBox(opts);\r\n }\r\n\r\n return {\r\n query,\r\n value: data as T,\r\n loading,\r\n isLoading: loading.isLoading,\r\n renderLoading,\r\n hasValues: () => data != undefined && !loading.isLoading(),\r\n }\r\n}\r\n\r\nexport interface IPaginatorOpts {\r\n className?: string;\r\n data: IPaginateResult | undefined,\r\n onChange: (page: number, rows: number | undefined) => void,\r\n onExport?: () => void,\r\n rowNumbers?: number[],\r\n}\r\n\r\nexport function usePaginator(opts: IPaginatorOpts) {\r\n const { t } = useTranslation();\r\n const [currentPage, setCurrentPage] = React.useState(0);\r\n const [currentRows, setCurrentRows] = React.useState(opts.rowNumbers?.[0] ?? 10);\r\n\r\n const doOnChange = (p: any) => {\r\n if (p.page != currentPage || p.rows != currentRows) {\r\n opts.onChange(p.page, p.rows);\r\n }\r\n setCurrentPage(p.page);\r\n setCurrentRows(p.rows);\r\n }\r\n\r\n const render = (fn?: any) => {\r\n const first = opts.data ? opts.data.page * opts.data.limit : 0;\r\n\r\n return
\r\n doOnChange(p)} />\r\n {opts.data?.data?.length}/{opts.data?.total}\r\n {opts.onExport != undefined && \r\n opts.onExport && opts.onExport()} />\r\n }\r\n {fn != undefined && fn}\r\n
\r\n }\r\n\r\n return render;\r\n}\r\n\r\nexport function useResolveCountryAndRegion(countries: ICountry[]) {\r\n const resolve = (data: any) => {\r\n const { countryId, regionId, countyId } = data;\r\n\r\n const country = countries.find(c => c.id == countryId);\r\n const region = country\r\n ? country.regions.find(r => r.id == regionId)\r\n : undefined;\r\n const county = region\r\n ? region.counties.find(c => c.id == countyId)\r\n : undefined;\r\n\r\n return [country, region, county]\r\n .filter(t => t != undefined)\r\n .map(t => t?.name)\r\n .join(', ');\r\n }\r\n\r\n return resolve;\r\n}\r\n\r\ntype IUseKeyListener = {\r\n handle?: Function;\r\n key?: string;\r\n keyCode?: number;\r\n keyCtrl?: boolean;\r\n}\r\n\r\nfunction isUseKeyListenerOpts(a: any): a is IUseKeyListener {\r\n return typeof (a.handle) === 'function';\r\n}\r\n\r\nexport function useKeyListener(fn: Function | IUseKeyListener, rawOpts: IUseKeyListener = {}) {\r\n const opts = isUseKeyListenerOpts(fn) ? fn : { ...rawOpts, handle: fn };\r\n\r\n const shouldHandleEvent = (event: React.KeyboardEvent) => {\r\n let handle = true;\r\n if (opts.key) {\r\n handle = handle && event.key === opts.key;\r\n }\r\n if (opts.keyCode) {\r\n handle = handle && event.keyCode === opts.keyCode;\r\n }\r\n if (opts.keyCtrl) {\r\n handle = handle && event.ctrlKey === opts.keyCtrl;\r\n }\r\n\r\n return handle;\r\n }\r\n\r\n const handleKey = (event: any) => {\r\n if (shouldHandleEvent(event)) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n opts.handle?.(event);\r\n\r\n return false;\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n document.addEventListener('keydown', handleKey);\r\n\r\n return () => {\r\n document.removeEventListener('keydown', handleKey);\r\n }\r\n }, []);\r\n}\r\n\r\nexport function useHideBodyScrollbar() {\r\n const hide = () => {\r\n document.body.classList.add('no-scroll');\r\n }\r\n\r\n const show = () => {\r\n document.body.classList.remove('no-scroll');\r\n }\r\n\r\n React.useEffect(() => {\r\n hide();\r\n\r\n return show;\r\n }, []);\r\n}\r\n\r\nexport function useScheduler() {\r\n const s = React.useRef(false);\r\n\r\n const schedule = (fn: Function, delay: number) => {\r\n if (s.current === false) {\r\n s.current = true;\r\n setTimeout(() => {\r\n s.current = false;\r\n // console.log('scheduler:fire');\r\n fn();\r\n }, delay);\r\n }\r\n else {\r\n // console.log('scheduler:inhibit');\r\n }\r\n }\r\n\r\n return {\r\n schedule: schedule\r\n }\r\n}\r\n\r\nexport const useCallbackState = (initialValue: any) => {\r\n const [state, _setState] = React.useState(initialValue);\r\n const callbackQueue = React.useRef([]);\r\n React.useEffect(() => {\r\n callbackQueue.current.forEach((cb: any) => cb(state));\r\n callbackQueue.current = [];\r\n }, [state]);\r\n\r\n const setState = (newValue: any, callback: any) => {\r\n _setState(newValue);\r\n if (callback && typeof callback === \"function\") {\r\n callbackQueue.current.push(callback);\r\n }\r\n };\r\n return [state, setState];\r\n};\r\n\r\nexport function useDebounce(value: any, delay: number) {\r\n const [debouncedValue, setDebouncedValue] = React.useState(value);\r\n React.useEffect(() => {\r\n const handler = setTimeout(() => {\r\n setDebouncedValue(value);\r\n }, delay);\r\n return () => clearTimeout(handler);\r\n }, [value, delay]);\r\n return debouncedValue;\r\n}\r\n\r\ntype DispatcherProps = {\r\n dispatch: Function,\r\n handlers: any,\r\n delay?: number | undefined,\r\n};\r\n\r\nexport const useDispatcher = (props: DispatcherProps) => {\r\n const DEFAULT_DELAY = 500;\r\n const ts = React.useRef(0);\r\n const sent = React.useRef(false);\r\n const values = React.useRef({});\r\n\r\n const filterValues = () => {\r\n const res: any = {};\r\n\r\n for (const k of Object.keys(values.current)) {\r\n if (values.current[k] && values.current[k] != '') {\r\n res[k] = values.current[k];\r\n }\r\n }\r\n\r\n return res;\r\n }\r\n\r\n const enqueue = () => {\r\n const nts = new Date().getTime();\r\n if (ts.current == 0) {\r\n ts.current = nts;\r\n }\r\n if (nts - ts.current > (props.delay ?? DEFAULT_DELAY)) {\r\n if (sent.current) {\r\n return;\r\n }\r\n sent.current = true;\r\n ts.current = nts;\r\n props.dispatch(filterValues());\r\n }\r\n else {\r\n setTimeout(enqueue, props.delay ?? DEFAULT_DELAY);\r\n }\r\n }\r\n\r\n const append = (name: string, event: any) => {\r\n const value = event.target.value;\r\n props.handlers[name]?.(value);\r\n if (values.current[name] != value) {\r\n sent.current = false;\r\n values.current = { ...values.current, [name]: value };\r\n setTimeout(enqueue, props.delay ?? DEFAULT_DELAY);\r\n }\r\n }\r\n\r\n return {\r\n onEvent: (name: string) => (e: any) => append(name, e),\r\n append,\r\n }\r\n}\r\n\r\nexport function onChange(callback: Function, deps: any[]) {\r\n const prev = React.useRef(JSON.stringify(deps));\r\n\r\n React.useEffect(() => {\r\n if (prev.current != JSON.stringify(deps)) {\r\n prev.current = JSON.stringify(deps);\r\n callback();\r\n }\r\n }, [deps]);\r\n}\r\n\r\nexport default {\r\n onChange,\r\n useCallbackState,\r\n useHideBodyScrollbar,\r\n onNotification,\r\n useDataTable,\r\n useDialogs,\r\n useError,\r\n useFormDialog,\r\n useLoading,\r\n useMemoized,\r\n useNumberState,\r\n usePaginator,\r\n useResolveName,\r\n useResolveCountryAndRegion,\r\n useKeyListener,\r\n useScheduler,\r\n observeValue,\r\n useDispatcher,\r\n}\r\n\r\n","import {\r\n IDocumentType, IPropertyGroupType, IPropertyType,\r\n IWork, IWorkPermission, IWorkShift, IWorkspace, IDepartment,\r\n INotificationTemplate,\r\n IWorkerSettings,\r\n IMachinerySettings,\r\n IContractorSettings,\r\n IJobSettings,\r\n IEventTrigger,\r\n} from '@models';\r\nimport { IUserData } from '@models/identity';\r\nimport {\r\n IRequirementGroup, IRequirementType, IRequirementTypeDependency,\r\n IRequirementTypeDocumentRestriction, IRequirementTypeSuggestion, IRequirementTypeValidationHolder\r\n} from '@models/requirements';\r\nimport { IFieldValidation, INotificationMessage, IWorkHasModule } from '@models/works';\r\nimport { getClient, gql, noCache, m, q } from './graphql';\r\nimport { ensureType, formatProperty } from './utils';\r\n\r\nexport async function getEventTriggers(workId: number) {\r\n return q(`query GetEventTriggers($workId: Int!) {\r\n eventTriggers(workId: $workId) {\r\n id, name, code, workId, eventTriggerTypeId, resourceTypeId,\r\n }\r\n }`, { workId }, { returnPath: 'eventTriggers' });\r\n}\r\n\r\nexport async function saveEventTrigger(workId: number, data: IEventTrigger) {\r\n return q(`mutation SaveEventTrigger($workId: Int!, $data: EventTriggerGraphInputType!) {\r\n saveEventTrigger(workId: $workId, data: $data) {\r\n isError, error, value\r\n }\r\n }`, { workId, data }, { returnPath: 'saveEventTrigger' });\r\n}\r\n\r\nexport async function getLogs(filter: string | null = null) {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetLogs($filter: String) {\r\n logs(filter: $filter) {\r\n id, userId, dateTime, action, actionData, ctx, data\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query,\r\n fetchPolicy: noCache,\r\n variables: {\r\n filter,\r\n }\r\n });\r\n\r\n return resp.data.logs;\r\n}\r\n\r\nexport async function initialize() {\r\n const client = getClient();\r\n const query = gql`\r\nquery Initialize {\r\n availableModules {\r\n id, name, description, version, resources, hasFrontend, frontendResource\r\n },\r\n users {\r\n id, userName, email, roles, policies, departments\r\n },\r\n roles {\r\n id, name\r\n },\r\n works {\r\n id, name, description, countryId, settings, defaultEmail, helpDeskEmail, footerResource, contextData, users {\r\n id, userName, email, roles, policies\r\n },\r\n workHasModules {\r\n id, workId, moduleName, isActive,\r\n },\r\n settings,\r\n contractorInvitationTemplateId,\r\n resetPasswordTemplateId,\r\n workspaces {\r\n id, name, description, isActive, countryId,\r\n regionId, countyId, contact, address,\r\n location, postalCode, phone, fax, email,\r\n properties {\r\n id, propertyGroupTypeId, workspaceId, value\r\n }\r\n },\r\n legalForms {\r\n id, name, hideContractorProperties, workerTypes{\r\n id, workerType{\r\n id, name\r\n }\r\n }\r\n },\r\n workShifts {\r\n id, name, startMinutes, endMinutes\r\n },\r\n propertyGroupTypes {\r\n id, name, title, styleClassName, description, containerType, style, objectType, isInternal, mandatory, hidable,\r\n properties {\r\n id, name, title, typeId, placeholder, help, parentId, propertyOrder\r\n }\r\n },\r\n requirementValidationTypes {\r\n id, name\r\n },\r\n contractorSettings {\r\n id, workId, showGeneralIndicators, legalFormMandatory, jhcStartDateMandatory, jhcDescriptionMandatory, cifCantBeRepeated, canAddSubWorkers, canAddSubMachineries,\r\n },\r\n machinerySettings {\r\n id, workId, showGeneralIndicators, subTypeMandatory, onlyLicenseNumber,\r\n },\r\n workerSettings {\r\n id, workId, showGeneralIndicators, showWorkerImage, workerTypeIsMandatory\r\n },\r\n jobSettings {\r\n id, workId, skipInformationLoadedState,\r\n colorizeContractorIndicators,\r\n freeRequirementsAreMandatory,\r\n omitJobHasContractorDefaultNotification,\r\n showResourceIncidenceIndicator,\r\n jobHasContractorNotificationTargetPolicy,\r\n informationLoadedNotificationPolicy,\r\n noInformationLoadedState,\r\n },\r\n departments {\r\n id, name, isOblique\r\n },\r\n }\r\n}`;\r\n\r\n const resp = await client.query({ query, fetchPolicy: noCache });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function getUserById(id: number) {\r\n return q(`\r\nquery GetUserById($id: Int!) {\r\n userById(id: $id) {\r\n id, userName, email, roles, policies\r\n }\r\n}`, { id }, { returnPath: 'userById' });\r\n}\r\n\r\nexport async function getUsers() {\r\n const client = getClient();\r\n const query = gql`\r\nquery Initialize {\r\n users {\r\n id, userName, email, roles, policies\r\n },\r\n roles {\r\n id, name\r\n }\r\n}`;\r\n\r\n const resp = await client.query({ query, fetchPolicy: noCache });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function saveUser(user: IUserData) {\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation SaveUser($user: UserInputType!) {\r\n saveUser(user: $user) {\r\n isError, error, value\r\n }\r\n}`;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: { user }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function getWorks() {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetWorks {\r\n works {\r\n id, name, description, countryId, settings, defaultEmail, helpDeskEmail, footerResource, contextData, users {\r\n id, userName, email, roles, policies\r\n },\r\n workHasModules {\r\n id, workId, moduleName, isActive,\r\n },\r\n contractorSettings {\r\n id, workId, showGeneralIndicators, legalFormMandatory, jhcStartDateMandatory, jhcDescriptionMandatory, cifCantBeRepeated, canAddSubWorkers, canAddSubMachineries,\r\n },\r\n workerSettings {\r\n id, workId, showGeneralIndicators, showWorkerImage, workerTypeIsMandatory\r\n },\r\n machinerySettings {\r\n id, workId, showGeneralIndicators, subTypeMandatory, onlyLicenseNumber,\r\n },\r\n jobSettings {\r\n id, workId, skipInformationLoadedState, colorizeContractorIndicators, freeRequirementsAreMandatory,\r\n omitJobHasContractorDefaultNotification,\r\n showResourceIncidenceIndicator,\r\n jobHasContractorNotificationTargetPolicy,\r\n informationLoadedNotificationPolicy,\r\n noInformationLoadedState,\r\n },\r\n settings,\r\n contractorInvitationTemplateId,\r\n resetPasswordTemplateId,\r\n workspaces {\r\n id, name, description, isActive, countryId,\r\n regionId, countyId, contact, address,\r\n location, postalCode, phone, fax, email,\r\n properties {\r\n id, propertyGroupTypeId, workspaceId, value\r\n }\r\n },\r\n legalForms{\r\n id, name, workerTypes{\r\n id, workerType{\r\n id, name\r\n }\r\n }\r\n },\r\n workShifts {\r\n id, name, startMinutes, endMinutes\r\n },\r\n propertyGroupTypes {\r\n id, name, title, styleClassName, description, containerType, style, objectType, isInternal, mandatory, hidable,\r\n properties {\r\n id, name, title, typeId, placeholder, help, parentId, propertyOrder\r\n }\r\n },\r\n requirementValidationTypes {\r\n id, name\r\n },\r\n departments {\r\n id, name, isOblique\r\n },\r\n }\r\n}`;\r\n\r\n const resp = await client.query({ query, fetchPolicy: noCache });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function getWorkResources(id: number) {\r\n return q(`query GetWorkResources($id: Int!) {\r\n work(id: $id) {\r\n users {\r\n id, userName, email,\r\n },\r\n departments {\r\n id, name, code, description, isOblique, notifyJobCreation\r\n },\r\n workFunctions {\r\n id, name\r\n }\r\n }\r\n }`, { id }, { returnPath: 'work' });\r\n}\r\n\r\nexport async function getWorkDepartments(id: number) {\r\n return q(`query GetWorkDepartments($id: Int!) {\r\n work(id: $id) {\r\n departments {\r\n id, name, code, description, isOblique, notifyJobCreation, policies\r\n }\r\n }\r\n }`, { id }, { returnPath: 'work.departments' });\r\n}\r\n\r\nexport async function saveDepartment(inputData: IDepartment) {\r\n const department = ensureType(inputData, {\r\n exclude: ['workers']\r\n });\r\n\r\n return m(`mutation SaveDepartment($department: DepartmentInputType!) {\r\n saveDepartment(department: $department) {\r\n hasValue, value, error\r\n }\r\n }`, { department }, { returnPath: 'saveDepartment' });\r\n}\r\n\r\nexport async function getWork(id: number) {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetWorks($id: Int!) {\r\n work(id: $id) {\r\n id, name, description, countryId, settings, helpDeskEmail, footerResource, contextData, users {\r\n id, userName, email, roles, policies\r\n },\r\n workHasModules {\r\n id, workId, moduleName, isActive,\r\n },\r\n contractorSettings {\r\n id, workId, showGeneralIndicators, legalFormMandatory, jhcStartDateMandatory, jhcDescriptionMandatory, cifCantBeRepeated, canAddSubWorkers, canAddSubMachineries\r\n },\r\n workerSettings {\r\n id, workId, showGeneralIndicators, showWorkerImage, workerTypeIsMandatory\r\n },\r\n machinerySettings {\r\n id, workId, showGeneralIndicators, subTypeMandatory, onlyLicenseNumber,\r\n },\r\n jobSettings {\r\n id, workId, skipInformationLoadedState, colorizeContractorIndicators, freeRequirementsAreMandatory,\r\n omitJobHasContractorDefaultNotification,\r\n showResourceIncidenceIndicator,\r\n jobHasContractorNotificationTargetPolicy,\r\n informationLoadedNotificationPolicy,\r\n noInformationLoadedState,\r\n },\r\n settings,\r\n contractorInvitationTemplateId,\r\n resetPasswordTemplateId,\r\n workspaces {\r\n id, name, description, isActive, countryId,\r\n regionId, countyId, contact, address,\r\n location, postalCode, phone, fax, email,\r\n properties {\r\n id, propertyGroupTypeId, workspaceId, value\r\n }\r\n },\r\n legalForms {\r\n id, name, hideContractorProperties, workerTypes {\r\n id, workerType {\r\n id, name\r\n }\r\n }\r\n },\r\n workShifts {\r\n id, name, startMinutes, endMinutes\r\n },\r\n propertyGroupTypes {\r\n id, name, title, styleClassName, description, containerType, style, objectType, isInternal, mandatory, hidable,\r\n properties {\r\n id, name, title, typeId, placeholder, help, parentId, propertyOrder\r\n }\r\n },\r\n requirementGroups {\r\n id, name, title, description, orderValue, legend\r\n },\r\n requirementValidationTypes {\r\n id, name\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n id\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function saveWork(work: Partial) {\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation SaveWork($work: WorkInputType!) {\r\n saveWork(work: $work) {\r\n isError, error, value\r\n }\r\n}`;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: { work }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\n// workspaces\r\nexport async function saveWorkspace(inputData: IWorkspace) {\r\n const workspace = {\r\n ...inputData,\r\n properties: inputData.properties?.map(formatProperty(inputData.workId))\r\n }\r\n return m(`\r\nmutation SaveWorkspace($workspace: WorkspaceInputType!) {\r\n saveWorkspace(workspace: $workspace) {\r\n isError, error, value, hasValue\r\n }\r\n}\r\n `, { workspace }, { returnPath: 'saveWorkspace' });\r\n}\r\n\r\nexport async function removeWorkspace(id: number) {\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation RemoveWorkspace($id: Int!) {\r\n removeWorkspace(id: $id) {\r\n isError, error, value\r\n }\r\n}\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n id\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\n// work shifts\r\nexport async function saveWorkShift(workShift: IWorkShift) {\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation SaveWorkShift($workShift: WorkShiftInputType!) {\r\n saveWorkShift(workShift: $workShift) {\r\n isError, error, value\r\n }\r\n}\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n workShift\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function removeWorkShift(id: number) {\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation RemoveWorkShift($id: Int!) {\r\n removeWorkShift(id: $id) {\r\n isError, error, value\r\n }\r\n}\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n id\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\n// document types\r\nexport async function getDocumentTypes() {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetDocumentTypes {\r\n documentTypes {\r\n id, name, description, isActive\r\n },\r\n}`;\r\n\r\n const resp = await client.query({ query, fetchPolicy: noCache });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function saveDocumentType(dt: IDocumentType) {\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation SaveDocumentType($doc: DocumentTypeInputType!) {\r\n saveDocumentType(documentType: $doc) {\r\n isError, error, value\r\n }\r\n}`;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: { doc: dt }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function removeDocumentType(id: number) {\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation RemoveDocumentType($id: Int!) {\r\n removeDocumentType(id: $id) {\r\n isError, error, value\r\n }\r\n}\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n id\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function associateAppUserToWorker(\r\n workId: number,\r\n workerId: number,\r\n user: any,\r\n forceNew: boolean | undefined = false\r\n) {\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation AssociateAppUserToWorker(\r\n $workId: Int!,\r\n $workerId: Int!,\r\n $user: UserInputType!,\r\n $forceNew: Boolean) {\r\n associateAppUserToWorker(workId: $workId, workerId: $workerId, user: $user, forceNewUser: $forceNew) {\r\n isError, error, value, hasValue\r\n }\r\n}`;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: { workId, workerId, user, forceNew }\r\n });\r\n\r\n return resp.data.associateAppUserToWorker;\r\n}\r\n\r\nexport async function loadWorkPermissions(workId: number) {\r\n return q(`query GetWorkPermissions($id: Int!) {\r\n work(id: $id) {\r\n permissions {\r\n id, action, name, roles, policies, expression\r\n }\r\n }\r\n }`, { id: workId }, { returnPath: 'work.permissions' });\r\n}\r\n\r\nexport async function saveWorkPermission(permission: IWorkPermission) {\r\n return m(`mutation SaveWorkPermission($permission: PermissionInputType!) {\r\n saveWorkPermission(permission: $permission) {\r\n isError, error, value\r\n }\r\n }`, { permission });\r\n}\r\n\r\nexport async function removeWorkPermission(workId: number, id: number) {\r\n return m(`mutation RemoveWorkPermission($workId: Int!, $id: Int!) {\r\n removeWorkPermission(workId: $workId, id: $id) {\r\n isError, error, value\r\n }\r\n }`, { workId, id });\r\n}\r\n\r\nexport async function getJobPropertyGroups(workId: number) {\r\n return q(`query GetJobPropertyGroups($workId: Int!) {\r\n work(id: $workId) {\r\n jobPropertyGroups {\r\n id, name, title, description, styleClassName,\r\n properties {\r\n id, name, title, propertyType, parentId\r\n }\r\n }\r\n }\r\n }`, { workId }, {\r\n returnPath: 'work.jobPropertyGroups'\r\n });\r\n}\r\n\r\nexport async function getPropertyGroupTypes(workId: number) {\r\n return q(`query GetPropertyGroupTypes($workId: Int!) {\r\n work(id: $workId) {\r\n propertyGroupTypes {\r\n id, name, title, description, styleClassName, mandatory, hidable,\r\n objectType, style, isInternal\r\n properties {\r\n id, name, title, help, placeholder, typeId, parentId, propertyOrder\r\n }\r\n }\r\n }\r\n }`, { workId }, {\r\n returnPath: 'work.propertyGroupTypes'\r\n });\r\n}\r\n\r\nexport async function savePropertyGroupType(workId: number, data: IPropertyGroupType) {\r\n const input = {\r\n workId,\r\n id: data.id,\r\n name: data.name,\r\n title: data.title,\r\n description: data.description,\r\n containerType: data.containerType,\r\n styleClassName: data.styleClassName,\r\n objectType: data.objectType,\r\n isActive: true,\r\n isInternal: data.isInternal,\r\n style: data.style,\r\n hidable: data.hidable ?? false,\r\n mandatory: data.mandatory ?? false,\r\n };\r\n\r\n return m(`mutation SavePropertyGroupType($workId: Int!, $input: PropertyGroupTypeGraphInputType!) {\r\n savePropertyGroupType(workId: $workId, data: $input) {\r\n isError, error, value\r\n }\r\n }`, { input, workId }, { returnPath: 'savePropertyGroupType' });\r\n}\r\n\r\nexport async function removePropertyGroupType(workId: number, id: number) {\r\n return m(`mutation RemovePropertyGroupType($workId: Int!, $id: Int!) {\r\n removePropertyGroupType(workId: $workId, id: $id) {\r\n isError, error, value\r\n }\r\n }`, { id, workId }, { returnPath: 'removePropertyGroupType' });\r\n}\r\n\r\nexport async function savePropertyType(workId: number, data: IPropertyType) {\r\n const input = {\r\n id: data.id,\r\n name: data.name,\r\n title: data.title,\r\n typeId: data.typeId,\r\n parentId: data.parentId,\r\n placeholder: data.placeholder,\r\n isActive: true,\r\n help: data.help,\r\n propertyOrder: data.propertyOrder,\r\n selectOptions: data.selectOptions,\r\n };\r\n\r\n return m(`mutation SavePropertyType($workId: Int!, $input: PropertyTypeGraphInputType!) {\r\n savePropertyType(workId: $workId, data: $input) {\r\n isError, error, value\r\n }\r\n }`, { input, workId }, { returnPath: 'savePropertyType' });\r\n}\r\n\r\nexport async function removePropertyType(workId: number, id: number) {\r\n return m(`mutation RemovePropertyType($workId: Int!, $id: Int!) {\r\n removePropertyType(workId: $workId, id: $id) {\r\n isError, error, value\r\n }\r\n }`, { workId, id }, { returnPath: 'removePropertyType' });\r\n}\r\n\r\nexport async function getWorkRequirementGroups(workId: number, requirementTargetType: number | undefined = undefined) {\r\n const data = await q(`query WorkRequirementGroups($workId: Int!) {\r\n work(id: $workId) {\r\n requirementGroups {\r\n id, name, title, description, color, style, icon, workId, orderValue, legend,\r\n requirementTypes {\r\n id, workId, name, title, description, targetType, requirementGroupId, kindId, isActive,\r\n expirationTypeId, expirationValue, expirationThreshold, policy, validationTypeId,\r\n isShared, expression, isPublic, isResourcePicture,\r\n criteria, template,\r\n orderValue, color, notifyContractors, notifyTitle, notifyPolicy, notifyResponsible,\r\n expirationRequired,\r\n requireJobInformationAccess,\r\n messageTemplateId,\r\n billingTypeId,\r\n dependencies {\r\n id, requirementTypeId, dependsOnRequirementId, dependencyType, propagate,\r\n },\r\n documentRestrictions {\r\n id, requirementTypeId, name, title, excludeMimeTypes, mimeTypes, regexp, limitFileSize, isActive\r\n },\r\n suggestions {\r\n id, name, requirementTypeId,\r\n },\r\n validationHolders {\r\n id, requirementTypeId, policy, isBlocking, validationOrder, appUserId, departmentId,\r\n workFunctionId, onlyNotifications,\r\n jobResponsible, jobRso, jobImpliedRso,\r\n optional\r\n }\r\n }\r\n }\r\n }\r\n }`, { workId }, { returnPath: 'work.requirementGroups' });\r\n\r\n const filterRequirementType = (r: IRequirementType) =>\r\n r.targetType == requirementTargetType;\r\n\r\n if (requirementTargetType) {\r\n return data.map((g: IRequirementGroup) => {\r\n return { ...g, requirementTypes: g.requirementTypes?.filter(filterRequirementType) };\r\n });\r\n }\r\n else {\r\n return data;\r\n }\r\n}\r\n\r\nexport function getRequirementType(workId: number, id: number) {\r\n return q(`query GetRequirementType($workId: Int!, $id: Int!) {\r\n work(id: $workId) {\r\n requirementType(id: $id) {\r\n id, workId, name, title, description, targetType, requirementGroupId, kindId, isActive,\r\n expirationTypeId, expirationValue, policy,\r\n isShared, expression, validationTypeId, isPublic, isResourcePicture,\r\n criteria, template,\r\n color, orderValue, notifyContractors, notifyTitle, , notifyPolicy, notifyResponsible,\r\n expirationRequired,\r\n requireJobInformationAccess,\r\n dependencies {\r\n id, requirementTypeId, dependsOnRequirementId, dependencyType, propagate\r\n },\r\n documentRestrictions {\r\n id, requirementTypeId, name, title, excludeMimeTypes, mimeTypes, regexp, limitFileSize, isActive\r\n },\r\n suggestions {\r\n id, name, requirementTypeId,\r\n },\r\n validationHolders {\r\n id, requirementTypeId, policy, isBlocking, validationOrder, appUserId, departmentId, workFunctionId,\r\n onlyNotifications,\r\n jobResponsible, jobRso, jobImpliedRso, optional,\r\n }\r\n }\r\n }\r\n }`, { workId, id }, { returnPath: 'work.requirementType' });\r\n}\r\n\r\nexport function saveWorkRequirementGroup(workId: number, inputData: IRequirementGroup) {\r\n const data = ensureType(inputData, {\r\n exclude: 'requirementTypes',\r\n });\r\n\r\n return m(`mutation SaveWorkRequirementGroup($workId: Int!, $data: RequirementGroupGraphInputType!) {\r\n saveRequirementGroup(workId: $workId, data: $data) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, data }, { returnPath: 'saveRequirementGroup' });\r\n}\r\n\r\nexport function saveWorkRequirementType(workId: number, inputData: IRequirementType) {\r\n const data = ensureType(inputData, {\r\n exclude: ['dependencies', 'documentRestrictions', 'suggestions', 'validationHolders'],\r\n });\r\n console.log('Save Work Data', data);\r\n\r\n return m(`mutation SaveWorkRequirementType($workId: Int!, $data: RequirementTypeGraphInputType!) {\r\n saveRequirementType(workId: $workId, data: $data) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, data }, { returnPath: 'saveRequirementType' });\r\n}\r\n\r\nexport function removeWorkRequirementTypeDependency(workId: number, requirementTypeDependencyId: number) {\r\n return m(`mutation RemoveWorkRequirementTypeDependency($workId: Int!, $requirementTypeDependencyId: Int!) {\r\n removeRequirementTypeDependency(workId: $workId, requirementTypeDependencyId: $requirementTypeDependencyId) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, requirementTypeDependencyId }, { returnPath: 'removeRequirementTypeDependency' });\r\n}\r\n\r\nexport function saveRequirementTypeSuggestion(workId: number, data: IRequirementTypeSuggestion) {\r\n return m(`mutation SaveRequirementTypeSuggestion($workId: Int!, $data: RequirementTypeSuggestionGraphInputType!) {\r\n saveRequirementTypeSuggestion(workId: $workId, data: $data) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, data }, { returnPath: 'saveRequirementTypeSuggestion' });\r\n}\r\n\r\nexport function removeRequirementTypeSuggestion(workId: number, id: number) {\r\n return m(`mutation RemoveRequirementTypeSuggestion($workId: Int!, $id: Int!) {\r\n removeRequirementTypeSuggestion(workId: $workId, id: $id) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, id }, { returnPath: 'removeRequirementTypeSuggestion' });\r\n}\r\n\r\nexport function saveRequirementTypeValidationHolder(workId: number, inputData: IRequirementTypeValidationHolder) {\r\n const data = ensureType(inputData);\r\n return m(`mutation SaveRequirementTypeValidationHolder($workId: Int!, $data: RequirementTypeValidationHolderGraphInputType!) {\r\n saveRequirementTypeValidationHolder(workId: $workId, data: $data) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, data }, { returnPath: 'saveRequirementTypeValidationHolder' });\r\n}\r\n\r\nexport function removeRequirementTypeValidationHolder(workId: number, id: number) {\r\n return m(`mutation RemoveRequirementTypeValidationHolder($workId: Int!, $id: Int!) {\r\n removeRequirementTypeValidationHolder(workId: $workId, id: $id) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, id }, { returnPath: 'removeRequirementTypeValidationHolder' });\r\n}\r\n\r\nexport function saveWorkRequirementTypeDependency(workId: number, inputData: IRequirementTypeDependency) {\r\n const data = ensureType(inputData);\r\n return m(`mutation SaveWorkRequirementTypeDependency($workId: Int!, $data: RequirementTypeDependencyGraphInputType!) {\r\n saveRequirementTypeDependency(workId: $workId, data: $data) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, data }, { returnPath: 'saveRequirementTypeDependency' });\r\n}\r\n\r\nexport function removeRequirementTypeDocumentRestriction(workId: number, requirementTypeId: number, restrictionId: number) {\r\n return m(`mutation RemoveRequirementTypeDocumentRestriction($workId: Int!, $requirementTypeId: Int!, $restrictionId: Int!) {\r\n removeRequirementTypeDocumentRestriction(workId: $workId, requirementTypeId: $requirementTypeId, id: $restrictionId) {\r\n hasValue, value, error\r\n }\r\n }`,\r\n { workId, requirementTypeId, restrictionId },\r\n { returnPath: 'removeRequirementTypeDocumentRestriction' });\r\n}\r\n\r\nexport function saveRequirementTypeDocumentRestriction(workId: number, requirementTypeId: number, rawData: IRequirementTypeDocumentRestriction) {\r\n const data = ensureType(rawData);\r\n\r\n return m(`mutation SaveRequirementTypeDocumentRestriction($workId: Int!, $requirementTypeId: Int!, $data: RequirementTypeDocumentRestrictionGraphInputType!) {\r\n saveRequirementTypeDocumentRestriction(workId: $workId, requirementTypeId: $requirementTypeId, data: $data) {\r\n hasValue, value, error\r\n }\r\n }`,\r\n { workId, requirementTypeId, data },\r\n { returnPath: 'saveRequirementTypeDocumentRestriction' });\r\n}\r\n\r\nexport async function getNotificationTemplates(workId: number) {\r\n return q(`query GetNotificationTemplates($id: Int!) {\r\n work(id: $id) {\r\n notificationTemplates {\r\n id, name, title, message, workId\r\n }\r\n }\r\n }`, { id: workId }, { returnPath: 'work.notificationTemplates' });\r\n}\r\n\r\nexport async function saveNotificationTemplate(workId: number, data: INotificationTemplate) {\r\n return m(`mutation SaveNotificationTemplate($workId: Int!, $data: NotificationTemplateGraphInputType!) {\r\n saveNotificationTemplate(workId: $workId, data: $data) {\r\n isError, error, value\r\n }\r\n }`, { workId, data });\r\n}\r\n\r\nexport async function removeNotificationTemplate(workId: number, id: number) {\r\n return m(`mutation RemoveNotificationTemplate($workId: Int!, $id: Int!) {\r\n removeNotificationTemplate(workId: $workId, id: $id) {\r\n isError, error, value\r\n }\r\n }`, { workId, id });\r\n}\r\n\r\nexport async function getNotificationMessages(workId: number) {\r\n return q(`query GetNotificationMessages($id: Int!) {\r\n work(id: $id) {\r\n notificationMessages {\r\n id, action, workId, resourceType, byMail, notificationTemplateId, restrictToResourceType, actionKey,\r\n restrictToResourceId,\r\n notificationTemplate {\r\n id, message, title, name\r\n }\r\n }\r\n }\r\n }`, { id: workId }, { returnPath: 'work.notificationMessages' });\r\n}\r\n\r\nexport async function saveNotificationMessage(workId: number, inputData: INotificationMessage) {\r\n const data = ensureType(\r\n inputData,\r\n { exclude: ['notificationTemplate'] });\r\n\r\n return m(`mutation SaveNotificationMessage($workId: Int!, $data: NotificationMessageGraphInputType!) {\r\n saveNotificationMessage(workId: $workId, data: $data) {\r\n isError, error, value\r\n }\r\n }`, { workId, data });\r\n}\r\n\r\nexport async function removeNotificationMessage(workId: number, id: number) {\r\n return m(`mutation RemoveNotificationMessage($workId: Int!, $id: Int!) {\r\n removeNotificationMessage(workId: $workId, id: $id) {\r\n isError, error, value\r\n }\r\n }`, { workId, id });\r\n}\r\n\r\nexport function getFieldValidations(workId: number) {\r\n return q(`query GetWorkValidations($workId: Int!) {\r\n work(id: $workId) {\r\n validations {\r\n id, name, field, value, resourceType, errorMessage, workId,\r\n }\r\n }\r\n }`, { workId }, { returnPath: 'work.validations' });\r\n}\r\n\r\nexport function removeFieldValidation(workId: number, id: number) {\r\n return m(`mutation RemoveFieldValidation($workId: Int!, $id: Int!) {\r\n removeFieldValidation(workId: $workId, id: $id) {\r\n isError, error, value\r\n }\r\n }`, { workId, id }, { returnPath: 'removeFieldValidation' });\r\n}\r\n\r\nexport function saveFieldValidation(workId: number, rawData: IFieldValidation) {\r\n const data = ensureType(rawData);\r\n\r\n return m(`mutation SaveWorkValidation($workId: Int!, $data: FieldValidationGraphInputType!) {\r\n saveFieldValidation(workId: $workId, data: $data) {\r\n isError, error, value\r\n }\r\n }`, { workId, data }, { returnPath: 'saveFieldValidation' });\r\n}\r\n\r\nexport async function saveWorkerSettings(workId: number, rawData: IWorkerSettings) {\r\n const client = getClient();\r\n const data = ensureType(rawData);\r\n const mutation = gql`\r\nmutation SaveWorkerSettings($workId: Int!, $data: WorkerSettingsGraphInputType!) {\r\n saveWorkerSettings(workId: $workId, data: $data) {\r\n isError, error, value\r\n }\r\n}`;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: { workId, data }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function saveMachinerySettings(workId: number, rawData: IMachinerySettings) {\r\n const client = getClient();\r\n const data = ensureType(rawData);\r\n const mutation = gql`\r\nmutation SaveMachinerySettings($workId: Int!, $data: MachinerySettingsGraphInputType!) {\r\n saveMachinerySettings(workId: $workId, data: $data) {\r\n isError, error, value\r\n }\r\n}`;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: { workId, data }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function saveContractorSettings(workId: number, rawData: IContractorSettings) {\r\n const client = getClient();\r\n const data = ensureType(rawData);\r\n const mutation = gql`\r\nmutation SaveContractorSettings($workId: Int!, $data: ContractorSettingsGraphInputType!) {\r\n saveContractorSettings(workId: $workId, data: $data) {\r\n isError, error, value\r\n }\r\n}`;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: { workId, data }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function saveJobSettings(workId: number, rawData: IJobSettings) {\r\n const client = getClient();\r\n const data = ensureType(rawData);\r\n const mutation = gql`\r\nmutation SaveJobSettings($workId: Int!, $data: JobSettingsGraphInputType!) {\r\n saveJobSettings(workId: $workId, data: $data) {\r\n isError, error, value\r\n }\r\n}`;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: { workId, data }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function saveWorkHasModule(workId: number, rawData: IWorkHasModule) {\r\n const client = getClient();\r\n const data = ensureType(rawData);\r\n const mutation = gql`\r\nmutation SaveWorkHasModule($workId: Int!, $data: WorkHasModuleGraphInputType!) {\r\n saveWorkHasModule(workId: $workId, data: $data) {\r\n isError, error, value\r\n }\r\n}`;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: { workId, data }\r\n });\r\n\r\n return resp;\r\n}\r\n","import { IMachinery } from '../../models';\r\nimport { IActivityType, IDepartment, ILegalForm, IMachineryType, IMachinerySubType, IWorker, IWorkerDocumentType, IWorkerWithRelations, IWorkerType, IWorkFunction, IWorkI18NResource } from '../../models/resources';\r\nimport { getClient, gql, noCache, m, q } from './graphql';\r\nimport { ensureType, formatProperty } from './utils';\r\n\r\nexport function saveMachinery(machinery: IMachinery) {\r\n return m(`\r\nmutation SaveMachinery($machinery: MachineryInputType!) {\r\n saveMachinery(machinery: $machinery) {\r\n isError, error, value, hasValue\r\n }\r\n}\r\n `, { machinery }, { returnPath: 'saveMachinery' });\r\n}\r\n\r\nexport async function saveMachineryType(machineryType: IMachineryType) {\r\n return m(`\r\nmutation SaveMachineryType($machineryType: MachineryTypeInputType!) {\r\n saveMachineryType(machineryType: $machineryType) {\r\n isError, error, value, hasValue\r\n }\r\n}\r\n `, { machineryType }, { returnPath: 'saveMachineryType' });\r\n}\r\n\r\nexport async function removeMachineryType(workId: number, id: number) {\r\n\r\n const resp = await m(`mutation RemoveMachineryType($workId: Int!, $id: Int!) {\r\n removeMachineryType(workId: $workId, id: $id) {\r\n isError, error, value\r\n }\r\n }`, { workId, id });\r\n\r\n return resp?.data.removeMachineryType;\r\n}\r\n\r\nexport async function saveMachinerySubType(workId: number, machinerySubType: IMachinerySubType) {\r\n return m(`\r\nmutation SaveMachinerySubType($workId: Int!, $machinerySubType: MachinerySubTypeInputType!) {\r\n saveMachinerySubType(workId: $workId, machinerySubType: $machinerySubType) {\r\n isError, error, value, hasValue\r\n }\r\n}\r\n `, { workId, machinerySubType }, { returnPath: 'saveMachinerySubType' });\r\n}\r\n\r\nexport async function removeMachinerySubType(workId: number, parentId: number, id: number) {\r\n\r\n const resp = await m(`mutation RemoveMachinerySubType($workId: Int!, $parentId: Int!, $id: Int!) {\r\n removeMachinerySubType(workId: $workId, parentId: $parentId, id: $id) {\r\n isError, error, value\r\n }\r\n }`, { workId, parentId, id });\r\n\r\n return resp?.data.removeMachinerySubType;\r\n}\r\n\r\nexport function saveWorker(inputData: IWorkerWithRelations) {\r\n console.log('inputData', inputData);\r\n const worker = {\r\n ...inputData,\r\n properties: inputData.properties?.map(formatProperty(inputData.workId))\r\n };\r\n\r\n const departments = inputData.departments;\r\n const workspaces = inputData.workspaces;\r\n\r\n if (inputData.departments) {\r\n delete worker['departments'];\r\n }\r\n\r\n if (inputData.workspaces) {\r\n delete worker['workspaces'];\r\n }\r\n\r\n return m(`\r\nmutation SaveWorker($worker: WorkerInputType!, $workspaces: [Int!], $departments: [Int!]) {\r\n saveWorker(worker: $worker, workspaces: $workspaces, departments: $departments) {\r\n isError, error, value, hasValue\r\n }\r\n}\r\n `, { worker, departments, workspaces }, { returnPath: 'saveWorker' });\r\n}\r\n\r\nexport async function getWorkers(workId: number, rrhh: boolean = false) {\r\n const query = `\r\nquery GetWorkers($workId: Int!, $rrhh: Boolean) {\r\n work(id: $workId) {\r\n workers(rrhh: $rrhh) {\r\n id, name, surname, remarks,\r\n properties {\r\n id, propertyGroupTypeId, workerId, jobHasWorkerId, value\r\n },\r\n appUser {\r\n id, userName, email\r\n }\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await q(\r\n query, {\r\n workId, rrhh\r\n },\r\n { returnPath: 'work.workers', mapEvery: (d: IWorker) => ({ ...d, fullName: d.name + ' ' + d.surname }) }\r\n );\r\n\r\n return resp;\r\n}\r\n\r\nexport async function getWorkI18NResources(workId: number) {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetWorkI18NResources($workId: Int!) {\r\n work(id: $workId) {\r\n workI18NResources {\r\n id, language, name, value\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function saveWorkI18NResource(workI18NResource: IWorkI18NResource) {\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation SaveWorkI18NResource($workI18NResource: WorkI18NInputType!) {\r\n saveWorkI18NResource(workI18NResource: $workI18NResource) {\r\n isError, error, value\r\n }\r\n}\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n workI18NResource\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function getActivities(workId: number) {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetActivities($workId: Int!) {\r\n work(id: $workId) {\r\n activities {\r\n id, name\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function saveActivity(activityType: IActivityType) {\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation SaveActivity($activityType: ActivityTypeInputType!) {\r\n saveActivity(activityType: $activityType) {\r\n isError, error, value\r\n }\r\n}\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n activityType\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function getWork(id: number) {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetWork($id: Int!) {\r\n work(id: $id) {\r\n id, name, description, countryId, users {\r\n id, userName, email, roles, policies\r\n },\r\n machineries {\r\n id, name, description, machineryTypeId, machinerySubTypeId,\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n id\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function removeMachinery(id: number, workId: number, remove: boolean = false) {\r\n const client = getClient();\r\n const mutation = gql`\r\n mutation RemoveMachinery($id: Int!, $workId: Int!, $remove: Boolean!) {\r\n removeMachinery(id: $id, workId: $workId, remove: $remove) {\r\n isError, error, value\r\n }\r\n }\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n id,\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function removeWorker(id: number, workId: number, remove: boolean = false) {\r\n const client = getClient();\r\n const mutation = gql`\r\n mutation RemoveWorker($id: Int!, $workId: Int!, $remove: Boolean!) {\r\n removeWorker(id: $id, workId: $workId, remove: $remove) {\r\n isError, error, value\r\n }\r\n }\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n id,\r\n workId,\r\n remove\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function removeWorkI18NResource(id: number, workId: number) {\r\n const client = getClient();\r\n const mutation = gql`\r\n mutation RemoveWorkI18NResource($id: Int!, $workId: Int!) {\r\n removeWorkI18NResource(id: $id, workId: $workId) {\r\n isError, error, value\r\n }\r\n }\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n id,\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function removeActivity(id: number, workId: number) {\r\n const client = getClient();\r\n const mutation = gql`\r\n mutation RemoveActivity($id: Int!, $workId: Int!) {\r\n removeActivity(id: $id, workId: $workId) {\r\n isError, error, value\r\n }\r\n }\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n id,\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function getLegalForms(workId: number) {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetLegalForms($workId: Int!) {\r\n work(id: $workId) {\r\n legalForms {\r\n id, name, hideContractorProperties,\r\n workerTypes {\r\n id, workerType {\r\n id, name\r\n }\r\n }\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function saveLegalForm(legalForm: ILegalForm) {\r\n console.log('legalForm', legalForm);\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation SaveLegalForm($legalForm: LegalFormInputType!) {\r\n saveLegalForm(legalForm: $legalForm) {\r\n isError, error, value\r\n }\r\n}\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n legalForm\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function removeLegalForm(id: number, workId: number) {\r\n const client = getClient();\r\n const mutation = gql`\r\n mutation RemoveLegalForm($id: Int!, $workId: Int!) {\r\n removeLegalForm(id: $id, workId: $workId) {\r\n isError, error, value\r\n }\r\n }\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n id,\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function getWorkerDepartments(workId: number, workerId: number) {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetWorkerDepartments($workId: Int!, $workerId: Int!) {\r\n work(id: $workId) {\r\n worker(id: $workerId) {\r\n departments {\r\n id, name, code\r\n }\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n workId, workerId\r\n }\r\n });\r\n\r\n return resp.data.work.worker.departments;\r\n}\r\n\r\nexport async function getWorkerHasWorkspaces(workId: number, workerId: number) {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetWorkerHasWorkspaces($workId: Int!, $workerId: Int!) {\r\n work(id: $workId) {\r\n worker(id: $workerId) {\r\n workspaces {\r\n id, name\r\n }\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n workId, workerId\r\n }\r\n });\r\n\r\n return resp.data.work.worker.workspaces;\r\n}\r\n\r\nexport async function getWorkerWorkFunctions(workId: number, workerId: number) {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetWorkerWorkFunctions($workId: Int!, $workerId: Int!) {\r\n work(id: $workId) {\r\n worker(id: $workerId) {\r\n work_functions {\r\n id, name\r\n }\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n workId, workerId\r\n }\r\n });\r\n\r\n return resp.data.work.worker.work_functions;\r\n}\r\n\r\nexport async function getDepartmentWorkers(workId: number, departmentId: number) {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetDepartmentWorkers($workId: Int!, $departmentId: Int!) {\r\n work(id: $workId) {\r\n department(id: $departmentId) {\r\n workers {\r\n id, name, surname\r\n }\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n workId, departmentId\r\n }\r\n });\r\n\r\n return resp.data.work.department.workers;\r\n}\r\n\r\nexport async function getWorkFunctionWorkers(workId: number, workFunctionId: number) {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetWorkFunctionWorkers($workId: Int!, $workFunctionId: Int!) {\r\n work(id: $workId) {\r\n work_function(id: $workFunctionId) {\r\n workers {\r\n id, name\r\n }\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n workId, workFunctionId\r\n }\r\n });\r\n\r\n return resp.data.work.work_function.workers;\r\n}\r\n\r\nexport async function saveDepartmentHasWorker(workId: number, departmentId: number, workerId: number) {\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation SaveDepartmentHasWorker($workId: Int!, $departmentId: Int!, $workerId: Int!) {\r\n saveDepartmentHasWorker(workId: $workId, departmentId: $departmentId, workerId: $workerId) {\r\n error, hasValue,\r\n }\r\n}`;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n workId, workerId, departmentId\r\n }\r\n });\r\n\r\n return resp.data.saveDepartmentHasWorker;\r\n}\r\n\r\nexport async function saveWorkerHasWorkspace(workId: number, workerId: number, workspaceId: number) {\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation SaveWorkerHasWorkspace($workId: Int!, $workerId: Int!, $workspaceId: Int!) {\r\n saveWorkerHasWorkspace(workId: $workId, workerId: $workerId, workspaceId: $workspaceId) {\r\n error, hasValue,\r\n }\r\n}`;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n workId, workerId, workspaceId\r\n }\r\n });\r\n\r\n return resp.data.saveWorkerHasWorkspace;\r\n}\r\n\r\nexport async function removeWorkerHasWorkspace(workId: number, workerId: number, workspaceId: number) {\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation removeWorkerHasWorkspace($workId: Int!, $workerId: Int!, $workspaceId: Int!) {\r\n removeWorkerHasWorkspace(workId: $workId, workerId: $workerId, workspaceId: $workspaceId) {\r\n error, hasValue,\r\n }\r\n}`;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n workId, workerId, workspaceId\r\n }\r\n });\r\n\r\n return resp.data.removeWorkerHasWorkspace;\r\n}\r\n\r\nexport async function saveWorkFunctionHasWorker(workId: number, workFunctionId: number, workerId: number) {\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation SaveWorkFunctionHasWorker($workId: Int!, $workFunctionId: Int!, $workerId: Int!) {\r\n saveWorkFunctionHasWorker(workId: $workId, workFunctionId: $workFunctionId, workerId: $workerId) {\r\n error, hasValue,\r\n }\r\n}`;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n workId, workerId, workFunctionId\r\n }\r\n });\r\n\r\n return resp.data.saveWorkFunctionHasWorker;\r\n}\r\n\r\nexport async function removeDepartmentHasWorker(workId: number, departmentId: number, workerId: number) {\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation RemoveDepartmentHasWorker($workId: Int!, $departmentId: Int!, $workerId: Int!) {\r\n removeDepartmentHasWorker(workId: $workId, departmentId: $departmentId, workerId: $workerId) {\r\n error, hasValue,\r\n }\r\n}`;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n workId, workerId, departmentId\r\n }\r\n });\r\n\r\n return resp.data.removeDepartmentHasWorker;\r\n}\r\n\r\nexport async function removeWorkFunctionHasWorker(workId: number, workFunctionId: number, workerId: number) {\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation RemoveWorkFunctionHasWorker($workId: Int!, $workFunctionId: Int!, $workerId: Int!) {\r\n removeWorkFunctionHasWorker(workId: $workId, workFunctionId: $workFunctionId, workerId: $workerId) {\r\n error, hasValue,\r\n }\r\n}`;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n workId, workerId, workFunctionId\r\n }\r\n });\r\n\r\n return resp.data.removeWorkFunctionHasWorker;\r\n}\r\n\r\nexport async function getWorkspaces(workId: number) {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetWorkspaces($workId: Int!) {\r\n work(id: $workId) {\r\n workspaces {\r\n id, name\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function getDepartments(workId: number) {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetDepartments($workId: Int!) {\r\n work(id: $workId) {\r\n departments {\r\n id, name, policies, isOblique\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function saveDepartment(inputDepartment: IDepartment) {\r\n const client = getClient();\r\n\r\n const department = ensureType(inputDepartment, {\r\n exclude: 'workers'\r\n });\r\n const mutation = gql`\r\nmutation SaveDepartment($department: DepartmentInputType!) {\r\n saveDepartment(department: $department) {\r\n isError, error, value\r\n }\r\n}\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n department\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function removeDepartment(id: number, workId: number) {\r\n const client = getClient();\r\n const mutation = gql`\r\n mutation RemoveDepartment($id: Int!, $workId: Int!) {\r\n removeDepartment(id: $id, workId: $workId) {\r\n isError, error, value\r\n }\r\n }\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n id,\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function addDepartmentPolicy(workId: number, departmentId: number, policy: string) {\r\n return m(`mutation SaveDepartmentPolicy($workId: Int!, $departmentId: Int!, $policy: String!) {\r\n saveDepartmentPolicy(workId: $workId, departmentId: $departmentId, policy: $policy) {\r\n value, isError, error\r\n }\r\n }`, { workId, departmentId, policy }, { returnPath: 'saveDepartmentPolicy' });\r\n}\r\n\r\nexport async function removeDepartmentPolicy(workId: number, departmentId: number, policy: string) {\r\n return m(`mutation RemoveDepartmentPolicy($workId: Int!, $departmentId: Int!, $policy: String!) {\r\n removeDepartmentPolicy(workId: $workId, departmentId: $departmentId, policy: $policy) {\r\n value, isError, error\r\n }\r\n }`, { workId, departmentId, policy }, { returnPath: 'removeDepartmentPolicy' });\r\n}\r\n\r\nexport async function getWorkFunctions(workId: number) {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetWorkFunctions($workId: Int!) {\r\n work(id: $workId) {\r\n work_functions {\r\n id, name\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function getContractType(workId: number) {\r\n const client = getClient();\r\n const query = gql`\r\n query GetContractType($workId: Int!) {\r\n work(id: $workId) {\r\n contractTypes {\r\n id, name\r\n }\r\n }\r\n }`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function getPreventiveResource(workId: number) {\r\n const client = getClient();\r\n const query = gql`\r\n query GetPreventiveResource($workId: Int!) {\r\n work(id: $workId) {\r\n preventiveResources {\r\n id, name\r\n }\r\n }\r\n }`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function saveWorkFunction(workFunction: IWorkFunction) {\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation SaveWorkFunction($workFunction: WorkFunctionInputType!) {\r\n saveWorkFunction(workFunction: $workFunction) {\r\n isError, error, value\r\n }\r\n}\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n workFunction\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function removeWorkFunction(id: number, workId: number) {\r\n const client = getClient();\r\n const mutation = gql`\r\n mutation RemoveWorkFunction($id: Int!, $workId: Int!) {\r\n removeWorkFunction(id: $id, workId: $workId) {\r\n isError, error, value\r\n }\r\n }\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n id,\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nfunction workId(workId: any): (value: import(\"../../models\").IPropertyGroup, index: number, array: import(\"../../models\").IPropertyGroup[]) => { id: number | undefined; workId: number; jobId: number | undefined; propertyGroupTypeId: number; value: string; } {\r\n throw new Error('Function not implemented.');\r\n}\r\n\r\n// MACHINERY TYPES\r\nexport async function getMachineryTypes(workId: number) {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetMachineryTypes($workId: Int!) {\r\n work(id: $workId) {\r\n machineryTypes {\r\n id, name, subTypes {id, name, parentId}\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\n// WORKER DOCUMENT TYPES\r\nexport async function getWorkerDocumentTypes(workId: number) {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetWorkerDocumentTypes($workId: Int!) {\r\n work(id: $workId) {\r\n workerDocumentTypes {\r\n id, name\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function saveWorkerDocumentType(workerDocumentType: IWorkerDocumentType) {\r\n return m(`\r\nmutation SaveWorkerDocumentType($workerDocumentType: WorkerDocumentTypeInputType!) {\r\n saveWorkerDocumentType(workerDocumentType: $workerDocumentType) {\r\n isError, error, value, hasValue\r\n }\r\n}\r\n `, { workerDocumentType }, { returnPath: 'saveWorkerDocumentType' });\r\n}\r\n\r\nexport async function removeWorkerDocumentType(workId: number, id: number) {\r\n\r\n const resp = await m(`mutation RemoveWorkerDocumentType($workId: Int!, $id: Int!) {\r\n removeWorkerDocumentType(workId: $workId, id: $id) {\r\n isError, error, value\r\n }\r\n }`, { id, workId });\r\n\r\n return resp?.data.removeWorkerDocumentType;\r\n}\r\n\r\n// WORKER TYPES\r\nexport async function getWorkerTypes(workId: number) {\r\n const client = getClient();\r\n const query = gql`\r\nquery getWorkerTypes($workId: Int!) {\r\n work(id: $workId) {\r\n workerTypes {\r\n id, name\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query, fetchPolicy: noCache,\r\n variables: {\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function saveWorkerType(workerType: IWorkerType) {\r\n return m(`\r\nmutation SaveWorkerType($workerType: WorkerTypeInputType!) {\r\n saveWorkerType(workerType: $workerType) {\r\n isError, error, value, hasValue\r\n }\r\n}\r\n `, { workerType }, { returnPath: 'saveWorkerType' });\r\n}\r\n\r\nexport async function removeWorkerType(workId: number, id: number) {\r\n\r\n const resp = await m(`mutation RemoveWorkerType($workId: Int!, $id: Int!) {\r\n removeWorkerType(workId: $workId, id: $id) {\r\n isError, error, value\r\n }\r\n }`, { id, workId });\r\n\r\n return resp?.data.removeWorkerType;\r\n}\r\n","import { m } from './graphql';\nimport { IChangePasswordData, IRecoverPasswordData } from '@models/forms';\n\nexport async function changePassword(data: IChangePasswordData) {\n return m(`mutation ChangePassword($data: ChangePasswordDataGraphInputType!) {\n changePassword(data: $data) {\n hasValue, value, isError, error\n }\n }`, { data }, { returnPath: 'changePassword' });\n}\n\nexport async function changeUserPassword(data: IChangePasswordData) {\n return m(`mutation ChangeUserPassword($data: ChangePasswordDataGraphInputType!) {\n changeUserPassword(data: $data) {\n hasValue, value, isError, error\n }\n }`, { data }, { returnPath: 'changeUserPassword' });\n}\n\nexport async function recoverPassword(data: IRecoverPasswordData) {\n return m(`mutation RecoverPassword($data: RecoverPasswordDataGraphInputType!) {\n recoverPassword(data: $data) {\n hasValue, value, isError, error\n }\n }`, { data }, { returnPath: 'recoverPassword' });\n}","import { Action, Reducer } from 'redux';\r\nimport { ApplicationState } from '.';\r\nimport {\r\n IDepartment,\r\n IActivityType,\r\n ILegalForm,\r\n IMachineryType,\r\n IWork,\r\n IWorkspace,\r\n IWorkShift,\r\n parseWork,\r\n IContractType,\r\n IWorker,\r\n IResourceStatusType, IPreventiveResource, IPropertyGroupType, ICommunication\r\n} from '@models';\r\nimport { IRequirementGroup, IRequirementStatusType, IRequirementValidationType } from '@models/requirements';\r\nimport * as App from './app';\r\nimport * as UserActions from './actions/user';\r\nimport * as ProfileActions from './actions/profile';\r\nimport * as ResourceActions from './actions/resources';\r\nimport { actionCreators as N } from './notifications';\r\nimport { actionCreators as Modules } from './modules';\r\nimport t, * as I18n from '../i18n';\r\nimport { redirectTo } from '@utils';\r\nimport { IWorkerType, IWorkerDocumentType, IContractor } from '@models/resources';\r\nimport { IReportDefinition } from \"@models/reports\";\r\nimport { getReports } from \"./actions/reports\";\r\n\r\nexport interface IUserState {\r\n version: number,\r\n works: IWork[],\r\n work?: IWork,\r\n reports: IReportDefinition[],\r\n workers: IWorker[];\r\n propertyGroupTypes: IPropertyGroupType[];\r\n activityTypes: IActivityType[];\r\n legalForms: ILegalForm[];\r\n departments: IDepartment[];\r\n machineryTypes: IMachineryType[];\r\n workerTypes: IWorkerType[];\r\n workerDocumentTypes: IWorkerDocumentType[];\r\n workspaces: IWorkspace[];\r\n workShifts: IWorkShift[];\r\n contractTypes: IContractType[];\r\n preventiveResources: IPreventiveResource[];\r\n requirementGroups: IRequirementGroup[];\r\n requirementStatusTypes: IRequirementStatusType[];\r\n requirementValidationTypes: IRequirementValidationType[];\r\n resourceStatusTypes: IResourceStatusType[];\r\n contractors: IContractor[];\r\n communications: ICommunication[];\r\n}\r\n\r\n// types\r\nenum Types {\r\n Initialize = '[USER] INITIALIZE',\r\n OnInitialize = '[USER] ON INITIALIZE',\r\n SelectWork = '[USER] SELECT WORK',\r\n SelectWorkResources = '[USER] SELECT WORK RESOURCES',\r\n PendingCommunications = '[USER] PENDING COMMUNICATIONS',\r\n ValidateCommunication = '[USER] VALIDATE COMMUNICATION',\r\n ContractorsLoaded = '[USER] CONTRACTORS LOADED',\r\n}\r\n\r\n// actions\r\nexport interface InitializeAction {\r\n type: Types.Initialize;\r\n}\r\n\r\nexport interface OnInitializeAction {\r\n type: Types.OnInitialize;\r\n data: Partial;\r\n}\r\n\r\nexport interface SelectWorkAction {\r\n type: Types.SelectWork;\r\n data: IWork;\r\n}\r\n\r\nexport interface SetPendingCommunicationsAction {\r\n type: Types.PendingCommunications;\r\n data: ICommunication[];\r\n}\r\n\r\nexport interface ValidateCommunicationAction {\r\n type: Types.ValidateCommunication;\r\n data: number;\r\n}\r\n\r\nexport interface SelectWorkResourcesAction {\r\n type: Types.SelectWorkResources;\r\n reports: IReportDefinition[];\r\n departments: IDepartment[];\r\n activityTypes: IActivityType[];\r\n propertyGroupTypes: IPropertyGroupType[];\r\n legalForms: ILegalForm[];\r\n machineryTypes: IMachineryType[];\r\n workerTypes: IWorkerType[];\r\n workerDocumentTypes: IWorkerDocumentType[];\r\n workers: IWorker[];\r\n workspaces: IWorkspace[];\r\n workShifts: IWorkShift[];\r\n contractTypes: IContractType[];\r\n preventiveResources: IPreventiveResource[];\r\n requirementGroups: IRequirementGroup[];\r\n requirementStatusTypes: IRequirementStatusType[];\r\n requirementValidationTypes: IRequirementValidationType[];\r\n resourceStatusTypes: IResourceStatusType[];\r\n contractors: IContractor[];\r\n}\r\n\r\nexport interface ContractorsLoadedAction {\r\n type: Types.ContractorsLoaded;\r\n value: IContractor[];\r\n}\r\n\r\nexport type KnownAction = InitializeAction | OnInitializeAction\r\n | SelectWorkAction | SelectWorkResourcesAction\r\n | SetPendingCommunicationsAction | ValidateCommunicationAction\r\n | ContractorsLoadedAction\r\n | { type: undefined };\r\n\r\nconst onInitialize = (data: Partial) => {\r\n return {\r\n type: Types.OnInitialize,\r\n data\r\n };\r\n}\r\n\r\nconst loadWorks = async (dispatch: Function) => {\r\n dispatch(N.startLoading({\r\n ctx: 'user.works',\r\n }));\r\n const resp = await UserActions.getWorks();\r\n\r\n const works = resp.data.works.map(parseWork);\r\n\r\n dispatch(onInitialize(resp.data));\r\n dispatch(N.stopLoading({\r\n ctx: 'user.works',\r\n }));\r\n\r\n return works;\r\n}\r\n\r\nexport const plainActions = {\r\n createHelpDeskItem: UserActions.createHelpDeskItem,\r\n saveWorker: ResourceActions.saveWorker,\r\n changePassword: ProfileActions.changePassword,\r\n changeUserPassword: ProfileActions.changeUserPassword,\r\n recoverPassword: ProfileActions.recoverPassword,\r\n getJobs: UserActions.getJobs,\r\n getJobReferences: UserActions.getJobReferences,\r\n saveJob: UserActions.saveJob,\r\n removeJob: UserActions.removeJob,\r\n saveCommunication: UserActions.saveCommunication,\r\n getCommunicationReceivers: UserActions.getCommunicationReceivers,\r\n getCommunication: UserActions.getCommunication,\r\n}\r\n\r\nexport const actionCreators = {\r\n loadContractors: (workId: number) => async (dispatch: Function) => {\r\n const contractors = await UserActions.getContractors(workId);\r\n\r\n dispatch({\r\n type: Types.ContractorsLoaded,\r\n value: contractors,\r\n });\r\n },\r\n loadWorks: () => (dispatch: Function) => {\r\n loadWorks(dispatch);\r\n },\r\n loadMessages: () => (dispatch: Function) => {\r\n dispatch(N.loadMessages());\r\n },\r\n validateCommunication: (id: number) => async (dispatch: Function) => {\r\n const resp = await UserActions.validateCommunication(id);\r\n\r\n if (resp.hasValue) {\r\n dispatch({\r\n type: Types.ValidateCommunication,\r\n data: id,\r\n });\r\n }\r\n },\r\n selectWork: (workId: number, redirect: boolean = true) => async (dispatch: Function, getState: () => ApplicationState) => {\r\n const state = getState();\r\n\r\n dispatch(App.actionCreators.startLoading({\r\n message: t.getFixedT('es')('Loading work')\r\n }));\r\n const resp = await UserActions.getWork(workId);\r\n // insertamos las claves de internacionalizacion de la obra\r\n I18n.installResources(resp.data.work.workI18NResources);\r\n\r\n const work = parseWork(resp.data.work);\r\n\r\n dispatch(Modules.initializeWork(work, resp.data.work.workI18NResources));\r\n\r\n const reports = await getReports(workId);\r\n\r\n dispatch({\r\n type: Types.SelectWorkResources,\r\n reports: reports,\r\n activityTypes: resp.data.work.activities,\r\n legalForms: resp.data.work.legalForms,\r\n departments: resp.data.work.departments,\r\n machineryTypes: resp.data.work.machineryTypes,\r\n workerTypes: resp.data.work.workerTypes,\r\n workerDocumentTypes: resp.data.work.workerDocumentTypes,\r\n workspaces: resp.data.work.workspaces,\r\n workShifts: resp.data.work.workShifts,\r\n workers: resp.data.work.workers,\r\n propertyGroupTypes: work.propertyGroupTypes,\r\n contractTypes: resp.data.work.contractTypes,\r\n preventiveResources: resp.data.work.preventiveResources,\r\n requirementGroups: resp.data.work.requirementGroups,\r\n requirementStatusTypes: resp.data.work.requirementStatusTypes,\r\n requirementValidationTypes: resp.data.work.requirementValidationTypes,\r\n resourceStatusTypes: resp.data.work.resourceStatusTypes,\r\n contractors: resp.data.work.contractors\r\n });\r\n dispatch({\r\n type: Types.SelectWork,\r\n data: work,\r\n });\r\n dispatch(App.actionCreators.stopLoading());\r\n if (state.identity?.security?.isGestorOrWorker() ?? false) {\r\n dispatch(actionCreators.loadContractors(workId));\r\n }\r\n\r\n // si el usuario tiene comunicaciones abiertas redireccionamos\r\n if (resp.data.communications.length > 0) {\r\n dispatch({\r\n type: Types.PendingCommunications,\r\n data: resp.data.communications,\r\n });\r\n redirectTo(`/work/${workId}/communications/current`);\r\n }\r\n else if (redirect) {\r\n redirectTo(`/work/${workId}/`);\r\n }\r\n },\r\n initialize: () => async (dispatch: Function, getState: () => ApplicationState) => {\r\n dispatch(App.actionCreators.startLoading({\r\n message: t.getFixedT('es')('Initializing ...')\r\n }));\r\n const resp = await UserActions.initialize();\r\n dispatch(onInitialize({ ...resp.data, version: new Date().getTime() }));\r\n dispatch(App.actionCreators.stopLoading());\r\n\r\n const works = resp.data.works.map(parseWork);\r\n\r\n if (works.length == 1) {\r\n const work = works[0];\r\n const redirect = window.location.pathname == '/';\r\n dispatch(actionCreators.selectWork(work.id, redirect));\r\n }\r\n\r\n dispatch(N.loadMessages());\r\n }\r\n};\r\n\r\nexport const reducer: Reducer = (state: IUserState | undefined, incomingAction: Action): IUserState => {\r\n if (state === undefined) {\r\n return {\r\n activityTypes: [],\r\n departments: [],\r\n propertyGroupTypes: [],\r\n legalForms: [],\r\n workers: [],\r\n reports: [],\r\n machineryTypes: [],\r\n workerTypes: [],\r\n workerDocumentTypes: [],\r\n workspaces: [],\r\n workShifts: [],\r\n contractTypes: [],\r\n preventiveResources: [],\r\n version: 0,\r\n works: [],\r\n requirementGroups: [],\r\n requirementStatusTypes: [],\r\n requirementValidationTypes: [],\r\n resourceStatusTypes: [],\r\n contractors: [],\r\n communications: [],\r\n };\r\n }\r\n\r\n const action = incomingAction as KnownAction;\r\n switch (action.type) {\r\n case Types.PendingCommunications:\r\n return { ...state, communications: action.data };\r\n case Types.ValidateCommunication:\r\n return { ...state, communications: state.communications.filter(c => c.id != action.data) };\r\n case Types.OnInitialize:\r\n return { ...state, ...action.data };\r\n case Types.ContractorsLoaded:\r\n return { ...state, contractors: action.value };\r\n case Types.SelectWorkResources:\r\n return {\r\n ...state,\r\n reports: action.reports,\r\n activityTypes: action.activityTypes,\r\n departments: action.departments,\r\n propertyGroupTypes: action.propertyGroupTypes,\r\n legalForms: action.legalForms,\r\n machineryTypes: action.machineryTypes,\r\n workerTypes: action.workerTypes,\r\n workerDocumentTypes: action.workerDocumentTypes,\r\n workspaces: action.workspaces,\r\n workShifts: action.workShifts,\r\n contractTypes: action.contractTypes,\r\n workers: action.workers,\r\n preventiveResources: action.preventiveResources,\r\n requirementGroups: action.requirementGroups,\r\n requirementStatusTypes: action.requirementStatusTypes,\r\n requirementValidationTypes: action.requirementValidationTypes,\r\n resourceStatusTypes: action.resourceStatusTypes,\r\n contractors: action.contractors\r\n };\r\n case Types.SelectWork:\r\n return { ...state, work: action.data, };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { IContractorRequest, IPaginateOptions } from '../../models';\r\nimport { IJobHasContractor, IJobHasDepartment, IJobHasContractorAppUser, IJobHasMachinery, IJob, IJobHasWorker } from '../../models/jobs';\r\nimport { m, q } from './graphql';\r\nimport { formatProperty, parseProperties } from './utils';\r\n\r\nexport async function getJob(workId: number, jobId: number) {\r\n const resp = await q(`\r\nquery GetJob($workId: Int!, $jobId: Int!) {\r\n work(id: $workId) {\r\n job(id: $jobId) {\r\n id, name, code, workId, workspaceId, activityTypeId, workShiftId, contractTypeId,\r\n description, startDate, endDate, remarks, preventiveResourceId, isActive, informationLoaded,\r\n departments {\r\n id, departmentId, jobId, responsibleId, dateTime, isActive, isMain,\r\n endDateTime, department { id, name }, responsible { id, name, surname }\r\n },\r\n currentStatus {\r\n id, jobId, jobStatusTypeId, dateTime, isCurrent,\r\n },\r\n contractors {\r\n id, jobsDescription, contactEmail, contactName, contactSurname, contactPhone,\r\n startDate,\r\n jobId,\r\n contractorId,\r\n shipmentNumber,\r\n parentId,\r\n currentStatusType, currentStatusDate,\r\n hierarchyLevel,\r\n properties {\r\n id, jobHasContractorId, propertyGroupTypeId, value\r\n },\r\n contractor {\r\n id, name, code, legalFormId, activityTypeId, address, postalCode, countryId, regionId, countyId, currentStatusType, currentStatusDate,\r\n }\r\n },\r\n properties {\r\n id, jobId, propertyGroupTypeId, value\r\n }\r\n }\r\n }\r\n}`, { workId, jobId });\r\n\r\n return resp;\r\n}\r\n\r\nexport function getJobContractors(workId: number, jobId: number, name: string = \"\", statusTypeId: number = 0) {\r\n\r\n return q(`\r\nquery GetJobContractors($workId: Int!, $jobId: Int!, $name: String, $statusTypeId: Int) {\r\n work(id: $workId) {\r\n job(id: $jobId) {\r\n contractors(name: $name, resourceStatusType: $statusTypeId) {\r\n id, jobsDescription, contactEmail, contactName, contactSurname, contactPhone,\r\n startDate,\r\n jobId,\r\n contractorId,\r\n parentId,\r\n shipmentNumber,\r\n currentStatusType, currentStatusDate, forcedStatusUntilDate,\r\n hierarchyLevel,\r\n properties {\r\n id, jobHasContractorId, propertyGroupTypeId, value\r\n },\r\n contractor {\r\n id, name, code, legalFormId, activityTypeId, address, postalCode, countryId, regionId, countyId, currentStatusType, currentStatusDate,\r\n }\r\n status {\r\n id, statusTypeId, datetime, isCurrent,\r\n }\r\n }\r\n }\r\n }\r\n }`,\r\n { workId, jobId, name, statusTypeId },\r\n { returnPath: 'work.job.contractors' });\r\n}\r\n\r\nexport function getJobContractorsViewModel(workId: number, jobId: number) {\r\n return q(`\r\nquery GetJobContractorsViewModel($workId: Int!, $jobId: Int!) {\r\n work(id: $workId) {\r\n job(id: $jobId) {\r\n contractorsViewModel {\r\n id, jobId, contractorId, countContractorMachineries, countContractorWorkers,\r\n countContractorSubContractors, countSubContractorsAuthorized,\r\n countMachineriesAuthorized, countWorkersAuthorized, contractorName,\r\n contractorStartDate, contractorStatusType\r\n }\r\n }\r\n }\r\n }`,\r\n { workId, jobId },\r\n { returnPath: 'work.job.contractorsViewModel' });\r\n}\r\n\r\nexport async function getJobContractorRequests(workId: number, jobId: number) {\r\n const resp = await q(`\r\nquery GetJob($workId: Int!, $jobId: Int!) {\r\n work(id: $workId) {\r\n job(id: $jobId) {\r\n contractorRequests {\r\n id, contactEmail, contactName, contactSurname, contactPhone,\r\n appUserId,\r\n address, activityTypeId, postalCode, countryId, regionId, countyId,\r\n contractorCode, contractorName,\r\n jobsDescription, startDate, accepted, discarded, acceptedDate, resultMessage,\r\n jobId, legalFormId,\r\n properties {\r\n id, jobHasContractorRequestId, propertyGroupTypeId, value\r\n }\r\n }\r\n }\r\n }\r\n}`, { workId, jobId });\r\n\r\n return resp.data.work.job.contractorRequests;\r\n}\r\n\r\nexport async function getJobDepartments(workId: number, jobId: number) {\r\n const resp = await q(`\r\nquery GetJobDepartments($workId: Int!, $jobId: Int!) {\r\n work(id: $workId) {\r\n job(id: $jobId) {\r\n departments {\r\n id, departmentId, jobId, responsibleId, dateTime, isActive, isMain,\r\n endDateTime, department { id, name }, responsible { id, name }\r\n }\r\n }\r\n }\r\n}`, { workId, jobId });\r\n return resp.data.work.job.departments;\r\n}\r\n\r\nexport async function searchContractors(workId: number, searchTerm: string) {\r\n const resp = await q(`query SearchContractors($workId: Int!, $searchTerm: String!) {\r\n work(id: $workId) {\r\n searchContractors(searchTerm: $searchTerm) {\r\n id, name, code\r\n }\r\n }\r\n }`, { searchTerm, workId });\r\n\r\n return resp.data.work.searchContractors;\r\n}\r\n\r\nexport async function createContractorRequest(workId: number, contractorRequest: IContractorRequest) {\r\n const inputData = {\r\n ...contractorRequest,\r\n properties: contractorRequest?.properties?.map(formatProperty(workId))\r\n };\r\n\r\n const resp = await m(`mutation CreateContractorRequest($workId: Int!, $inputData: JobHasContractorRequestInputType!) {\r\n saveJobHasContractorRequest(workId: $workId, jobHasContractorRequest: $inputData) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, inputData });\r\n\r\n return resp?.data.saveJobHasContractorRequest;\r\n}\r\n\r\nexport async function processContractorRequest(workId: number, contractorRequest: IContractorRequest) {\r\n const inputData = {\r\n ...contractorRequest,\r\n properties: contractorRequest?.properties?.map(formatProperty(workId))\r\n };\r\n\r\n const resp = await m(`mutation ProcessContractorRequest($workId: Int!, $inputData: JobHasContractorRequestInputType!) {\r\n processJobHasContractorRequest(workId: $workId, jobHasContractorRequest: $inputData) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, inputData });\r\n\r\n return resp?.data.processJobHasContractorRequest;\r\n}\r\n\r\nexport async function activateJobHasContractor(workId: number, jobId: number, contractorId: number, jobHasContractorId: number) {\r\n const resp = await m(`mutation ActivateJobHasContractor($workId: Int!, $jobId: Int!, $contractorId: Int!, $jobHasContractorId: Int!) {\r\n activateJobHasContractor(workId: $workId, jobId: $jobId, contractorId: $contractorId, jobHasContractorId: $jobHasContractorId) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, jobId, contractorId, jobHasContractorId });\r\n\r\n return resp?.data.activateJobHasContractor;\r\n}\r\n\r\nexport async function saveJobHasContractor(workId: number, contractor: IJobHasContractor) {\r\n const inputData = {\r\n ...contractor,\r\n properties: contractor.properties?.map(formatProperty(workId)),\r\n };\r\n const resp = await m(`mutation CreateJobHasContractor($workId: Int!, $inputData: JobHasContractorInputType!) {\r\n saveJobHasContractor(workId: $workId, jobHasContractor: $inputData) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, inputData });\r\n\r\n return resp?.data.saveJobHasContractor;\r\n}\r\n\r\nexport async function saveJobHasDepartment(workId: number, jobId: number, jobHasDepartment: IJobHasDepartment) {\r\n const resp = await m(`mutation SaveJobHasDepartment($workId: Int!, $jobId: Int!, $jobHasDepartment: JobHasDepartmentInputType!) {\r\n saveJobHasDepartment(workId: $workId, jobId: $jobId, jobHasDepartment: $jobHasDepartment) {\r\n error, hasValue, value\r\n }\r\n }`, { workId, jobHasDepartment, jobId });\r\n\r\n return resp?.data.saveJobHasDepartment;\r\n}\r\n\r\nexport async function removeJobHasDepartment(workId: number, jobId: number, jobHasDepartmentId: number) {\r\n const resp = await m(`mutation RemoveJobHasDepartment($workId: Int!, $jobId: Int!, $jobHasDepartmentId: Int!) {\r\n removeJobHasDepartment(workId: $workId, jobId: $jobId, jobHasDepartmentId: $jobHasDepartmentId) {\r\n error, hasValue,\r\n }\r\n }`, { workId, jobHasDepartmentId, jobId });\r\n\r\n return resp?.data.removeJobHasDepartment;\r\n}\r\n\r\nexport async function removeJobHasContractor(workId: number, jobId: number, jobHasContractorId: number) {\r\n const resp = await m(`mutation RemoveJobHasContractor($workId: Int!, $jobId: Int!, $jobHasContractorId: Int!) {\r\n removeJobHasContractor(workId: $workId, jobId: $jobId, jobHasContractorId: $jobHasContractorId) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, jobId, jobHasContractorId });\r\n\r\n return resp?.data.removeJobHasContractor;\r\n}\r\n\r\nexport async function deleteJobHasContractor(workId: number, jobId: number, jobHasContractorId: number) {\r\n const resp = await m(`mutation DeleteJobHasContractor($workId: Int!, $jobId: Int!, $jobHasContractorId: Int!) {\r\n deleteJobHasContractor(workId: $workId, jobId: $jobId, jobHasContractorId: $jobHasContractorId) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, jobId, jobHasContractorId });\r\n\r\n return resp?.data.deleteJobHasContractor;\r\n}\r\n\r\nexport async function deleteJobHasWorker(workId: number, jobId: number, jobHasWorkerId: number) {\r\n const resp = await m(`mutation DeleteJobHasWorker($workId: Int!, $jobId: Int!, $jobHasWorkerId: Int!) {\r\n deleteJobHasWorker(workId: $workId, jobId: $jobId, jobHasWorkerId: $jobHasWorkerId) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, jobId, jobHasWorkerId });\r\n\r\n return resp?.data.deleteJobHasWorker;\r\n}\r\n\r\nexport async function deleteJobHasMachinery(workId: number, jobId: number, jobHasMachineryId: number) {\r\n const resp = await m(`mutation DeleteJobHasWorker($workId: Int!, $jobId: Int!, $jobHasMachineryId: Int!) {\r\n deleteJobHasMachinery(workId: $workId, jobId: $jobId, jobHasMachineryId: $jobHasMachineryId) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, jobId, jobHasMachineryId });\r\n\r\n return resp?.data.deleteJobHasMachinery;\r\n}\r\n\r\nexport function getJobHasContractor(workId: number, jobId: number, jobHasContractorId: number) {\r\n return q(`query GetJobHasContractor($workId: Int!, $jobId: Int!, $jobHasContractorId: Int!) {\r\n work(id: $workId) {\r\n job(id: $jobId) {\r\n jobHasContractor(id: $jobHasContractorId) {\r\n id, jobsDescription, contactEmail, contactName, contactSurname, contactPhone,\r\n startDate,\r\n jobId,\r\n contractorId,\r\n parentId,\r\n currentStatusType, currentStatusDate, forcedStatusUntilDate,\r\n hierarchyLevel,\r\n properties {\r\n id, jobHasContractorId, propertyGroupTypeId, value\r\n },\r\n contractor {\r\n id, name, code, legalFormId, activityTypeId, address, postalCode, countryId, regionId, countyId, currentStatusType, currentStatusDate,\r\n }\r\n }\r\n }\r\n }\r\n }`, { workId, jobId, jobHasContractorId }, {\r\n returnPath: 'work.job.jobHasContractor',\r\n });\r\n}\r\n\r\nexport async function getJobHasContractorAppUsers(workId: number, jobId: number, jobHasContractorId: number) {\r\n const resp = await q(`query GetJobHasContractorAppUsers($workId: Int!, $jobId: Int!, $jobHasContractorId: Int!) {\r\n work(id: $workId) {\r\n job(id: $jobId) {\r\n jobHasContractor(id: $jobHasContractorId) {\r\n appUsers {\r\n id, jobContractorId, appUserId, startDate, endDate,\r\n appUser {\r\n id, userName, email\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }`, { workId, jobId, jobHasContractorId });\r\n\r\n return resp.data.work.job.jobHasContractor.appUsers;\r\n}\r\n\r\nexport async function searchMachineries(workId: number, term: string, machineryTypeId: number | undefined = undefined, contractorId: number | undefined, jobId: undefined | number) {\r\n const resp = await q(`query SearchMachineries($workId: Int!, $term: String, $machineryTypeId: Int, $contractorId: Int, $jobId: Int) {\r\n work(id: $workId) {\r\n searchMachineries(searchTerm: $term, machineryTypeId: $machineryTypeId, contractorId: $contractorId, jobId: $jobId) {\r\n id, name, code, machineryTypeId, machinerySubTypeId, contractorId,\r\n prefixLicenseNumber, licenseNumber, suffixLicenseNumber, contractor {\r\n id, name\r\n },\r\n }\r\n }\r\n }`, { machineryTypeId, term, workId, contractorId, jobId });\r\n\r\n return resp.data.work.searchMachineries;\r\n}\r\n\r\nexport async function getJobHasMachineries(workId: number, jobId: number) {\r\n const resp = await q(`query GetJobHasMachineries($workId: Int!, $jobId: Int!) {\r\n work(id: $workId) {\r\n job(id: $jobId) {\r\n machineries {\r\n id, jobId, machineryId, startDate, endDate,\r\n currentStatusType, currentStatusDate,\r\n hasDelayedRevokation, forcedStatusUntilDate,\r\n properties {\r\n id, propertyGroupTypeId, jobHasMachineryId, value\r\n },\r\n machinery {\r\n id, name, code, machineryTypeId, machinerySubTypeId,\r\n currentStatusType, currentStatusDate,\r\n contractor { id, name }, contractorId\r\n prefixLicenseNumber, licenseNumber, suffixLicenseNumber\r\n }\r\n }\r\n }\r\n }\r\n }`, { jobId, workId });\r\n\r\n return resp.data.work.job.machineries;\r\n}\r\n\r\nexport function getJobHasMachinery(workId: number, jobId: number, relationId: number) {\r\n return q(`query GetJobHasMachinery($workId: Int!, $jobId: Int!, $relationId: Int!) {\r\n work(id: $workId) {\r\n job(id: $jobId) {\r\n machinery(id: $relationId) {\r\n id, jobId, machineryId, startDate, endDate,\r\n currentStatusType, currentStatusDate, forcedStatusUntilDate,\r\n jobHasContractorId,\r\n properties {\r\n id, propertyGroupTypeId, jobHasMachineryId, value\r\n },\r\n machinery {\r\n id, name, code, machineryTypeId, machinerySubTypeId,\r\n currentStatusType, currentStatusDate, contractorId,\r\n prefixLicenseNumber, licenseNumber, suffixLicenseNumber,\r\n }\r\n }\r\n }\r\n }\r\n }`,\r\n { jobId, workId, relationId },\r\n {\r\n returnPath: 'work.job.machinery'\r\n });\r\n}\r\n\r\nexport async function activateJobHasMachinery(workId: number, jobId: number, machineryId: number, jobHasMachineryId: number) {\r\n\r\n const resp = await m(`mutation ActiveJobHasMachinery($workId: Int!, $jobId: Int!, $machineryId: Int!, $jobHasMachineryId: Int!) {\r\n activateJobHasMachinery(workId: $workId, jobId: $jobId, machineryId: $machineryId, jobHasMachineryId: $jobHasMachineryId) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, jobId, machineryId, jobHasMachineryId });\r\n\r\n return resp?.data.activateJobHasMachinery;\r\n}\r\n\r\nexport async function saveJobHasMachinery(\r\n workId: number,\r\n jobId: number,\r\n data: IJobHasMachinery,\r\n jobHasContractorId: number) {\r\n const inputData = {\r\n machineryId: data.machineryId,\r\n jobId: data.jobId,\r\n jobHasContractorId: data.jobHasContractorId ?? jobHasContractorId,\r\n machineryTypeId: data.machineryTypeId,\r\n machinerySubTypeId: data.machinerySubTypeId,\r\n machineryName: data.machineryName,\r\n startDate: data.startDate,\r\n machineryCode: data.machineryCode,\r\n machineryPrefixLicenseNumber: data.machineryPrefixLicenseNumber,\r\n machineryLicenseNumber: data.machineryLicenseNumber,\r\n machinerySuffixLicenseNumber: data.machinerySuffixLicenseNumber,\r\n properties: (data.properties ?? []).map(formatProperty(workId))\r\n };\r\n\r\n const resp = await m(`mutation SaveJobHasMachineries($workId: Int!, $jobId: Int!, $jobHasContractorId: Int!, $inputData: JobHasMachineryInputType!) {\r\n saveJobHasMachinery(workId: $workId, jobId: $jobId, jobHasContractorId: $jobHasContractorId, data: $inputData) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, jobId, jobHasContractorId, inputData });\r\n return resp?.data.saveJobHasMachinery;\r\n}\r\n\r\nexport async function removeJobHasMachinery(workId: number, jobId: number, jobHasMachineryId: number) {\r\n const resp = await m(`mutation RemoveJobHasMachineries($workId: Int!, $jobId: Int!, $jobHasMachineryId: Int!) {\r\n removeJobHasMachinery(workId: $workId, jobId: $jobId, jobHasMachineryId: $jobHasMachineryId) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, jobHasMachineryId, jobId });\r\n\r\n return resp?.data.removeJobHasMachinery;\r\n}\r\n\r\nexport async function saveJob(data: IJob, departments: IJobHasDepartment[] = []) {\r\n const inputData = {\r\n id: data.id,\r\n contractTypeId: data.contractTypeId,\r\n description: data.description,\r\n endDate: data.endDate,\r\n startDate: data.startDate,\r\n remarks: data.remarks,\r\n workId: data.workId,\r\n name: data.name,\r\n code: data.code,\r\n workspaceId: data.workspaceId,\r\n workShiftId: data.workShiftId,\r\n activityTypeId: data.activityTypeId,\r\n preventiveResourceId: data.preventiveResourceId,\r\n isActive: true,\r\n properties: (data.properties ?? []).map(formatProperty(data.workId)),\r\n };\r\n\r\n const resp = await m(`mutation SaveJob($workId: Int!, $inputData: JobInputType!) {\r\n saveJob(workId: $workId, job: $inputData) {\r\n hasValue, value, error\r\n }\r\n }`, { workId: data.workId, inputData, departments });\r\n\r\n return resp?.data.saveJob;\r\n}\r\n\r\nexport async function getJobHasWorker(workId: number, jobId: number, relationId: number) {\r\n return q(`query GetJobHasWorker($workId: Int!, $jobId: Int!, $relationId: Int!) {\r\n work(id: $workId) {\r\n job(id: $jobId) {\r\n worker(id: $relationId) {\r\n id, jobId, startDate, workerId,\r\n currentStatusType, currentStatusDate, forcedStatusUntilDate,\r\n jobHasContractorId,\r\n worker {\r\n id, name, surname, code,\r\n currentStatusType, currentStatusDate, forcedStatusUntilDate,\r\n workerTypeId, workerDocumentTypeId,\r\n contractor { id, name }, contractorId\r\n },\r\n properties {\r\n id, jobHasWorkerId, propertyGroupTypeId, value\r\n },\r\n }\r\n }\r\n }\r\n }`,\r\n { workId, jobId, relationId }, {\r\n returnPath: 'work.job.worker',\r\n map: w => {\r\n return {\r\n ...parseProperties(w),\r\n fullName: `${w.worker?.name} ${w.worker?.surname}`,\r\n };\r\n }\r\n });\r\n}\r\n\r\nexport async function getJobHasWorkers(workId: number, jobId: number) {\r\n return q(`query GetJobHasWorkers($workId: Int!, $jobId: Int!) {\r\n work(id: $workId) {\r\n job(id: $jobId) {\r\n workers {\r\n id, jobId, startDate, workerId,\r\n currentStatusType, currentStatusDate,\r\n hasDelayedRevokation, forcedStatusUntilDate,\r\n properties {\r\n id, jobHasWorkerId, propertyGroupTypeId, value\r\n },\r\n worker {\r\n id, name, surname, code,\r\n currentStatusType, currentStatusDate,\r\n workerTypeId, workerDocumentTypeId,\r\n contractor { id, name }, contractorId\r\n },\r\n }\r\n }\r\n }\r\n }`,\r\n { workId, jobId }, {\r\n returnPath: 'work.job.workers',\r\n mapEvery: w => parseProperties(w)\r\n });\r\n}\r\n\r\nexport async function searchWorkers(\r\n workId: number,\r\n searchTerm: string,\r\n jobId: number | undefined = undefined,\r\n contractorId: number | undefined = undefined,\r\n limit: number | undefined = undefined) {\r\n const options: IPaginateOptions = {\r\n limit: limit,\r\n searchTerm: searchTerm,\r\n };\r\n\r\n const resp = await q(`query SearchWorkers(\r\n $workId: Int!,\r\n $options: PaginateOptionsGraphInputType!,\r\n $jobId: Int!,\r\n $contractorId: Int) {\r\n work(id: $workId) {\r\n searchWorkers(options: $options, jobId: $jobId, contractorId: $contractorId) {\r\n page, total, limit, data {\r\n id, name, surname, code,\r\n currentStatusType, currentStatusDate, forcedStatusUntilDate, contractorId\r\n contractor {\r\n id, name, code, currentStatusType, currentStatusDate,\r\n }\r\n }\r\n }\r\n }\r\n }`, { jobId, options, workId, contractorId });\r\n\r\n return resp.data.work.searchWorkers;\r\n}\r\n\r\nexport async function saveJobHasWorker(workId: number, worker: IJobHasWorker) {\r\n const inputData = {\r\n id: worker.id,\r\n jobId: worker.jobId,\r\n workerId: worker.workerId,\r\n startDate: worker.startDate,\r\n jobHasContractorId: worker.jobHasContractorId,\r\n properties: worker.properties?.map(formatProperty(workId)),\r\n };\r\n\r\n const resp = await m(`mutation SaveJobHasWorker($workId: Int!, $inputData: JobHasWorkerGraphInputType!) {\r\n saveJobHasWorker(workId: $workId, jobHasWorker: $inputData) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, inputData });\r\n\r\n return resp?.data.saveJobHasWorker;\r\n}\r\n\r\nexport async function activateJobHasWorker(workId: number, jobId: number, workerId: number, jobHasWorkerId: number) {\r\n const resp = await m(`mutation SaveJobHasWorker($workId: Int!, $jobId: Int!, $workerId: Int!, $jobHasWorkerId: Int!) {\r\n activateJobHasWorker(workId: $workId, jobId: $jobId, workerId: $workerId, jobHasWorkerId: $jobHasWorkerId) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, jobId, workerId, jobHasWorkerId });\r\n\r\n return resp?.data.activateJobHasWorker;\r\n}\r\n\r\nexport async function removeJobHasWorker(workId: number, jobId: number, jobHasWorkerId: number) {\r\n const resp = await m(`mutation RemoveJobHasWorker($workId: Int!, $jobId: Int!, $jobHasWorkerId: Int!) {\r\n removeJobHasWorker(workId: $workId, jobId: $jobId, jobHasWorkerId: $jobHasWorkerId) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, jobId, jobHasWorkerId });\r\n\r\n return resp?.data.removeJobHasWorker;\r\n}\r\n\r\nexport function saveJobStatus(workId: number, jobId: number, statusTypeId: number, remarks: string) {\r\n return m(`mutation SaveJobStatus($workId: Int!, $jobId: Int!, $remarks: String, $statusTypeId: Int!) {\r\n saveJobStatus(workId: $workId, jobId: $jobId, statusTypeId: $statusTypeId, remarks: $remarks) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, jobId, statusTypeId, remarks }, { returnPath: 'saveJobStatus' });\r\n}\r\n\r\nexport function getJobStatus(workId: number, jobId: number | undefined = undefined) {\r\n return q(`query GetJobStatus($workId: Int!, $jobId: Int!) {\r\n work(id: $workId) {\r\n job(id: $jobId) {\r\n status {\r\n id, userId, dateTime, jobStatusTypeId, remarks, jobId, isCurrent,\r\n }\r\n }\r\n }\r\n }`, { jobId, workId }, { returnPath: 'work.job.status' });\r\n}\r\n\r\nexport function jobNotifyInformationLoaded(workId: number, jobId: number, remarks: string | null = null) {\r\n return m(`mutation NotifyInformationLoaded($workId: Int!, $jobId: Int!, $remarks: String) {\r\n jobNotifyInformationLoaded(workId: $workId, jobId: $jobId, remarks: $remarks) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, jobId, remarks, }, { returnPath: 'jobNotifyInformationLoaded' });\r\n}\r\n\r\nexport function getJobLogs(workId: number, jobId: number) {\r\n return q(`query GetJobLogs($workId: Int!, $jobId: Int!) {\r\n work(id: $workId) {\r\n job(id: $jobId) {\r\n logs {\r\n dateTime, userId, jobLogType\r\n }\r\n }\r\n }\r\n }`, { workId, jobId }, { returnPath: 'work.job.logs' });\r\n}\r\n","import { get as i18n } from '../i18n';\nimport * as DateUtils from '@utils/date-utils';\n\nexport enum NotificationType {\n NOTIFICATION,\n ERROR,\n LOADING,\n PROGRESS,\n SUCCESS,\n}\n\nexport interface INotification {\n action?: string;\n ctx?: string;\n delay?: number;\n id: number;\n message: string;\n onComplete?: Function;\n progress?: number;\n type: NotificationType;\n}\n\nexport enum MessageType {\n MESSAGE = 1,\n JOB_HAS_CONTRACTOR_REQUEST = 2,\n PENDING_REQUIREMENT = 3,\n /**\n * El requerimiento esta pendiente\n * data: { workId: int, resourceType: int, resourceId: int, requirementId: int, requirementTypeId: int, requirementName: string, resourceName: string }\n */\n JOB_CREATED = 4,\n SUBCONTRACTOR_REQUEST = 5,\n JOB_INFORMATION_LOADED = 6,\n REQUIREMENT_VALIDATED = 7,\n REQUIREMENT_INCIDENCE = 8,\n INVALID_ITA = 9,\n SUBCONTRACTOR_REQUEST_ACCEPTED = 10,\n SUBCONTRACTOR_REQUEST_REJECTED = 11,\n JOB_FINALIZED = 12,\n RESOURCE_AUTHORIZED = 13,\n RESOURCE_REJECTED = 14,\n JOB_AUTHORIZED = 15,\n JOB_REVOKED = 16,\n REQUIREMENT_EXPIRED = 17,\n RELOAD_NOTIFICATIONS = 18,\n MODULE_MESSAGE = 19,\n REQUIREMENT_NOTE = 20,\n REQUIREMENT_NEAR_EXPIRATION = 21,\n}\n\nexport const messageTypes = [\n {id: MessageType.MESSAGE, name: 'messages.type.message'},\n {id: MessageType.JOB_HAS_CONTRACTOR_REQUEST, name: 'messages.type.job_has_contractor_request'},\n {id: MessageType.PENDING_REQUIREMENT, name: 'messages.type.pending_requirement'},\n {id: MessageType.JOB_CREATED, name: 'messages.type.job_created'},\n {id: MessageType.SUBCONTRACTOR_REQUEST, name: 'messages.type.subcontractor_request'},\n {id: MessageType.JOB_INFORMATION_LOADED, name: 'messages.type.job_information_loaded'},\n {id: MessageType.REQUIREMENT_VALIDATED, name: 'messages.type.requirement_validated'},\n {id: MessageType.REQUIREMENT_INCIDENCE, name: 'messages.type.requirement_incidence'},\n {id: MessageType.INVALID_ITA, name: 'messages.type.invalid_ita'},\n {id: MessageType.SUBCONTRACTOR_REQUEST_ACCEPTED, name: 'messages.type.subcontractor_request_accepted'},\n {id: MessageType.SUBCONTRACTOR_REQUEST_REJECTED, name: 'messages.type.subcontractor_request_rejected'},\n {id: MessageType.JOB_FINALIZED, name: 'messages.type.job_finalized'},\n {id: MessageType.RESOURCE_AUTHORIZED, name: 'messages.type.resource_authorized'},\n {id: MessageType.RESOURCE_REJECTED, name: 'messages.type.resource_rejected'},\n {id: MessageType.JOB_AUTHORIZED, name: 'messages.type.job_authorized'},\n {id: MessageType.JOB_REVOKED, name: 'messages.type.job_revoked'},\n {id: MessageType.REQUIREMENT_EXPIRED, name: 'messages.type.requirement_expired'},\n {id: MessageType.MODULE_MESSAGE, name: 'messages.type.requirement_expired'},\n {id: MessageType.REQUIREMENT_NOTE, name: 'messages.type.requirement_note'},\n {id: MessageType.REQUIREMENT_NEAR_EXPIRATION, name: 'messages.type.requirement_near_expiration'},\n];\n\nexport interface IMessage {\n id: string;\n message: string;\n date?: Date;\n data?: any;\n notificationType: number;\n\n icon?: string;\n severity?: string;\n}\n\nexport const parseMessage = (message: IMessage) => {\n return {...message, data: JSON.parse(message.data)};\n}\n\nconst __icons: {[key: string]: string} = {\n 'message': 'fas fa-comment-alt',\n 'info': 'fas fa-info',\n 'warning': 'fas fa-exclamation-triangle',\n 'error': 'fas fa-exclamation',\n 'success': 'fas fa-check-circle'\n}\n\nexport const translateNotificationIcon = (icon: string) => {\n return __icons[icon] ?? 'pi-exclamation-circle';\n}\n\nexport const messageTitle = (message: IMessage) => {\n if (message.notificationType === MessageType.PENDING_REQUIREMENT && !message.message) {\n return i18n('notifications.requirement.pending');\n }\n else if (message.notificationType === MessageType.PENDING_REQUIREMENT) {\n return message.message + ' ';\n }\n else {\n return message.message;\n }\n}\n","import * as React from 'react';\n\nimport { InputSwitch, Message, classNames, useTranslation, R, Tooltip, Portal, Select } from '@components';\nimport { IPropertyGroup, IPropertyGroupType, IPropertyType, PropertyGroupObjectType, PropertyTypes } from '@models/works';\nimport { useObjectState } from '@utils/hooks';\n\nimport './DynamicProperties.scss';\n\nexport interface IProps {\n className?: string;\n embedPortal?: string;\n isInternal?: boolean;\n inline?: boolean;\n labelClass?: string;\n object: any;\n objectType: PropertyGroupObjectType;\n onChange?: (props: IPropertyGroup[]) => void;\n propertyGroupTypes: IPropertyGroupType[];\n readonly?: boolean;\n style?: any;\n hideContractorProperties?: boolean;\n}\n\nfunction DynamicProperty({ labelClass, object, onChange, property, readonly, value }: {\n labelClass?: string,\n object: any,\n onChange: Function,\n property: IPropertyType,\n readonly?: boolean,\n value: any\n}) {\n const { t } = useTranslation();\n\n const tooltipKey = property.name + '_tooltip';\n\n const renderTooltip = () => {\n if (property.help) {\n return <>\n \n \n \n }\n else {\n return null;\n }\n }\n\n if (property.typeId === PropertyTypes.BOOL) {\n return
\n onChange({ ...value, [property.name]: e.value })} />\n \n \n {renderTooltip()}\n
;\n }\n else if (property.typeId === PropertyTypes.TEXT) {\n return \n onChange({ ...value, [property.name]: e.target.value })}\n />\n \n {renderTooltip()}\n ;\n }\n else if (property.typeId === PropertyTypes.BOOLTEXT) {\n const textPropertyName = property.name + '_text';\n\n return
\n onChange({ ...value, [property.name]: e.value })} />\n \n {value?.[property.name] &&\n onChange({ ...value, [textPropertyName]: e.target.value })}\n style={{ width: \"50%\" }} />}\n \n {renderTooltip()}\n
;\n }\n if (property.typeId === PropertyTypes.SELECT) {\n return
\n onChange({ ...value, [property.name]: e.value })} />\n \n \n {renderTooltip()}\n
;\n }\n else {\n return \n }\n}\n\nconst parseProperty = (prop: IPropertyGroup) => {\n if (prop && !prop.valueObj) {\n prop.valueObj = JSON.parse(prop.value);\n }\n return prop;\n}\n\nconst findProperty = (object: any, groupId: number) => {\n return parseProperty(\n object.properties?.find((p: IPropertyGroup) => p.propertyGroupTypeId == groupId));\n}\n\nfunction DynamicPropertiesGroup({\n groupClassName,\n isInternal,\n group,\n labelClass,\n object,\n objectType,\n onChange,\n readonly,\n style,\n}: {\n groupClassName?: string,\n isInternal?: boolean,\n group: IPropertyGroupType,\n labelClass?: string,\n object: any, objectType: PropertyGroupObjectType, onChange?: Function,\n readonly?: boolean, style?: any,\n}) {\n const { t } = useTranslation();\n\n const objectRelationProperty =\n objectType == PropertyGroupObjectType.Job\n ? 'jobId'\n : objectType == PropertyGroupObjectType.Contractor\n ? 'contractorId'\n : objectType == PropertyGroupObjectType.JobHasContractor\n ? (object.contractorId ? 'jobHasContractorId' : 'contractorId')\n : objectType == PropertyGroupObjectType.Machinery\n ? 'machineryId'\n : objectType == PropertyGroupObjectType.JobHasMachinery\n ? (object.machineryId ? 'jobHasMachineryId' : 'machineryId')\n : objectType == PropertyGroupObjectType.JobHasContractorRequest\n ? 'jobHasContractorRequestId'\n : objectType == PropertyGroupObjectType.Workspace\n ? 'workspaceId'\n : objectType == PropertyGroupObjectType.JobHasWorker\n ? (object.workerId ? 'jobHasWorkerId' : 'workerId')\n : 'unknown';\n\n const findPropertyByGroup = (id: number) => {\n return findProperty(object, id) ?? {\n [objectRelationProperty]: object.id,\n propertyGroupTypeId: id,\n valueObj: {},\n isInternal: isInternal,\n };\n }\n\n const data = useObjectState(\n findPropertyByGroup(group.id!), {\n onChange\n });\n\n React.useEffect(() => {\n data.reset(findPropertyByGroup(group.id!));\n }, [object]);\n\n const containerClassName = group.containerType === 'fluid'\n ? 'r properties'\n : group.containerType === 'column'\n ? 'c properties'\n : group.containerType === 'embed'\n ? 'e properties'\n : 'grid-2 properties';\n\n return \n {group.containerType != 'embed' &&

{t(group.title)}

}\n
\n {group.properties?.\n sort((a, b) => (a.propertyOrder ?? 1110) - (b.propertyOrder ?? 1110)).\n map((p, i) =>\n )}\n
\n \n}\n\nexport function DynamicProperties(props: IProps) {\n const doOnChange = (propertyGroup: IPropertyGroup) => {\n const containsGroup = props\n .object\n .properties?.find((p: IPropertyGroup) =>\n p.propertyGroupTypeId === propertyGroup.propertyGroupTypeId) != undefined;\n\n const groups = containsGroup\n ? props.object.properties?.map((p: IPropertyGroup) =>\n p.propertyGroupTypeId == propertyGroup.propertyGroupTypeId\n ? propertyGroup\n : p)\n : (props.object.properties ?? []).concat([propertyGroup]);\n\n props.onChange && props.onChange(groups);\n }\n\n return
\n {props.propertyGroupTypes\n .filter(g => props.isInternal == undefined || g.isInternal == props.isInternal)\n .map((p, i) => {\n if (props.hideContractorProperties != undefined ? props.hideContractorProperties && p.hidable : p.hidable) {\n return null;\n }\n if (p.containerType === 'embed' && !props.inline) {\n return \n \n \n } else {\n return ;\n }\n })}\n
\n}\n","import { parseMessage } from '@models/notifications';\nimport { m, q } from './graphql';\n\nexport function resolveNotification(id: string) {\n return m(`mutation ResolveNotification($id: String!) {\n resolveNotification(id: $id) {\n error, hasValue, value\n }\n }`, { id }, { returnPath: 'resolveNotification' });\n}\n\nexport function getMessages() {\n return q(`query GetMessages {\n notifications {\n id, date, message, data, notificationType,\n icon, severity\n }\n }`, {}, { returnPath: 'notifications', mapEvery: parseMessage });\n}","import { Action, Reducer } from 'redux';\n\nimport { IMessage, MessageType, INotification, NotificationType } from '../models';\nimport * as Actions from './actions/notifications';\nimport { ApplicationState } from '../store';\n\nexport interface INotificationsState {\n notifications: INotification[];\n messages: IMessage[];\n}\n\nenum Types {\n OnMessage = '[NOTIFICATIONS] ON MESSAGE',\n ClearMessage = '[NOTIFICATIONS] CLEAR MESSAGE',\n SetMessagesAction = '[NOTIFICATIONS] SET MESSAGES',\n NotificationAdd = '[NOTIFICATIONS] ADD',\n NotificationSuccess = '[NOTIFICATIONS] SUCCESS',\n ClearErrorsAction = '[NOTIFICATIONS] CLEAR ERROR',\n RemoveNotificationAction = '[NOTIFICATIONS] REMOVE NOTIFICATION ACTION',\n StopLoadingAction = '[NOTIFICATIONS] STOP LOADING',\n}\n\nexport interface AddNotificationAction {\n type: Types.NotificationAdd;\n notification: INotification;\n}\n\nexport interface ClearErrorNotificationAction {\n type: Types.ClearErrorsAction;\n ctx?: string;\n action?: string;\n}\n\nexport interface SetMessagesAction {\n type: Types.SetMessagesAction;\n messages: IMessage[];\n}\n\nexport interface RemoveNotificationAction {\n type: Types.RemoveNotificationAction;\n id: number;\n}\n\nexport interface StopLoadingAction {\n type: Types.StopLoadingAction;\n ctx?: string;\n action?: string;\n}\n\nexport interface SuccessAction {\n type: Types.NotificationSuccess;\n ctx?: string;\n action?: string;\n message?: string;\n id?: number;\n}\n\nexport interface OnMessage {\n type: Types.OnMessage,\n message: IMessage\n};\n\nexport interface ClearMessage {\n type: Types.ClearMessage,\n id: string\n};\n\nexport type KnownAction =\n AddNotificationAction\n | ClearErrorNotificationAction\n | StopLoadingAction\n | RemoveNotificationAction\n | SuccessAction\n | OnMessage\n | ClearMessage\n | SetMessagesAction;\n\nconst excludeMatchingNotifications = (\n e: Partial,\n notifications: INotification[],\n type: NotificationType) => {\n\n return notifications.filter(n => {\n if (e.id) {\n return n.id != e.id;\n }\n else if (e.ctx && e.action && n.type == type) {\n return n.ctx != e.ctx || n.action != e.ctx;\n }\n else if (e.ctx && n.type == type) {\n return n.ctx != e.ctx;\n }\n else {\n return true;\n }\n });\n}\n\nconst createNotification = (notif: Partial, dispatch: Function) => {\n const id = (new Date().getTime());\n const n = { ...notif, id };\n\n if (n.delay) {\n setTimeout(() => {\n dispatch({\n type: Types.RemoveNotificationAction,\n id: n.id\n });\n\n if (n.onComplete) {\n n.onComplete();\n }\n }, n.delay);\n }\n\n dispatch({\n type: Types.NotificationAdd,\n notification: n\n });\n}\n\nexport const actionCreators = {\n success: (notif: Partial) => (dispatch: Function) => {\n dispatch({\n type: Types.NotificationSuccess,\n ctx: notif.ctx,\n action: notif.action,\n message: notif.message,\n });\n },\n clearErrors: (notif: Partial) => (dispatch: Function) => {\n dispatch({\n type: Types.ClearErrorsAction,\n ctx: notif.ctx,\n action: notif.action,\n });\n },\n startLoading: (notif: Partial) => (dispatch: Function) => {\n createNotification({\n ...notif,\n type: NotificationType.LOADING\n }, dispatch);\n },\n stopLoading: (notif: Partial) => (dispatch: Function) => {\n dispatch({\n type: Types.StopLoadingAction,\n ctx: notif.ctx,\n action: notif.action,\n });\n },\n add: (notif: Partial) => (dispatch: Function) => {\n createNotification(notif, dispatch);\n },\n error: (notif: Partial) => (dispatch: Function) => {\n createNotification({ ...notif, type: NotificationType.ERROR }, dispatch);\n },\n remove: (id: number) => (dispatch: Function) => {\n dispatch({\n type: Types.RemoveNotificationAction,\n id\n });\n },\n removeNotification: (id: number) => (dispatch: Function) => {\n dispatch({\n type: Types.RemoveNotificationAction,\n id\n });\n },\n addMessage: (message: IMessage) => (dispatch: Function, getState: () => ApplicationState) => {\n const state = getState();\n if (message.data?.WorkId == undefined\n || state.user.work?.id == undefined\n || message.data?.WorkId == state.user.work?.id) {\n dispatch({\n type: Types.OnMessage,\n message,\n });\n }\n },\n loadMessages: () => async (dispatch: Function, getState: () => ApplicationState) => {\n const state = getState();\n const messages = await Actions.getMessages() ?? [];\n const selectedWork = state.user.work;\n\n // const filteredMessages = messages;\n const filteredMessages = messages\n .filter((m: IMessage) => m.notificationType != MessageType.RELOAD_NOTIFICATIONS\n && (m.data?.WorkId == undefined\n || state.user.work?.id == undefined\n || m.data?.WorkId == selectedWork?.id));\n\n dispatch({\n type: Types.SetMessagesAction,\n messages: filteredMessages,\n });\n },\n clearMessage: (id: string) => async (dispatch: Function) => {\n await Actions.resolveNotification(id);\n\n dispatch({\n type: Types.ClearMessage,\n id,\n });\n }\n};\n\nexport const reducer: Reducer = (state: INotificationsState | undefined, incomingAction: Action): INotificationsState => {\n if (state === undefined) {\n return { notifications: [], messages: [], };\n }\n\n const action = incomingAction as KnownAction;\n switch (action.type) {\n case Types.OnMessage:\n return { ...state, messages: state.messages.concat([action.message]) };\n\n case Types.ClearMessage:\n return { ...state, messages: state.messages.filter(m => m.id != action.id) };\n\n case Types.SetMessagesAction:\n return { ...state, messages: action.messages };\n\n case Types.NotificationSuccess:\n const notifs = excludeMatchingNotifications(\n { ctx: action.ctx, action: action.action },\n state.notifications,\n NotificationType.SUCCESS);\n\n return {\n messages: state.messages,\n notifications: notifs.concat({\n id: action.id ?? (new Date().getTime()),\n message: action.message ?? '',\n ctx: action.ctx,\n action: action.action,\n type: NotificationType.SUCCESS,\n })\n }\n\n case Types.NotificationAdd:\n return {\n messages: state.messages,\n notifications:\n state\n .notifications\n .concat(action.notification)\n };\n case Types.ClearErrorsAction:\n return {\n messages: state.messages,\n notifications:\n excludeMatchingNotifications(\n { ctx: action.ctx, action: action.action },\n state.notifications,\n NotificationType.ERROR)\n }\n case Types.RemoveNotificationAction:\n return {\n messages: state.messages,\n notifications:\n state\n .notifications\n .filter(n => n.id != action.id)\n };\n case Types.StopLoadingAction:\n return {\n messages: state.messages,\n notifications:\n excludeMatchingNotifications(\n { ctx: action.ctx, action: action.action },\n state.notifications,\n NotificationType.LOADING)\n };\n default:\n return state;\n }\n};\n","import { IElementHasProperties, IPropertyGroup } from '@models';\n\nexport const POST = async (url: string, data: any) => {\n try {\n const resp = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(data),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n\n if (resp.status === 200) {\n const r = await resp.json();\n\n return {\n ok: true,\n value: r\n }\n }\n else if (resp.status == 500) {\n const r = await resp.text();\n const message = r && r.length > 0 && r.includes('at')\n ? r.split(' at ')[0]\n : r;\n return {\n error: true,\n message: message,\n };\n }\n else {\n const r = await resp.json();\n return {\n error: true,\n message: r && r.message ? r.message : resp.statusText\n }\n }\n }\n catch (e) {\n return {\n error: true,\n message: (e as any).toString(),\n }\n }\n}\n\nexport const GET = async (url: string) => {\n try {\n const resp = await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n\n if (resp.status === 200) {\n const r = await resp.json();\n\n return {\n ok: true,\n value: r\n }\n }\n else {\n const r = await resp.json();\n return {\n error: true,\n message: r && r.message ? r.message : resp.statusText\n }\n }\n }\n catch (e) {\n return {\n error: true,\n message: (e as any).toString(),\n }\n }\n}\n\nexport const parseProperty = (v: IPropertyGroup) => {\n return {\n ...v,\n valueObj: v.value ? JSON.parse(v.value) : {}\n }\n}\n\nexport function parseProperties(v: T & IElementHasProperties) {\n const properties = v.properties\n ? v.properties.map(parseProperty)\n : [];\n\n return { ...v, properties };\n}\n\nexport const formatProperty = (workId: number) => {\n return (v: IPropertyGroup) => {\n return {\n id: v.id,\n workId: workId,\n jobId: v.jobId,\n isInternal: v.isInternal,\n propertyGroupTypeId: v.propertyGroupTypeId,\n value: JSON.stringify(v.valueObj),\n };\n }\n}\n\ninterface IEnsureTypeOpts {\n exclude?: string|string[];\n include?: string|string[];\n ints?: string[];\n}\n\nexport function ensureType(a: any, opts: IEnsureTypeOpts = {}): T {\n const res: any = {};\n const excludeProperties: string[] = (typeof(opts.exclude) === 'string'\n ? [opts.exclude]\n : opts.exclude) ?? [];\n const includeProperties: string[] = (typeof(opts.include) === 'string'\n ? [opts.include]\n : opts.include) ?? [];\n\n for (const k of Object.keys(a)) {\n if (!k.startsWith('_') && !excludeProperties.includes(k) && (\n includeProperties.length === 0 || includeProperties.includes(k)\n )) {\n res[k] = a[k];\n }\n }\n\n if (opts.ints != undefined) {\n for (const k of opts.ints) {\n if (res[k] && typeof(res[k]) === 'string') {\n res[k] = parseInt(res[k]);\n }\n }\n }\n\n return res as T;\n}\n\nexport default {\n GET,\n POST,\n formatProperty,\n parseProperty,\n parseProperties,\n ensureType,\n}\n","import {\r\n IContractorInvitation, IContractorInvitationRegisterData, IJobHasContractor, IPaginateOptions,\r\n ISubContractorRequest,\r\n} from '../../models';\r\nimport { m, q } from './graphql';\r\nimport { IContractor } from '@models/resources';\r\nimport { ensureType, formatProperty } from './utils';\r\nimport { IUserFormData } from '@components/admin/UserForm';\r\nimport { search } from './search';\r\n\r\nexport async function createContractorInvitation(workId: number, data: IContractorInvitation) {\r\n const resp = await m(`mutation CreateContractorInvitation($workId: Int!, $data: ContractorInvitationGraphInputType!) {\r\n sendContractorInvitation(workId: $workId, invitation: $data) {\r\n value, hasValue, error\r\n }\r\n }`, { workId, data });\r\n\r\n return resp?.data.sendContractorInvitation;\r\n}\r\n\r\nexport async function registerContractorInvitation(data: IContractorInvitationRegisterData) {\r\n const inputData = {\r\n ...data,\r\n properties: data.properties.map(formatProperty(data.workId))\r\n };\r\n\r\n return await m(`mutation RegisterContractorInvitation($data: ContractorInvitationRegisterDataGraphInputType!) {\r\n registerContractorInvitation(data: $data) {\r\n value, hasValue, error\r\n }\r\n }`, { data: inputData }, { returnPath: 'registerContractorInvitation' });\r\n}\r\n\r\nexport async function getWorkConstants(workId: number) {\r\n return await q(`query GetWorkConstants($workId: Int!) {\r\n readonlyWork(id: $workId) {\r\n activityTypes { id, name },\r\n legalForms {\r\n id, name, hideContractorProperties, workerTypes{\r\n id, workerType{\r\n id, name\r\n }\r\n }\r\n },\r\n countries {\r\n id, name, code,\r\n regions {\r\n id, name,\r\n counties {\r\n id, name, code\r\n }\r\n }\r\n },\r\n workSettings {\r\n acceptSubContractorRequests, allowAlwaysNotifyInformationLoaded,\r\n contractorHiddenFields, jobEncodingPrefix,\r\n jobHiddenFields, machineryHiddenFields, mainContractorCanFulfillSubs,\r\n rememberSubContractorAcceptances, workerHiddenFields\r\n },\r\n }\r\n }`, { workId }, { returnPath: 'readonlyWork' });\r\n}\r\n\r\nexport function getContractorInvitations(workId: number) {\r\n const result = q(`query GetContractorInvitations($workId: Int!) {\r\n work(id: $workId) {\r\n contractorInvitations {\r\n id, createdBy, dateTime,\r\n email, subject, accepted, acceptedDate, contractorId,\r\n startDate, jobsDescription, shipmentNumber, name\r\n }\r\n }\r\n }`, { workId }, {\r\n returnPath: 'work.contractorInvitations',\r\n });\r\n\r\n return result;\r\n}\r\n\r\nexport async function getContractorInvitation(token: string) {\r\n const resp = await q(`query GetContractorInvitation($token: String!) {\r\n contractorInvitation(token: $token) {\r\n id, workId, jobId, email,\r\n startDate, jobsDescription, shipmentNumber, name,\r\n parentJobHasContractorId,\r\n propertyGroupTypes {\r\n id, name, title, styleClassName, description, containerType, style, objectType, mandatory, hidable,\r\n properties {\r\n id, name, title, typeId, placeholder, help, parentId, propertyOrder\r\n }\r\n },\r\n }\r\n }`, { token });\r\n\r\n return resp?.data.contractorInvitation;\r\n}\r\n\r\nexport async function getContractors(workId: number, opts: Partial = {}) {\r\n const paginateOpts = {\r\n page: 0,\r\n limit: 10,\r\n ...opts,\r\n };\r\n return q(`query GetContractors($workId: Int!, $paginateOpts: PaginateOptionsGraphInputType!) {\r\n work(id: $workId) {\r\n paginateContractors(options: $paginateOpts) {\r\n page, total, limit,\r\n data {\r\n id, name, code, legalFormId, activityTypeId, address,\r\n postalCode, countryId, regionId, countyId,\r\n currentStatusType, currentStatusDate, forcedStatusUntilDate,\r\n providerCode, phone,\r\n properties {\r\n id, propertyGroupTypeId, jobHasContractorId, value\r\n }\r\n }\r\n }\r\n }\r\n }`, { workId, paginateOpts }, { returnPath: 'work.paginateContractors' });\r\n}\r\n\r\nexport async function getContractorFromAppUser(workId: number) {\r\n return q(`query GetContractorFromAppUser($workId: Int!) {\r\n work(id: $workId) {\r\n contractorFromAppUser\r\n {\r\n id, name, code, phone, remarks, address, regionId, countyId, countryId, postalCode,\r\n workId, legalFormId, activityTypeId, otherActivityType\r\n currentStatusType, currentStatusDate, providerCode, city, contactPerson\r\n properties {\r\n id, propertyGroupTypeId, contractorId, jobHasContractorId, value\r\n }\r\n }\r\n }\r\n }`, { workId }, { returnPath: 'work.contractorFromAppUser' });\r\n}\r\n\r\nexport async function getJobHasContractorFromAppUser(workId: number, jobId: number) {\r\n const searchName = 'contractors/currentJobHasContractor';\r\n const filters = { jobId };\r\n\r\n const res = await search(workId, searchName, {\r\n normalizeKeys: true,\r\n filters,\r\n });\r\n\r\n return res.value[0];\r\n}\r\n\r\nexport async function getJobHasContractors(workId: number, jobId: number) {\r\n\r\n const searchName = 'contractors/currentJobHasContractor';\r\n const filters = { jobId };\r\n\r\n const res = await search(workId, searchName, {\r\n normalizeKeys: true,\r\n filters,\r\n });\r\n\r\n return res;\r\n}\r\n\r\nexport async function getJobHasContractorFromId(workId: number, id: number) {\r\n\r\n const searchName = 'contractors/jobHasContractor';\r\n const filters = { id };\r\n\r\n const res = await search(workId, searchName, {\r\n normalizeKeys: true,\r\n filters,\r\n });\r\n\r\n return res.value[0] ?? undefined;\r\n}\r\n\r\nexport async function getContractor(workId: number, id: number) {\r\n return q(`query GetContractor($workId: Int!, $id: Int!) {\r\n work(id: $workId) {\r\n contractor(id: $id) {\r\n id, name, code, legalFormId, activityTypeId, otherActivityType, address,\r\n postalCode, countryId, regionId, countyId, remarks,\r\n currentStatusType, currentStatusDate, forcedStatusUntilDate, phone, providerCode, city, contactPerson, creationDate\r\n properties {\r\n id, propertyGroupTypeId, contractorId, jobHasContractorId, value\r\n }\r\n }\r\n }\r\n }`,\r\n { workId, id },\r\n { returnPath: 'work.contractor' });\r\n}\r\n\r\nexport async function saveContractor(workId: number, rawData: IContractor) {\r\n const data = ensureType({\r\n ...rawData,\r\n properties: (rawData.properties ?? []).map(formatProperty(workId)),\r\n }, {\r\n exclude: ['currentStatusType', 'currentStatusDate'],\r\n });\r\n\r\n return m(`\r\nmutation SaveContractor($data: ContractorInputType!) {\r\n saveContractor(contractor: $data) {\r\n isError, error, value, hasValue\r\n }\r\n}\r\n `, { data }, { returnPath: 'saveContractor' });\r\n}\r\n\r\nexport async function getSubContractorRequestsAsWorker(workId: number) {\r\n return q(`query GetSubContractorRequests($workId: Int!) {\r\n work(id: $workId) {\r\n subContractorRequests {\r\n id, workId,\r\n sourceContractor { id, name, code },\r\n targetContractor { id, name, code },\r\n jobsDescription, shipmentNumber, dateTime,\r\n acceptedByContractor, acceptedByContractorDateTime,\r\n acceptedByWork, acceptedByContractorDateTime,\r\n rejected, rejectedDateTime, rejectedReason,\r\n job { id, name, code, departments { departmentId, responsibleId, isMain } }\r\n }\r\n }\r\n }`, { workId }, { returnPath: 'work.subContractorRequests' });\r\n}\r\n\r\nexport async function getSubContractorRequestsAsTarget(workId: number) {\r\n return q(`query GetSubContractorRequestsAsTarget($workId: Int!) {\r\n work(id: $workId) {\r\n targetSubContractorRequests {\r\n id, workId,\r\n sourceContractor { id, name, code },\r\n targetContractor { id, name, code },\r\n jobsDescription, shipmentNumber, dateTime,\r\n acceptedByContractor, acceptedByContractorDateTime,\r\n acceptedByWork, acceptedByContractorDateTime,\r\n rejected, rejectedDateTime, rejectedReason,\r\n job { id, name, code }\r\n }\r\n }\r\n }`, { workId }, { returnPath: 'work.targetSubContractorRequests' });\r\n}\r\n\r\nexport async function saveSubContractorRequest(workId: number, inputRequest: ISubContractorRequest) {\r\n const request = {\r\n ...inputRequest,\r\n properties: (inputRequest.properties ?? []).map(formatProperty(workId))\r\n };\r\n\r\n return m(`mutation SaveSubContractorRequest($workId: Int!, $request: SubContractorRequestGraphInputType!) {\r\n saveSubContractorRequest(workId: $workId, request: $request) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, request }, {\r\n returnPath: 'saveSubContractorRequest'\r\n });\r\n}\r\n\r\nexport async function acceptSubContractorRequest(workId: number, subContractorRequestId: number, reason: string | undefined = undefined) {\r\n return m(`mutation AcceptSubContractorRequest($workId: Int!, $subContractorRequestId: Int!, $reason: String) {\r\n acceptSubContractorRequest(workId: $workId, subContractorRequestId: $subContractorRequestId, reason: $reason) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, subContractorRequestId, reason }, {\r\n returnPath: 'acceptSubContractorRequest'\r\n });\r\n}\r\n\r\nexport async function rejectSubContractorRequest(workId: number, subContractorRequestId: number, reason: string | undefined = undefined) {\r\n return m(`mutation RejectSubContractorRequest($workId: Int!, $subContractorRequestId: Int!, $reason: String) {\r\n rejectSubContractorRequest(workId: $workId, subContractorRequestId: $subContractorRequestId, reason: $reason) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, subContractorRequestId, reason }, {\r\n returnPath: 'rejectSubContractorRequest'\r\n });\r\n}\r\n\r\nexport async function removeContractorAppUser(workId: number, userId: number, contractorId: number) {\r\n const resp = await m(`mutation RemoveContractorAppUser($workId: Int!, $userId: Int!, $contractorId: Int!) {\r\n removeContractorAppUser(workId: $workId, userId: $userId, contractorId: $contractorId) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, userId, contractorId });\r\n\r\n return resp?.data.removeContractorAppUser;\r\n}\r\n\r\nexport async function createWorkContractorAppUser(workId: number, contractorId: number, data: IUserFormData) {\r\n return await m(`mutation CreateWorkContractorAppUser($workId: Int!, $contractorId: Int!, $data: UserInputType!) {\r\n createWorkContractorAppUser(workId: $workId, contractorId: $contractorId, data: $data) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, contractorId, data }, { returnPath: 'createWorkContractorAppUser' });\r\n}\r\n\r\nexport async function getWorkUsers(workId: number) {\r\n const resp = await q(`query GetWorkUsers($workId: Int!) {\r\n work(id: $workId) {\r\n users {\r\n id, userName, email\r\n }\r\n }\r\n }`, { workId });\r\n\r\n return resp.data.work.users;\r\n}\r\n\r\n// GET CONTRACTOR_HAS_APP_USERS => workId, contractorId\r\nexport async function getContractorAppUsers(workId: number, contractorId: number) {\r\n const resp = await q(`query GetContractorAppUsers($workId: Int!, $contractorId: Int!) {\r\n work(id: $workId) {\r\n contractor(id: $contractorId) {\r\n appUsers {\r\n id, userName, email\r\n }\r\n }\r\n }\r\n }`, { workId, contractorId });\r\n\r\n return resp.data.work.contractor.appUsers;\r\n}\r\n\r\nexport async function invalidateContractor(workId: number, contractorId: number) {\r\n return m(`mutation InvalidateContractor($workId: Int!, $contractorId: Int!) {\r\n invalidateContractor(workId: $workId, id: $contractorId) {\r\n hasValue, value, error\r\n }\r\n }`, { workId, contractorId }, { returnPath: 'invalidateContractor' });\r\n}\r\n\r\nexport function reactivateContractor(workId: number, id: number) {\r\n return m(`\r\nmutation ReactivateContractor($workId: Int!, $id: Int!) {\r\n reactivateContractor(workId: $workId, id: $id) {\r\n isError, error, value\r\n }\r\n}\r\n `, { workId, id }, { returnPath: 'reactivateContractor' });\r\n}\r\n","import * as RequirementActions from './actions/requirements';\n\nexport const plainActions = {\n createFreeRequirement: RequirementActions.createFreeRequirement,\n fulfillRequirement: RequirementActions.fulfillRequirement,\n getRequirement: RequirementActions.getRequirement,\n getRequirementsFromResources: RequirementActions.getRequirementsFromResources,\n getRequirements: RequirementActions.getRequirements,\n getRequirementIncidences: RequirementActions.getRequirementIncidences,\n getRequirementNotes: RequirementActions.getRequirementNotes,\n saveRequirementIncidence: RequirementActions.saveRequirementIncidence,\n saveRequirementNote: RequirementActions.saveRequirementNote,\n validateRequirement: RequirementActions.validateRequirement,\n forceResourceStatus: RequirementActions.forceResourceStatus,\n requirementMeetsDependencies: RequirementActions.requirementMeetsDependencies,\n removeRequirementFile: RequirementActions.removeRequirementFile,\n requirementCanBeValidated: RequirementActions.requirementCanBeValidated,\n removeFreeRequirement: RequirementActions.removeFreeRequirement,\n}\n","import { IContractorSettings, IJobSettings, ILegalForm, IMachinerySettings, IWorkerSettings, IWorkFunction, ResourceType } from '@models';\r\nimport { IUserIdentity } from './identity';\r\nimport { IJob } from './jobs';\r\nimport { IRequirementGroup, IRequirementValidationType } from './requirements';\r\nimport { IContractor, IMachinery, IWorkI18NResource } from './resources';\r\nimport { get as i18n } from \"../i18n\";\r\n\r\nconst parsePropertyGroupType = (pg: IPropertyGroupType) => {\r\n if (pg.style) {\r\n return { ...pg, styleObj: JSON.parse(pg.style) };\r\n }\r\n else {\r\n return pg;\r\n }\r\n}\r\n\r\nexport function parseWork(work: IWork) {\r\n if (work.settings && !work.settingsObj) {\r\n work.settingsObj = JSON.parse(work.settings);\r\n }\r\n if (work.contextData && !work.contextDataObj) {\r\n work.contextDataObj = JSON.parse(work.contextData);\r\n }\r\n if (work.propertyGroupTypes) {\r\n work.propertyGroupTypes = work.propertyGroupTypes.map(parsePropertyGroupType);\r\n }\r\n\r\n return work;\r\n}\r\n\r\nexport enum JobEncodingType {\r\n Sequential = 0,\r\n SequentialByWorkspace = 1,\r\n Manual = 2,\r\n}\r\n\r\nexport interface IWorkSettings {\r\n jobEncodingType?: JobEncodingType;\r\n jobEncodingPrefix?: string;\r\n acceptSubContractorRequests?: boolean;\r\n mainContractorCanFulfillSubs?: boolean;\r\n rememberSubContractorAcceptances?: boolean;\r\n jobHiddenFields?: string[];\r\n contractorHiddenFields?: string[];\r\n machineryHiddenFields?: string[];\r\n workerHiddenFields?: string[];\r\n signals?: string;\r\n clientImage?: string;\r\n screenImage?: string;\r\n createJobRelations?: boolean;\r\n allowAlwaysNotifyInformationLoaded?: boolean;\r\n simpleDelayedRevokation?: boolean;\r\n jobDelayedRevokation?: boolean;\r\n hideByDefaultEnded?: boolean;\r\n jobChainFinalisation?: boolean;\r\n}\r\n\r\nexport interface IWorkDepartment {\r\n id: number;\r\n name: string;\r\n description?: string;\r\n isOblique?: boolean;\r\n}\r\n\r\nexport interface IModuleInfo {\r\n id: string;\r\n name: string;\r\n description: string;\r\n version: string;\r\n resources: string[];\r\n hasFrontend?: boolean;\r\n frontendResource?: string;\r\n}\r\n\r\nexport interface IWorkHasModule {\r\n id?: number;\r\n workId: number;\r\n moduleName: string;\r\n isActive: boolean;\r\n}\r\n\r\nexport interface IWork {\r\n id: number;\r\n name: string;\r\n description?: string;\r\n countryId: number;\r\n settings: string;\r\n defaultEmail?: string;\r\n helpDeskEmail?: string;\r\n footerResource?: string;\r\n contextData?: string;\r\n\r\n contractorInvitationTemplateId?: number;\r\n resetPasswordTemplateId?: number;\r\n\r\n settingsObj?: IWorkSettings;\r\n contextDataObj?: any;\r\n\r\n users: IUserIdentity[];\r\n workspaces: IWorkspace[];\r\n legalForms: ILegalForm[];\r\n workShifts: IWorkShift[];\r\n departments?: IWorkDepartment[];\r\n workFunctions?: IWorkFunction[];\r\n\r\n permissions: IWorkPermission[];\r\n\r\n workI18nResources?: IWorkI18NResource;\r\n propertyGroupTypes?: IPropertyGroupType[];\r\n requirementGroups?: IRequirementGroup[];\r\n requirementValidationTypes?: IRequirementValidationType[];\r\n\r\n validations?: IFieldValidation[];\r\n\r\n contractorSettings?: IContractorSettings;\r\n workerSettings?: IWorkerSettings;\r\n machinerySettings?: IMachinerySettings;\r\n jobSettings?: IJobSettings;\r\n\r\n workHasModules?: IWorkHasModule[];\r\n activeModules?: IModuleInfo[];\r\n}\r\n\r\nexport interface IFieldValidation {\r\n id?: number;\r\n workId: number;\r\n name: string;\r\n field: string;\r\n value: string;\r\n resourceType: number;\r\n errorMessage: string;\r\n}\r\n\r\nexport interface IWorkPermission {\r\n id?: number;\r\n workId: number;\r\n name: string;\r\n action: string;\r\n expression?: string;\r\n roles?: string;\r\n policies?: string;\r\n}\r\n\r\nexport interface IWorkspace {\r\n id: number;\r\n name: string;\r\n description?: string;\r\n isActive: boolean;\r\n workId: number;\r\n\r\n countryId?: number;\r\n countyId?: number;\r\n regionId?: number;\r\n\r\n contact?: string;\r\n address?: string;\r\n location?: string;\r\n postalCode?: string;\r\n phone?: string;\r\n fax?: string;\r\n email?: string;\r\n\r\n properties?: IPropertyGroup[];\r\n}\r\n\r\nexport interface IWorkShift {\r\n id: number;\r\n name: string;\r\n workId: number;\r\n startMinutes: number;\r\n endMinutes: number;\r\n}\r\n\r\nexport interface IContractType {\r\n id: number;\r\n name: string;\r\n}\r\n\r\nexport interface ISubContractorRequest {\r\n id?: number;\r\n workId: number;\r\n jobId?: number;\r\n dateTime?: Date;\r\n jobsDescription: string;\r\n shipmentNumber: string;\r\n sourceContractorId: number;\r\n targetContractorId: number;\r\n\r\n jobHasContractorId: number;\r\n sourceContractor?: IContractor;\r\n targetContractor?: IContractor;\r\n\r\n acceptedByWork?: boolean;\r\n acceptedByWorkDateTime?: Date;\r\n acceptedByWorkUserId?: number;\r\n\r\n acceptedByContractor?: boolean;\r\n acceptedByContractorDateTime?: Date;\r\n acceptedByContractorUserId?: number;\r\n\r\n rejected?: boolean;\r\n rejectedReason?: string;\r\n rejectedDateTime?: Date;\r\n\r\n job?: IJob;\r\n\r\n properties?: IPropertyGroup[];\r\n}\r\n\r\nexport interface IContractorInvitation {\r\n id?: number;\r\n workId: number;\r\n jobId?: number;\r\n subject?: string;\r\n message?: string;\r\n parentJobHasContractorId?: number;\r\n name: string;\r\n email: string;\r\n dateTime?: Date;\r\n acceptedDate?: Date;\r\n // Si tiene jobId\r\n startDate?: Date;\r\n shipmentNumber?: string;\r\n jobsDescription?: string;\r\n\r\n propertyGroupTypes?: IPropertyGroupType[];\r\n}\r\n\r\nexport interface IContractorInvitationRegisterData {\r\n invitationId?: number;\r\n jobId?: number;\r\n workId: number;\r\n\r\n name: string;\r\n code: string;\r\n remarks?: string;\r\n legalFormId: number;\r\n activityTypeId: number;\r\n otherActivityType?: string;\r\n address?: string;\r\n postalCode?: string;\r\n countryId?: number;\r\n regionId?: number;\r\n countyId?: number;\r\n parentId?: number;\r\n\r\n contactName?: string;\r\n contactSurname?: string;\r\n contactPhone?: string;\r\n contactEmail?: string;\r\n\r\n userName?: string;\r\n\r\n email: string;\r\n password: string;\r\n passwordConfirmation?: string;\r\n properties: IPropertyGroup[];\r\n\r\n shipmentNumber?: string;\r\n jobsDescription?: string;\r\n startDate?: Date;\r\n\r\n city?: string;\r\n contactPerson?: string;\r\n}\r\n\r\nexport enum PropertyGroupObjectType {\r\n Job = 0,\r\n Contractor = 1,\r\n JobHasContractor = 2,\r\n Machinery = 3,\r\n JobHasMachinery = 4,\r\n JobHasContractorRequest = 5,\r\n JobHasWorker = 6,\r\n Worker = 7,\r\n Workspace = 8,\r\n}\r\n\r\nexport function isJobPropertyGroupType(p: IPropertyGroupType) {\r\n return p.objectType == PropertyGroupObjectType.Job;\r\n}\r\n\r\nexport function isJobHasContractorPropertyGroupType(p: IPropertyGroupType) {\r\n return p.objectType == PropertyGroupObjectType.JobHasContractor;\r\n}\r\n\r\nexport function isMachineryPropertyGroupType(p: IPropertyGroupType) {\r\n return p.objectType == PropertyGroupObjectType.JobHasMachinery;\r\n}\r\n\r\nexport function isWorkerPropertyGroupType(p: IPropertyGroupType) {\r\n return p.objectType == PropertyGroupObjectType.JobHasWorker;\r\n}\r\n\r\nexport function isWorkspacePropertyGroupType(p: IPropertyGroupType) {\r\n return p.objectType == PropertyGroupObjectType.Workspace;\r\n}\r\n\r\nexport function isContractorWorkerPropertyGroupType(p: IPropertyGroupType) {\r\n return p.objectType == PropertyGroupObjectType.JobHasWorker && p.isInternal !== true;\r\n}\r\n\r\nexport function isRRHHPropertyGroupType(p: IPropertyGroupType) {\r\n return p.objectType == PropertyGroupObjectType.JobHasWorker && p.isInternal === true;\r\n}\r\n\r\nexport enum PropertyTypes {\r\n TEXT = 1,\r\n BOOL = 2,\r\n BOOLTEXT = 3,\r\n SELECT = 4,\r\n}\r\n\r\nexport const AllPropertyTypes = [\r\n { id: PropertyTypes.TEXT, name: 'TEXT' },\r\n { id: PropertyTypes.BOOL, name: 'BOOL' },\r\n { id: PropertyTypes.BOOLTEXT, name: 'BOOLTEXT' },\r\n { id: PropertyTypes.SELECT, name: 'SELECT' }\r\n];\r\n\r\nexport interface IPropertyType {\r\n id?: number;\r\n name: string;\r\n title: string;\r\n typeId: number;\r\n placeholder?: string;\r\n help?: string;\r\n style?: string;\r\n parentId: number;\r\n propertyOrder?: number;\r\n selectOptions?: string;\r\n}\r\n\r\nexport interface IPropertyGroupType {\r\n id?: number;\r\n workId: number;\r\n objectType: PropertyGroupObjectType;\r\n name: string;\r\n title: string;\r\n mandatory: boolean;\r\n hidable: boolean;\r\n description?: string;\r\n styleClassName?: string;\r\n style?: string;\r\n containerType?: string;\r\n properties?: IPropertyType[];\r\n isInternal?: boolean;\r\n // isolated?: boolean;\r\n styleObj?: any;\r\n}\r\n\r\nexport interface IPropertyGroup {\r\n id?: number;\r\n workId: number;\r\n propertyGroupTypeId: number;\r\n jobId?: number;\r\n contractorId?: number;\r\n jobHasContractorId?: number;\r\n machineryId?: number;\r\n jobHasMachineryId?: number;\r\n value: string;\r\n isInternal?: boolean;\r\n\r\n valueObj?: any;\r\n}\r\n\r\nexport interface IElementHasProperties {\r\n properties?: IPropertyGroup[];\r\n}\r\n\r\nexport interface IPreventiveResource {\r\n id: number;\r\n name: string;\r\n}\r\n\r\nexport interface INotificationTemplate {\r\n id?: number;\r\n name: string;\r\n title: string;\r\n message: string;\r\n workId: number;\r\n}\r\n\r\nexport interface INotificationMessage {\r\n id?: number;\r\n workId: number;\r\n action: number;\r\n resourceType: number;\r\n notificationTemplateId: number;\r\n byMail?: boolean;\r\n notificationTemplate?: INotificationTemplate;\r\n restrictToResourceType?: number;\r\n restrictToResourceId?: number;\r\n actionKey?: string;\r\n}\r\n\r\nexport const getNotificationMessageActions = (t: Function) => {\r\n return [\r\n { id: NotificationMessageAction.CreateJob, name: t('job.create') },\r\n { id: NotificationMessageAction.JobAssignContractor, name: t('job.assign.contractor') },\r\n { id: NotificationMessageAction.SubContractorRequestCreate, name: t('subcontractor.request.create') },\r\n { id: NotificationMessageAction.SubContractorRequestAccept, name: t('subcontractor.request.accept') },\r\n { id: NotificationMessageAction.SubContractorRequestReject, name: t('subcontractor.request.reject') },\r\n { id: NotificationMessageAction.JobInformationLoaded, name: t('job.notify-information-loaded') },\r\n { id: NotificationMessageAction.JobFinalized, name: t('job.notify.finalized') },\r\n { id: NotificationMessageAction.JobAuthorized, name: t('job.notify.authorized') },\r\n { id: NotificationMessageAction.JHCAuthorized, name: t('jhc.notify.authorized') },\r\n { id: NotificationMessageAction.JHWAuthorized, name: t('jhw.notify.authorized') },\r\n { id: NotificationMessageAction.JHMAuthorized, name: t('jhm.notify.authorized') },\r\n { id: NotificationMessageAction.JHCRejected, name: t('jhc.notify.rejected') },\r\n { id: NotificationMessageAction.JHWRejected, name: t('jhw.notify.rejected') },\r\n { id: NotificationMessageAction.JHMRejected, name: t('jhm.notify.rejected') },\r\n { id: NotificationMessageAction.ReqExpired, name: t('req.notify.expired') },\r\n { id: NotificationMessageAction.NotifyRequirementExpirationWithinTolerance, name: t('req.notify.expired.within.tolerance') },\r\n { id: NotificationMessageAction.ReqIncidence, name: t('req.notify.incidence') },\r\n { id: NotificationMessageAction.ReqFulfilled, name: t('req.notify.upload') },\r\n { id: NotificationMessageAction.ReqValidated, name: t('req.notify.validation') },\r\n { id: NotificationMessageAction.ModuleMessage, name: t('module.message') },\r\n // { id: NotificationMessageAction.JobCreatedAfterInfoLoaded, name: t('job.created.info.loaded') },\r\n { id: NotificationMessageAction.RequirementNote, name: t('requirement.note') },\r\n { id: NotificationMessageAction.JobRequirementNote, name: t('job.requirement.note') },\r\n { id: NotificationMessageAction.JobAssignImpliedRSO, name: t('job.assign.implied-rso') },\r\n { id: NotificationMessageAction.JobAssignMainRSO, name: t('job.assign.main-rso') },\r\n { id: NotificationMessageAction.JobAssignMedicalDepartment, name: t('job.assign.medical-department') },\r\n { id: NotificationMessageAction.JobAssignEnvironmentDepartment, name: t('job.assign.environment-rso') },\r\n\r\n { id: NotificationMessageAction.JobContractorInvitation, name: t('job.contractor.invitation') },\r\n { id: NotificationMessageAction.NotifyUnauthorizedJob, name: t('job.unauthorized.notify') },\r\n { id: NotificationMessageAction.NotifyAuthorizedJob, name: t('job.authorized.notify') },\r\n { id: NotificationMessageAction.NotifyJobReopen, name: t('job.reopen.notify') },\r\n { id: NotificationMessageAction.ITAWorkerNotFound, name: t('ita.worker.not-found') },\r\n { id: NotificationMessageAction.IrregularityCreated, name: t('irregularity.created') },\r\n { id: NotificationMessageAction.CorrectiveMeasureLoaded, name: t('corrective-measure.pessma.loaded') },\r\n { id: NotificationMessageAction.CorrectiveMeasureContractorLoaded, name: t('corrective-measure.contractor.loaded') },\r\n { id: NotificationMessageAction.CorrectiveMeasureValidated, name: t('corrective-measure.pessma.validated') },\r\n { id: NotificationMessageAction.CorrectiveMeasureContractorValidated, name: t('corrective-measure.contractor.validated') },\r\n { id: NotificationMessageAction.CorrectiveMeasureRejected, name: t('corrective-measure.pessma.rejected') },\r\n { id: NotificationMessageAction.CorrectiveMeasureContractorRejected, name: t('corrective-measure.contractor.rejected') },\r\n { id: NotificationMessageAction.IrregularityModified, name: t('irregularity.modified') },\r\n { id: NotificationMessageAction.JobEvaluationsPending, name: t('job.evaluations.pending') },\r\n { id: NotificationMessageAction.GeneralEvaluationsPending, name: t('general.evaluations.pending') },\r\n { id: NotificationMessageAction.NotifyRequirementExpiration, name: t('requirement.expiration.notify') },\r\n { id: NotificationMessageAction.NotifyJobContractorStart, name: t('job.contractor.start') },\r\n ].sort((a, b) => a.name.localeCompare(b.name));\r\n}\r\n\r\nexport enum NotificationMessageAction {\r\n CreateJob = 1,\r\n JobAssignContractor = 2,\r\n SubContractorRequestCreate = 3,\r\n SubContractorRequestAccept = 4,\r\n SubContractorRequestReject = 5,\r\n JobInformationLoaded = 6,\r\n ReqValidated = 7,\r\n JobFinalized = 8,\r\n JobAuthorized = 9,\r\n JobCreatedAfterInfoLoaded = 10,\r\n JHCAuthorized = 11,\r\n JHWAuthorized = 12,\r\n JHMAuthorized = 13,\r\n JHCRejected = 14,\r\n JHWRejected = 15,\r\n JHMRejected = 16,\r\n ReqExpired = 17,\r\n ReqIncidence = 18,\r\n ReqFulfilled = 19,\r\n ModuleMessage = 20,\r\n RequirementNote = 21,\r\n JobRequirementNote = 22,\r\n JobAssignImpliedRSO = 23,\r\n JobAssignMainRSO = 24,\r\n JobAssignMedicalDepartment = 25,\r\n JobAssignEnvironmentDepartment = 26,\r\n JobContractorInvitation = 27, // Invitación contrata trabajo\r\n NotifyUnauthorizedJob = 28, // Notificar PESSMA Desautorización\r\n NotifyAuthorizedJob = 29, // Notificar PESSMA autorización,\r\n NotifyJobReopen = 30, // Notificar Reactivación de PESSMA\r\n ITAWorkerNotFound = 31, // Trabajador no encontrado en ITA\r\n IrregularityCreated = 32, // Irregularidad creada\r\n CorrectiveMeasureLoaded = 33, // Medida correctora cargada de un trabajo\r\n CorrectiveMeasureValidated = 34, // Medida correctora validada de un trabajo\r\n CorrectiveMeasureRejected = 35, // Medida correctora rechazada de un trabajo\r\n JobEvaluationsPending = 36, // Evaluaciones trabajo pendientes\r\n GeneralEvaluationsPending = 37, // Evaluaciones generales pendientes\r\n NotifyRequirementExpiration = 38, // Notificar caducidad requerimiento\r\n NotifyJobContractorStart = 39,\r\n CorrectiveMeasureContractorLoaded = 40, // Medida correctora cargada de un contratista\r\n CorrectiveMeasureContractorValidated = 41, // Medida correctora validada de un contratista\r\n CorrectiveMeasureContractorRejected = 42, // Medida correctora rechazada de un contratista\r\n NotifyRequirementExpirationWithinTolerance = 43, // Notificar caducidad requerimiento dentro de la tolerancia\r\n IrregularityModified = 44, // Irregularidad modificada\r\n}\r\n\r\nexport const fieldValidationResourceTypes = [\r\n { id: ResourceType.Worker, name: i18n('Worker') },\r\n { id: ResourceType.Machinery, name: i18n('Machinery') },\r\n { id: ResourceType.Contractor, name: i18n('Contractor') },\r\n];\r\n\r\nconst __fieldValidations: any = {};\r\nexport const createFieldValidation = (v: string) => {\r\n if (__fieldValidations[v]) {\r\n return __fieldValidations[v];\r\n }\r\n else {\r\n const expression = atob(v);\r\n const body = 'const a = ' + expression + '; return a(i, ctx);';\r\n const fn = new Function('i', 'ctx', body);\r\n __fieldValidations[v] = fn;\r\n\r\n return fn;\r\n }\r\n}\r\n","import { IUserIdentity } from './identity';\r\nimport { IRequirement } from './requirements';\r\nimport { IPropertyGroup } from './works';\r\nimport { get as i18n } from '../i18n';\r\nimport { IWorkspace } from '@models';\r\nimport { IDocument } from './documents';\r\n\r\nexport interface IResourceStatusType {\r\n id: number;\r\n name: string;\r\n}\r\n\r\nexport interface IResourceHasStatus {\r\n currentStatusDate?: Date;\r\n currentStatusType?: number;\r\n status?: IResourceStatus[];\r\n}\r\n\r\nexport interface IResourceStatus {\r\n id: number;\r\n dateTime: Date;\r\n statusTypeId: number;\r\n userId?: number;\r\n contractorId?: number;\r\n machineryId?: number;\r\n workerId?: number;\r\n jobHasDepartmentId?: number;\r\n jobHasContractorId?: number;\r\n jobHasMachineryId?: number;\r\n jobHasWorkerId?: number;\r\n forcedStatusUntilDate?: Date;\r\n}\r\n\r\nexport interface IMachinery extends IResourceHasStatus {\r\n id: number;\r\n name: string;\r\n code?: string;\r\n description?: string;\r\n workId: number;\r\n isActive?: boolean;\r\n\r\n // license plate\r\n prefixLicenseNumber?: string;\r\n licenseNumber?: string;\r\n suffixLicenseNumber?: string;\r\n\r\n contractor?: IContractor;\r\n contractorId?: number;\r\n machineryTypeId?: number;\r\n machinerySubTypeId?: number;\r\n\r\n properties?: IPropertyGroup[];\r\n requirements?: IRequirement[];\r\n // TODO: add picture capability\r\n photo?: IDocument;\r\n}\r\n\r\nexport type IWorkerWithRelations = IWorker & {\r\n departments?: number[];\r\n workspaces?: number[];\r\n policies?: string[];\r\n}\r\n\r\nexport interface IWorker extends IResourceHasStatus {\r\n id: number;\r\n workId: number;\r\n name: string;\r\n code?: string;\r\n surname?: string;\r\n remarks?: string;\r\n isActive?: boolean;\r\n fullName?: string;\r\n appUser?: IUserIdentity;\r\n workerTypeId?: number;\r\n workerDocumentTypeId?: number;\r\n phone?: string;\r\n\r\n workspaceId?: number;\r\n workspace?: IWorkspace;\r\n workspaces?: IWorkspace[];\r\n\r\n legalFormId?: number;\r\n legalForm?: ILegalForm;\r\n\r\n contractorId?: number;\r\n contractor?: IContractor;\r\n\r\n properties?: IPropertyGroup[];\r\n requirements?: IRequirement[];\r\n photo?: IDocument;\r\n}\r\n\r\nexport interface IWorkI18NResource {\r\n id: number;\r\n language: string;\r\n name: string;\r\n value: string;\r\n workId: number;\r\n}\r\n\r\nexport interface IActivityType {\r\n id: number;\r\n name: string;\r\n workId: number;\r\n}\r\n\r\nexport interface ILegalForm {\r\n id: number;\r\n name: string;\r\n workId: number;\r\n hideContractorProperties: boolean;\r\n workerTypes?: ILegalFormHasWorkerType[];\r\n}\r\n\r\nexport interface ILegalFormHasWorkerType {\r\n id: number;\r\n legalFormId: number;\r\n legalForm: ILegalForm;\r\n workerTypeId: number;\r\n workerType: IWorkerType;\r\n}\r\n\r\nexport interface IDepartment {\r\n id: number;\r\n name: string;\r\n code?: string;\r\n description?: string;\r\n isOblique?: boolean;\r\n notifyJobCreation?: boolean;\r\n\r\n workId: number;\r\n\r\n workers?: IWorker[];\r\n policies?: string[];\r\n}\r\n\r\nexport interface IWorkFunction {\r\n id: number;\r\n name: string;\r\n workId: number;\r\n}\r\n\r\nexport interface IContractor extends IResourceHasStatus {\r\n id: number;\r\n name: string;\r\n code: string;\r\n workId: number;\r\n\r\n isActive?: boolean;\r\n legalFormId?: number;\r\n activityTypeId?: number;\r\n otherActivityType?: string;\r\n address?: string;\r\n postalCode?: string;\r\n countryId?: number;\r\n regionId?: number;\r\n countyId?: number;\r\n phone?: string;\r\n providerCode?: string;\r\n remarks?: string;\r\n city?: string;\r\n contactPerson?: string;\r\n creationDate?: Date;\r\n\r\n properties?: IPropertyGroup[];\r\n requirements?: IRequirement[];\r\n}\r\n\r\nexport interface IContractorHasAppUser {\r\n id: number;\r\n contractorId: number;\r\n appUserId: number;\r\n dateTime: Date;\r\n\r\n appUser?: IUserIdentity;\r\n}\r\n\r\nexport interface IContractorRequest {\r\n id?: number;\r\n jobId: number;\r\n contractorName?: string;\r\n contractorCode?: string;\r\n legalFormId: number;\r\n\r\n startDate?: Date;\r\n jobsDescription?: string;\r\n\r\n accepted?: boolean;\r\n discarded?: boolean;\r\n acceptedDate?: Date;\r\n discardedDate?: Date;\r\n resultMessage?: string;\r\n\r\n properties?: IPropertyGroup[];\r\n}\r\n\r\nexport interface IMachinerySubType {\r\n id: number;\r\n name: string;\r\n parentId: number;\r\n}\r\n\r\nexport interface IMachineryType {\r\n id: number;\r\n name: string;\r\n workId: number;\r\n\r\n subTypes?: IMachinerySubType[];\r\n}\r\n\r\nexport interface IWorkerType {\r\n id: number;\r\n name: string;\r\n workId: number;\r\n}\r\n\r\nexport interface IWorkerDocumentType {\r\n id: number;\r\n name: string;\r\n workId: number;\r\n}\r\n\r\nexport function departmentIsProductive(d: IDepartment) {\r\n return d && d?.isOblique != true;\r\n}\r\n\r\nexport enum ResourceStatusType {\r\n NOT_AUTHORIZED = 1,\r\n AUTHORIZED = 2,\r\n FINALIZED = 3,\r\n FORCED_AUTHORIZED = 4,\r\n FORCED_REVOKED,\r\n}\r\n\r\nexport const resourceStatusTypes = [\r\n { id: ResourceStatusType.NOT_AUTHORIZED, name: i18n('NOT AUTHORIZED') },\r\n { id: ResourceStatusType.AUTHORIZED, name: i18n('AUTHORIZED') },\r\n { id: ResourceStatusType.FINALIZED, name: i18n('FINALIZED') },\r\n { id: ResourceStatusType.FORCED_AUTHORIZED, name: i18n('FORCED AUTHORIZED') },\r\n { id: ResourceStatusType.FORCED_REVOKED, name: i18n('FORCED REVOKED') },\r\n]\r\n\r\nexport const getNotificationResourceTypes = (t: Function) => {\r\n return [\r\n { id: ResourceType.Contractor, name: t('Contractor') },\r\n { id: ResourceType.JobHasDepartment, name: t('Department') },\r\n { id: ResourceType.MainContractor, name: t('contractor.main') },\r\n { id: ResourceType.SubContractor, name: t('contractor.subcontractor') },\r\n { id: ResourceType.MainRSO, name: t('resource.main-rso') },\r\n { id: ResourceType.MainRSOCoordinator, name: t('resource.main-rso.coordinator') },\r\n { id: ResourceType.AssociatedRSO, name: t('resource.associated-rso') },\r\n { id: ResourceType.AssociatedRSOCoordinator, name: t('resource.associated-rso.coordinator') },\r\n { id: ResourceType.ObliqueDepartment, name: t('department.oblique') },\r\n { id: ResourceType.RequirementCreator, name: t('requirement.creator') },\r\n ];\r\n}\r\n\r\ntype IGetResourceTypesOpts = {\r\n includeSubContractors?: boolean,\r\n}\r\n\r\nexport const getResourceTypes = (t: Function, opts: IGetResourceTypesOpts = {}) => {\r\n const res = [\r\n { id: ResourceType.Contractor, name: t('Contractor') },\r\n { id: ResourceType.Worker, name: t('Worker') },\r\n { id: ResourceType.Machinery, name: t('Machinery') },\r\n { id: ResourceType.JobHasContractor, name: t('JobHasContractor') },\r\n { id: ResourceType.JobHasWorker, name: t('JobHasWorker') },\r\n { id: ResourceType.JobHasMachinery, name: t('JobHasMachinery') },\r\n ];\r\n\r\n const contractorRes = [\r\n { id: ResourceType.MainContractor, name: t('contractor.main') },\r\n { id: ResourceType.SubContractor, name: t('contractor.subcontractor') },\r\n ];\r\n\r\n if (opts.includeSubContractors ?? false) {\r\n return res.concat(contractorRes);\r\n }\r\n else {\r\n return res;\r\n }\r\n}\r\n\r\nexport const getEventResourceTypes = (t: Function) => {\r\n return [\r\n { id: EventResourceType.Contractor, name: t('Contractor') },\r\n { id: EventResourceType.Worker, name: t('Worker') },\r\n { id: EventResourceType.Machinery, name: t('Machinery') },\r\n { id: EventResourceType.JobHasContractor, name: t('JobHasContractor') },\r\n { id: EventResourceType.JobHasWorker, name: t('JobHasWorker') },\r\n { id: EventResourceType.JobHasMachinery, name: t('JobHasMachinery') },\r\n { id: EventResourceType.JobHasMachinery, name: t('JobHasMachinery') },\r\n { id: EventResourceType.JobStatus, name: t('JobStatus') },\r\n ];\r\n}\r\n\r\nexport enum EventResourceType {\r\n Worker = 1,\r\n Machinery = 2,\r\n Contractor = 3,\r\n JobHasWorker = 4,\r\n JobHasMachinery = 5,\r\n JobHasContractor = 6,\r\n Job = 7,\r\n JobStatus = 8,\r\n}\r\n\r\nexport enum ResourceType {\r\n Contractor = 1,\r\n Machinery = 2,\r\n Worker = 3,\r\n JobHasContractor = 4,\r\n JobHasDepartment = 5,\r\n JobHasMachinery = 6,\r\n JobHasWorker = 7,\r\n Job = 8,\r\n MainContractor = 9,\r\n SubContractor = 10,\r\n MainRSO = 11,\r\n AssociatedRSO = 12,\r\n MainRSOCoordinator = 13,\r\n AssociatedRSOCoordinator = 14,\r\n ObliqueDepartment = 15,\r\n RequirementCreator = 16,\r\n};\r\n","import { IOption, IPaginateResult, IPaginateSort, IUserSearchFilter } from '@models';\nimport { delay } from '@utils';\n\nexport const DEFAULT_LIMIT = 10;\n\ntype Options = {\n normalizeKeys?: boolean,\n filters?: any;\n exportColumns?: string[];\n page?: number;\n limit?: number;\n sortBy?: IPaginateSort[];\n}\ntype OptionsWithFilters = Options | any;\n\nfunction isOptions(a: any): a is Options {\n return a && (a.normalizeKeys !== undefined || a.filters);\n}\n\nconst defaultOptions: Options = {\n page: 0,\n limit: DEFAULT_LIMIT,\n};\n\nconst keyToCamelCase = (k: string) => {\n return k.replace(/([-_][a-z])/ig, ($1) => {\n return $1.toUpperCase()\n .replace('-', '')\n .replace('_', '');\n });\n};\n\nconst normalizeOjb = (data: any) => {\n const resp: any = {};\n\n for (const k of Object.keys(data)) {\n resp[keyToCamelCase(k)] = data[k];\n }\n\n return resp;\n}\n\nconst normalizeKeys = (data: any[]) => {\n return data ? data.map(normalizeOjb) : data;\n}\n\nexport async function search(workId: number, name: string, rawOptions: OptionsWithFilters = {}): Promise> {\n const rawFilters = isOptions(rawOptions) ? rawOptions.filters : rawOptions;\n const options = isOptions(rawOptions) ? rawOptions : defaultOptions;\n\n const filters: any[] = [];\n if (rawFilters != null) {\n for (const f of Object.keys(rawFilters)) {\n if (rawFilters[f] != undefined && (typeof (rawFilters[f]) != 'number' || !isNaN(rawFilters[f]))) {\n filters.push({\n name: f,\n value: rawFilters[f] + '',\n });\n }\n }\n }\n\n const request = {\n name,\n filters,\n exportColumns: options.exportColumns,\n order: options.sortBy,\n };\n const r = await fetch(`/api/search/${workId}`, {\n method: 'POST',\n body: JSON.stringify(request),\n headers: {\n ['Accept']: 'application/json',\n ['Content-Type']: 'application/json'\n }\n });\n const resp = await r.json();\n\n if (options.normalizeKeys) {\n return { ...resp, value: normalizeKeys(resp.value) };\n }\n else {\n return resp;\n }\n}\n\nexport async function searchExportToXls(workId: number, name: string, rawOptions: OptionsWithFilters = {}, language?: string): Promise {\n const rawFilters = isOptions(rawOptions) ? rawOptions.filters : rawOptions;\n const options = isOptions(rawOptions) ? rawOptions : defaultOptions;\n\n const filters: any[] = [];\n if (rawFilters != null) {\n for (const f of Object.keys(rawFilters)) {\n if (rawFilters[f] != undefined && (typeof (rawFilters[f]) != 'number' || !isNaN(rawFilters[f]))) {\n filters.push({\n name: f,\n value: rawFilters[f] + '',\n });\n }\n }\n }\n\n const request = {\n name,\n filters,\n language,\n exportColumns: options.exportColumns,\n };\n const r = await fetch(`/api/search/${workId}/export/xls`, {\n method: 'POST',\n body: JSON.stringify(request),\n headers: {\n ['Content-Type']: 'application/json'\n }\n });\n const resp = await r.blob();\n return resp;\n}\n\nexport async function paginate(workId: number, name: string, rawOptions: OptionsWithFilters = {}): Promise>> {\n const rawFilters = isOptions(rawOptions) ? rawOptions.filters : rawOptions;\n const options = isOptions(rawOptions) ? rawOptions : defaultOptions;\n\n const filters: any[] = [];\n if (rawFilters != null) {\n for (const f of Object.keys(rawFilters)) {\n if (rawFilters[f] != undefined && (typeof (rawFilters[f]) !== 'number' || !isNaN(rawFilters[f]))) {\n filters.push({\n name: f,\n value: rawFilters[f] + '',\n });\n }\n }\n }\n\n const request = {\n name,\n filters,\n page: options.page,\n limit: options.limit,\n order: options.sortBy,\n };\n\n const r = await fetch(`/api/search/${workId}/paginate`, {\n method: 'POST',\n body: JSON.stringify(request),\n headers: {\n ['Accept']: 'application/json',\n ['Content-Type']: 'application/json'\n }\n });\n const resp = await r.json();\n\n if (options.normalizeKeys && resp.hasValue) {\n return { ...resp, value: { ...resp.value, data: normalizeKeys(resp.value.data) } };\n }\n else {\n return resp;\n }\n}\n\nexport async function getUserFilters(workId: number, name: string): Promise {\n const url = `/api/search/${workId}/filters`;\n const body = JSON.stringify({\n name,\n });\n\n const r = await fetch(url, {\n method: 'POST',\n body,\n headers: {\n ['Accept']: 'application/json',\n ['Content-Type']: 'application/json',\n }\n });\n\n if (r.status === 200) {\n const resp = await r.json();\n return resp;\n }\n else {\n throw 'not found';\n }\n}","import { IJob, IUserIdentity, IWork, IWorkPermission } from \"../models\";\nimport { evalAndParse } from \"./expressions\";\n\nexport const isAdmin = (user: IUserIdentity | undefined) => {\n return user && user.roles.indexOf('admin') >= 0;\n}\n\nexport const isNotAdmin = (user: IUserIdentity | undefined) => {\n return !(isAdmin);\n}\n\nexport interface IHasPermissionOpts {\n user?: IUserIdentity;\n work?: IWork;\n job?: IJob;\n explicit?: boolean;\n}\n\nconst evaluatePermission = (p: IWorkPermission, ctx: any) => {\n const res = evaluatePermissionImpl(p, ctx);\n // console.log(`evaluate permission result ${p.action}`, p, ctx, res);\n\n return res;\n}\n\nconst evaluatePermissionImpl = (p: IWorkPermission, ctx: any) => {\n if (p.expression) {\n return evalAndParse(p.expression, ctx);\n }\n else if (p.roles) {\n return p.roles.split(',').find(r => ctx.user.roles.includes(r)) != undefined;\n }\n else if (p.policies) {\n return p.policies.split(',').find(r => ctx.user.policies.includes(r)) != undefined;\n }\n else {\n return false;\n }\n}\n\nexport const hasPermission = (perm: string, opts: IHasPermissionOpts) => {\n const permissions = opts.work?.permissions ?? [];\n const perms = permissions.filter(p => p.action == perm);\n\n if (perms.length > 0) {\n const s = perms.find(p => evaluatePermission(p, {\n user: opts.user,\n work: opts.work,\n workId: opts.work?.id,\n jobId: opts.job?.id,\n job: opts.job,\n identity: opts.user,\n }));\n\n return s != undefined;\n }\n else {\n return !opts.explicit;\n }\n}\n\nexport default {\n hasPermission,\n isAdmin,\n isNotAdmin,\n}\n","\nexport const format = (value: string, ... args: any[]) => {\n return value.replace(/{(\\d+)}/g, (match: any, number: number) => {\n return typeof args[number] != 'undefined'\n ? args[number]\n : match;\n });\n}\n\nexport const interpolate = (value: string, args: any) => {\n return value.replace(/{(\\w+)}/g, (match: any, number: number) => {\n return typeof args[number] != 'undefined'\n ? args[number]\n : match;\n });\n}\n\nexport const zeroRightPad = (value: any, digits: number) => {\n return value + Array(Math.max(digits - String(value).length + 1, 0)).join('0');\n}\n\nexport const zeroPad = (number: number, digits: number) => {\n return Array(Math.max(digits - String(number).length + 1, 0)).join('0') + number;\n}\n\nexport const strConcat = (...args: any[]) => {\n return args.filter(s => s != null).join(' ');\n}\n\nexport const strJoin = (join: string, ...args: any[]) => {\n return args.filter(s => s != null).join(join);\n}\n","import {m, q} from './graphql';\r\nimport { ensureType } from './utils';\r\nimport {IOption} from '@models';\r\nimport {IDocument, IFolder} from '@models/documents';\r\n\r\nexport async function pushS3TemporalResource(f: File): Promise> {\r\n const url = 'https://nzjvbux75nqmfarnutjugr5n5i0bphru.lambda-url.eu-west-3.on.aws/';\r\n const formData = new FormData();\r\n formData.append('file', f);\r\n formData.append('name', f.name);\r\n formData.append('session', 'todo');\r\n\r\n const options = {\r\n method: 'POST',\r\n body: formData,\r\n };\r\n const resp = await fetch(url, options);\r\n const id = await resp.text();\r\n return { hasValue: true, value: id };\r\n}\r\n\r\nexport async function pushLocalTemporalResource(f: File): Promise> {\r\n const url = '/api/files/resource/push';\r\n\r\n const formData = new FormData();\r\n formData.append('file', f);\r\n\r\n const options = {\r\n method: 'POST',\r\n body: formData,\r\n };\r\n const resp = await fetch(url, options);\r\n return await resp.json();\r\n}\r\n\r\nexport function pushTemporalResource(f: File): Promise> {\r\n // TODO: buscar la forma de activar/desactivar s3 en tiempo de ejecucion ??\r\n // return pushS3TemporalResource(f);\r\n return pushLocalTemporalResource(f);\r\n}\r\n\r\nexport function getDocumentVersions(workId: number, documentId: number) {\r\n return q(`query GetDocumentInfo($workId: Int!, $documentId: Int!) {\r\n work(id: $workId) {\r\n document(id: $documentId) {\r\n versions {\r\n id, name, mimeType, size, dateTime, userId\r\n }\r\n }\r\n }\r\n }`,\r\n { workId, documentId },\r\n { returnPath: 'work.document.versions' });\r\n}\r\n\r\nexport function getDocumentLastVersion(workId: number, documentId: number) {\r\n return q(`query GetDocumentInfo($workId: Int!, $documentId: Int!) {\r\n work(id: $workId) {\r\n document(id: $documentId) {\r\n lastVersion {\r\n id, name, mimeType, size, dateTime, userId\r\n }\r\n }\r\n }\r\n }`,\r\n { workId, documentId },\r\n { returnPath: 'work.document.lastVersion' });\r\n}\r\n\r\nexport function getDocumentInfo(workId: number, documentId: number) {\r\n return q(`query GetDocumentInfo($workId: Int!, $documentId: Int!) {\r\n work(id: $workId) {\r\n document(id: $documentId) {\r\n info {\r\n hasValue, isError, error, value\r\n }\r\n }\r\n }\r\n }`,\r\n { workId, documentId },\r\n { returnPath: 'work.document.info'});\r\n}\r\n\r\nexport function getFolders(workId: number, includeFolderKinds: number[] = []) {\r\n return m(`query GetFolders($workId: Int!, $includeFolderKinds: [Int!]) {\r\n work(id: $workId) {\r\n folders(includeFolderKinds: $includeFolderKinds) {\r\n id, name, description, workId, parentFolderId, dateTime, userId, sortOrder,\r\n folderKind,\r\n }\r\n }\r\n }`, { workId, includeFolderKinds }, { returnPath: 'work.folders' });\r\n}\r\n\r\nexport function getDocumentsAndFolders(workId: number) {\r\n return m(`query GetDocumentsAndFolders($workId: Int!) {\r\n work(id: $workId) {\r\n folders {\r\n id, name, description, workId, parentFolderId, dateTime, userId, sortOrder,\r\n folderKind,\r\n },\r\n documents {\r\n id, name, description, workId, folderId, documentTypeId, title, sortOrder, dateTime,\r\n uploadDateTime, code, edition, year,\r\n documentKind,\r\n }\r\n }\r\n }`, { workId }, { returnPath: 'work' });\r\n}\r\n\r\nexport function getDocuments(workId: number, includeDocumentKinds: number[] = []) {\r\n return m(`query GetDocuments($workId: Int!, $includeDocumentKinds:[Int!] ) {\r\n work(id: $workId) {\r\n documents (includeDocumentKinds: $includeDocumentKinds) {\r\n id, name, description, workId, folderId, documentTypeId, title, sortOrder, dateTime,\r\n uploadDateTime, code, edition, year,\r\n documentKind,\r\n }\r\n }\r\n }`, { workId, includeDocumentKinds }, { returnPath: 'work.documents' });\r\n}\r\n\r\nexport function saveFolder(workId: number, inputFolder: IFolder) {\r\n const folder = ensureType(inputFolder, {\r\n include: ['id', 'name', 'description', 'parentFolderId', 'workId', 'sortOrder', 'folderKind']\r\n });\r\n\r\n return m(`mutation SaveFolder($workId: Int!, $folder: FolderGraphInputType!) {\r\n saveFolder(workId: $workId, folder: $folder) {\r\n isError, error, value, hasValue\r\n }\r\n }`, { folder, workId }, { returnPath: 'saveFolder' });\r\n}\r\n\r\nexport function removeFolder(workId: number, id: number) {\r\n return m(`mutation RemoveFolder($workId: Int!, $id: Int!) {\r\n removeFolder(workId: $workId, id: $id) {\r\n isError, error, value, hasValue\r\n }\r\n }`, { id, workId }, { returnPath: 'removeFolder' });\r\n}\r\n\r\nexport function removeDocument(workId: number, id: number) {\r\n return m(`mutation RemoveDocument($workId: Int!, $id: Int!) {\r\n removeDocument(workId: $workId, id: $id) {\r\n isError, error, value, hasValue\r\n }\r\n }`, { id, workId }, { returnPath: 'removeDocument' });\r\n}\r\n\r\nexport function saveDocument(workId: number, inputDoc: IDocument) {\r\n const doc = ensureType(inputDoc, {\r\n include: [\r\n 'id', 'name', 'description', 'folderId',\r\n 'workId', 'sortOrder', 'title', 'temporalResource',\r\n 'code', 'year', 'edition',\r\n 'documentKind',\r\n 'areaDownload'\r\n ],\r\n ints: [ 'sortOrder' ]\r\n });\r\n\r\n return m(`mutation SaveDocument($workId: Int!, $doc: DocumentGraphInputType!) {\r\n saveDocument(workId: $workId, document: $doc) {\r\n isError, error, value, hasValue\r\n }\r\n }`, { workId, doc }, { returnPath: 'saveDocument' });\r\n}\r\n","import { m, q } from './graphql';\nimport { pushTemporalResource } from './documents';\nimport { IRequirementFulfillData, fulfillDocumentIsFile, IRequirementFulfillDocument, IRequirementIncidence, IRequirementNote, IRequirementValidationData, IRequirement } from '@models/requirements';\nimport { ensureType } from './utils';\nimport { ResourceType } from '@models';\n\nexport async function validateRequirement(\n workId: number,\n requirementId: number,\n validate: boolean,\n validationData: IRequirementValidationData,\n fileResourceId: string | undefined,\n fileResourceName: string | undefined) {\n return m(`mutation ValidateRequirement($workId: Int!, $requirementId: Int!, $validate: Boolean!, $validationData: RequirementValidationDataGraphInputType!, $fileResourceId: String, $fileResourceName: String) {\n validateRequirement(workId: $workId, requirementId: $requirementId, validate: $validate, data: $validationData, fileResourceId: $fileResourceId, fileResourceName: $fileResourceName) {\n value, hasValue, error, isError\n }\n }`,\n { workId, requirementId, validate, validationData, fileResourceId, fileResourceName },\n { returnPath: 'validateRequirement' });\n}\n\nexport async function getRequirements(\n workId: number,\n targetType: number,\n targetId: number) {\n return q(`query GetRequirements($workId: Int!, $targetType: Int!, $targetId: Int!) {\n work(id: $workId) {\n requirements(targetType: $targetType, targetId: $targetId) {\n id, creationDate, workId, requirementTypeId,\n isExpired, isShared,\n hasIncidences, hasNotes,\n expirationDate, departmentId, contractorId,\n machineryId, workerId,\n jobHasContractorId, jobHasMachineryId, jobHasWorkerId,\n jobHasDepartmentId,\n title, remarks, color,\n inProgress, mandatory,\n requirementType {\n id,\n dependencies {\n dependsOnRequirementId, dependencyType, propagate\n },\n isResourcePicture\n }\n status {\n id, dateTime, statusTypeId, createdById, isCurrent, flag, validatedBy, remarks, displayDateTime,\n },\n documents {\n id, dateTime, documentRestrictionId, createdBy, document {\n dateTime,\n id, name, description, hasActiveVersion, mimeType, size, versions {\n id, name, mimeType, size, dateTime, userId\n }\n }\n },\n incidences {\n id, remarks, creationDate, createdById, documentVersionId\n },\n notes {\n id, remarks, creationDate, createdById\n }\n }\n }\n }`,\n { workId, targetId, targetType },\n { returnPath: 'work.requirements' });\n}\n\nexport async function getRequirement(\n workId: number,\n targetType: number,\n targetId: number,\n id: number\n) {\n return q(`query GetRequirement($workId: Int!, $targetType: Int!, $targetId: Int!, $id: Int!) {\n work(id: $workId) {\n requirement(targetType: $targetType, targetId: $targetId, id: $id) {\n id, creationDate, workId, requirementTypeId, isShared,\n hasIncidences, hasNotes,\n expirationDate, departmentId, contractorId,\n inProgress, color,\n status {\n id, dateTime, statusTypeId, createdById, isCurrent, flag, validatedBy, remarks, displayDateTime,\n },\n documents {\n id, dateTime, documentRestrictionId, createdBy, document {\n id, name, description, mimeType, size, versions {\n id, name, mimeType, size, dateTime, userId\n }\n }\n },\n incidences {\n id, remarks, creationDate, createdById, documentVersionId,\n },\n notes {\n id, remarks, creationDate, createdById\n }\n }\n }\n }`, { workId, targetId, targetType, id }, { returnPath: 'work.requirement' });\n}\n\ntype RequirementFromResource = {\n requirementId: number,\n resourceType: number,\n resourceId: number,\n}\n\nexport async function getRequirementsFromResources(\n workId: number,\n requirementIds: RequirementFromResource[]) {\n return q(`query GetRequirementsFromResources($workId: Int!, $requirementIds: [RequirementResourceIdGraphType]) {\n work(id: $workId) {\n requirementsFromResources(requirementIds: $requirementIds) {\n id, creationDate, workId, requirementTypeId, isShared,\n hasIncidences, hasNotes, title,\n expirationDate, departmentId, contractorId,\n inProgress, mandatory, color,\n status {\n id, dateTime, statusTypeId, createdById, isCurrent, flag, validatedBy, remarks, displayDateTime,\n },\n documents {\n id, dateTime, documentRestrictionId, createdBy, document {\n id, name, description, mimeType, size, dateTime, versions {\n id, name, mimeType, size, dateTime, userId\n }\n }\n },\n incidences {\n id, remarks, creationDate, createdById\n },\n notes {\n id, remarks, creationDate, createdById\n }\n }\n }\n }`, { workId, requirementIds }, { returnPath: 'work.requirementsFromResources' });\n}\n\nexport async function createFreeRequirement(\n workId: number,\n jobId: number,\n requirementData: IRequirementFulfillData,\n resourceType: number | undefined = undefined,\n resourceId: number | undefined = undefined,\n statusType: number | undefined = undefined,\n) {\n // generamos los temporal resources id\n const documents: IRequirementFulfillDocument[] = [];\n for (const r of requirementData.documents) {\n if (fulfillDocumentIsFile(r.resourceId)) {\n const data = await pushTemporalResource(r.resourceId);\n documents.push({ ...r, resourceId: data.value });\n } else {\n documents.push({ ...r });\n }\n }\n\n const data = { ...requirementData, documents };\n\n return m(`mutation CreateFreeRequirement(\n $workId: Int!,\n $jobId: Int!,\n $data: FulfillRequirementGraphInputType!,\n $resourceType: Int,\n $resourceId: Int,\n $statusType: Int,\n ) {\n createFreeRequirement(\n workId: $workId,\n jobId: $jobId,\n data: $data,\n resourceType: $resourceType,\n resourceId: $resourceId,\n statusType: $statusType\n ) {\n hasValue, value, error, isError\n }\n }`, {\n workId, jobId, data, resourceType, resourceId, statusType,\n }, {\n returnPath: 'createFreeRequirement'\n });\n}\n\nexport async function fulfillRequirement(\n workId: number,\n requirementId: number,\n requirementData: IRequirementFulfillData) {\n // generamos los temporal resources id\n const documents: IRequirementFulfillDocument[] = [];\n for (const r of requirementData.documents) {\n if (fulfillDocumentIsFile(r.resourceId)) {\n const data = await pushTemporalResource(r.resourceId);\n documents.push({ ...r, resourceId: data.value });\n } else {\n documents.push({ ...r });\n }\n }\n\n const data = { ...requirementData, documents };\n\n return m(`mutation FulfillRequirement($workId: Int!, $requirementId: Int!, $data: FulfillRequirementGraphInputType!) {\n fulfillRequirement(workId: $workId, requirementId: $requirementId, data: $data) {\n hasValue, value, error, isError\n }\n }`, {\n workId, requirementId, data\n }, {\n returnPath: 'fulfillRequirement'\n });\n}\n\nexport async function saveRequirementIncidence(\n workId: number,\n inputData: IRequirementIncidence,\n fileResourceId: string | undefined = undefined,\n fileResourceName: string | undefined = undefined) {\n const data = ensureType(inputData);\n\n return m(`mutation SaveRequirementIncidence($workId: Int!, $data: RequirementIncidenceGraphInputType!, $fileResourceId: String, $fileResourceName: String) {\n saveRequirementIncidence(workId: $workId, data: $data, fileResourceId: $fileResourceId, fileResourceName: $fileResourceName) {\n hasValue, value, error\n }\n }`,\n { workId, data, fileResourceId, fileResourceName },\n { returnPath: 'saveRequirementIncidence' });\n}\n\nexport async function saveRequirementNote(workId: number, inputData: IRequirementNote) {\n const data = ensureType(inputData);\n\n return m(`mutation SaveRequirementNote($workId: Int!, $data: RequirementNoteGraphInputType!) {\n saveRequirementNote(workId: $workId, data: $data) {\n hasValue, value, error\n }\n }`,\n { workId, data },\n { returnPath: 'saveRequirementNote' });\n}\n\nexport async function getRequirementIncidences(workId: number, requirementId: number, targetType: number, targetId: number) {\n return q(`query GetRequirementIncidences($workId: Int!, $requirementId: Int!, $targetType: Int!, $targetId: Int!) {\n work(id: $workId) {\n requirement(id: $requirementId, targetType: $targetType, targetId: $targetId) {\n incidences {\n id, requirementId, remarks, creationDate, documentVersionId\n }\n }\n }\n }`, { workId, requirementId, targetType, targetId },\n { returnPath: 'work.requirement.incidences' });\n}\n\nexport async function getRequirementNotes(workId: number, requirementId: number, targetType: number, targetId: number) {\n return q(`query GetRequirementNotes($workId: Int!, $requirementId: Int!, $targetType: Int!, $targetId: Int!) {\n work(id: $workId) {\n requirement(id: $requirementId, targetType: $targetType, targetId: $targetId) {\n notes {\n id, requirementId, remarks, creationDate\n },\n status {\n id, requirementId, remarks, dateTime\n }\n }\n }\n }`, { workId, requirementId, targetType, targetId },\n { returnPath: 'work.requirement.notes' });\n}\n\nexport async function forceResourceStatus(workId: number, resourceType: ResourceType, resourceId: number, validated: boolean, date?: string) {\n const data = { workId, resourceType, resourceId, validated, forcedStatusUntilDate: date };\n\n const resp = await m(`mutation ForceResourceStatus($workId: Int!, $resourceType: Int!, $resourceId: Int!, $validated: Boolean!, $forcedStatusUntilDate: String) {\n forceResourceStatus(workId: $workId, resourceType: $resourceType, resourceId: $resourceId, validated: $validated, untilDate: $forcedStatusUntilDate) {\n hasValue, value, error, isError\n }\n }`, data);\n\n return resp?.data.forceResourceStatus;\n}\n\nexport async function requirementMeetsDependencies(workId: number, requirementId: number, jobId?: number) {\n return q(`query RequirementMeetsDependencies($workId: Int!, $requirementId: Int!, $jobId: Int) {\n work(id: $workId) {\n requirementMeetsDependencies(requirementId: $requirementId, jobId: $jobId) {\n hasValue, value, error, isError\n }\n }\n }`, { workId, requirementId, jobId }, { returnPath: 'work.requirementMeetsDependencies' });\n}\n\nexport async function requirementCanBeValidated(workId: number, requirementId: number) {\n return q(`query RequirementCanBeValidated($workId: Int!, $requirementId: Int!) {\n work(id: $workId) {\n requirementCanBeValidated(id: $requirementId)\n }\n }`, { workId, requirementId }, { returnPath: 'work.requirementCanBeValidated' });\n}\n\nexport async function removeRequirementFile(requirement: IRequirement) {\n return m(`mutation RemoveRequirementFile($workId: Int!, $requirementId: Int!) {\n removeRequirementFile(workId: $workId, id: $requirementId) {\n hasValue, value, error, isError\n }\n }`, { workId: requirement.workId, requirementId: requirement.id }, { returnPath: 'removeRequirementFile' });\n}\n\nexport async function removeFreeRequirement(requirement: IRequirement) {\n return m(`mutation RemoveFreeRequirement($workId: Int!, $requirementId: Int!) {\n removeFreeRequirement(workId: $workId, id: $requirementId) {\n hasValue, value, error, isError\n }\n }`, { workId: requirement.workId, requirementId: requirement.id }, { returnPath: 'removeFreeRequirement' });\n}\n","import { pushTemporalResource } from './documents';\r\nimport { getClient, gql, noCache, q, m } from './graphql';\r\nimport { IHelpDeskItem, IJob, IJobHasDepartment, IHelpDeskItemFile, ICommunication, ICommunicationFile } from '../../models';\r\nimport { formatProperty } from './utils';\r\n\r\nexport async function initialize() {\r\n const client = getClient();\r\n const query = gql`\r\nquery Initialize {\r\n works {\r\n id, name, description, countryId, defaultEmail, helpDeskEmail, footerResource, contextData,\r\n users {\r\n id, userName, email, roles, policies\r\n },\r\n settings,\r\n workspaces {\r\n id, name, description, isActive, countryId,\r\n regionId, countyId, contact, address,\r\n location, postalCode, phone, fax, email,\r\n properties {\r\n id, propertyGroupTypeId, workspaceId, value\r\n }\r\n },\r\n workShifts {\r\n id, name, startMinutes, endMinutes\r\n },\r\n departments {\r\n id, name, description, isOblique, workers {\r\n id, name, surname\r\n }\r\n }\r\n }\r\n}`;\r\n\r\n const resp = await client.query({ query, fetchPolicy: noCache });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function getWorks() {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetWorks {\r\n works {\r\n id, name, description, countryId,\r\n defaultEmail, helpDeskEmail, footerResource, contextData,\r\n users {\r\n id, userName, email, roles, policies\r\n },\r\n settings,\r\n workspaces {\r\n id, name, description, isActive, countryId, regionId, countyId\r\n },\r\n legalForms {\r\n id, name, hideContractorProperties, workerTypes {\r\n id, workerType {\r\n id, name\r\n }\r\n }\r\n },\r\n workShifts {\r\n id, name, startMinutes, endMinutes\r\n },\r\n departments {\r\n id, name, description, isOblique\r\n },\r\n contractorSettings {\r\n id, workId, showGeneralIndicators, legalFormMandatory,\r\n jhcStartDateMandatory, jhcDescriptionMandatory, cifCantBeRepeated,\r\n canAddSubWorkers,\r\n canAddSubMachineries,\r\n },\r\n machinerySettings {\r\n id, workId, showGeneralIndicators, subTypeMandatory, onlyLicenseNumber,\r\n },\r\n workerSettings {\r\n id, workId, showGeneralIndicators, showWorkerImage, workerTypeIsMandatory\r\n },\r\n }\r\n}`;\r\n\r\n const resp = await client.query({ query, fetchPolicy: noCache });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function getWork(workId: number) {\r\n const client = getClient();\r\n const query = gql`\r\nquery GetSelectedWork($workId: Int!) {\r\n communications(workId: $workId) {\r\n id, title, description, fromDate, toDate,\r\n documents {\r\n id, name, description, title\r\n }\r\n },\r\n work(id: $workId) {\r\n id, name, description, countryId, users, {\r\n id, userName, email, roles, policies, departments\r\n },\r\n jobSettings {\r\n id, workId, skipInformationLoadedState, colorizeContractorIndicators, showResourceIncidenceIndicator\r\n },\r\n activeModules {\r\n id, name, hasFrontend, frontendResource\r\n },\r\n defaultEmail,\r\n helpDeskEmail,\r\n footerResource,\r\n contextData,\r\n settings,\r\n workerDocumentTypes{\r\n id, name, workId\r\n },\r\n workerTypes{\r\n id, name, workId\r\n }\r\n workspaces {\r\n id, name, description, isActive, countryId, regionId, countyId\r\n },\r\n workShifts {\r\n id, name, startMinutes, endMinutes\r\n },\r\n departments {\r\n id, name, description, isOblique, workers {\r\n id, name, surname, workspaces {\r\n id\r\n }\r\n }\r\n },\r\n workI18NResources {\r\n language, name, value\r\n },\r\n permissions {\r\n name, action, policies, roles, expression\r\n },\r\n activities {\r\n id, name, workId\r\n },\r\n legalForms {\r\n id, name, workId, hideContractorProperties, workerTypes {\r\n id, workerType {\r\n id, name\r\n }\r\n }\r\n },\r\n machineryTypes {\r\n id, name, subTypes {\r\n id, name, parentId\r\n }\r\n },\r\n propertyGroupTypes {\r\n id, name, title, styleClassName, description, containerType, style, objectType, isInternal, mandatory, hidable,\r\n properties {\r\n id, name, title, typeId, placeholder, help, parentId, propertyOrder, selectOptions\r\n }\r\n },\r\n contractTypes {\r\n id, name\r\n },\r\n preventiveResources {\r\n id, name\r\n },\r\n requirementGroups {\r\n id, name, title, description, workId, orderValue, color, icon, style, isActive, legend,\r\n requirementTypes {\r\n id, name, title, description, workId, requirementGroupId,\r\n targetType, isActive, isShared, kindId,\r\n criteria, template,\r\n expirationTypeId, expirationValue, expirationTypeId,\r\n expirationRequired,\r\n expirationThreshold,\r\n color, orderValue,\r\n requireJobInformationAccess,\r\n validationTypeId,\r\n isResourcePicture,\r\n dependencies {\r\n id, requirementTypeId, dependsOnRequirementId, propagate, dependencyType\r\n },\r\n documentRestrictions {\r\n id, name, title, mimeTypes, regexp, excludeMimeTypes,\r\n },\r\n suggestions {\r\n id, name\r\n },\r\n validationHolders {\r\n id, appUserId, departmentId, workFunctionId, isBlocking,\r\n validationOrder, jobResponsible, optional,\r\n jobImpliedRso,\r\n }\r\n }\r\n },\r\n requirementStatusTypes {\r\n id, name, description\r\n },\r\n requirementValidationTypes {\r\n id, name\r\n },\r\n resourceStatusTypes {\r\n id, name\r\n },\r\n validations {\r\n id, name, value, field, resourceType, errorMessage\r\n },\r\n contractorSettings {\r\n id, workId, showGeneralIndicators, legalFormMandatory,\r\n jhcStartDateMandatory, jhcDescriptionMandatory, cifCantBeRepeated,\r\n canAddSubWorkers,\r\n canAddSubMachineries,\r\n },\r\n machinerySettings {\r\n id, workId, showGeneralIndicators, subTypeMandatory, onlyLicenseNumber,\r\n },\r\n workerSettings {\r\n id, workId, showGeneralIndicators, showWorkerImage, workerTypeIsMandatory\r\n },\r\n }\r\n}`;\r\n\r\n const resp = await client.query({\r\n query,\r\n fetchPolicy: noCache,\r\n variables: {\r\n workId\r\n }\r\n });\r\n return resp;\r\n}\r\n\r\nexport async function getContractors(workId: number) {\r\n const resp = q(`\r\n query GetContractors($workId: Int!) {\r\n work(id: $workId) {\r\n contractors {\r\n id, name, code\r\n }\r\n }\r\n }`, { workId }, {\r\n returnPath: 'work.contractors',\r\n });\r\n\r\n return resp;\r\n}\r\n\r\n// Jobs\r\nexport async function getJobs(workId: number) {\r\n const resp = q(`\r\n query GetJobs($workId: Int!) {\r\n work(id: $workId) {\r\n jobs {\r\n id, name, code, workspaceId, activityTypeId, workId\r\n workShiftId, contractTypeId, description,\r\n startDate, endDate, remarks, preventiveResourceId,\r\n countDepartmentsTotal, countDepartmentsAuthorized,\r\n countMachineriesTotal, countMachineriesAuthorized,\r\n countWorkersTotal, countWorkersAuthorized,\r\n countContractorsTotal, countContractorsAuthorized, isActive,\r\n contractors {\r\n id, contractorId, contractor {id, name}, startDate, currentStatusType,\r\n forcedStatusUntilDate,\r\n hierarchyLevel,\r\n },\r\n machineries {\r\n id, machineryId, startDate, machinery {id, name, code, contractorId,\r\n contractor {id, name}}, currentStatusType, forcedStatusUntilDate\r\n }\r\n departments {\r\n id, departmentId, responsibleId, currentStatusType, forcedStatusUntilDate\r\n }\r\n }\r\n }\r\n }`, { workId });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function getJobReferences(workId: number) {\r\n const resp = q(`\r\n query GetJobReferences($workId: Int!) {\r\n work(id: $workId) {\r\n jobs {\r\n id, name, code\r\n }\r\n }\r\n }`, { workId });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function saveJob(inputData: IJob, departments: IJobHasDepartment[] = []) {\r\n const data = {\r\n ...inputData,\r\n properties: (inputData.properties ?? []).map(formatProperty(inputData.workId)),\r\n };\r\n\r\n const client = getClient();\r\n const mutation = gql`\r\nmutation SaveJob($workId: Int!, $data: JobInputType!, $departments: [JobHasDepartmentInputType]) {\r\n saveJob(workId: $workId, job: $data, departments: $departments) {\r\n isError, error, value\r\n }\r\n}\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n workId: inputData.workId,\r\n data,\r\n departments,\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function removeJob(id: number, workId: number) {\r\n const client = getClient();\r\n const mutation = gql`\r\n mutation RemoveJob($id: Int!, $workId: Int!) {\r\n removeJob(id: $id, workId: $workId) {\r\n isError, error, value\r\n }\r\n }\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n id,\r\n workId\r\n }\r\n });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function createHelpDeskItem(\r\n input: IHelpDeskItem,\r\n files: File[] = []) {\r\n const client = getClient();\r\n const inputFileResources: IHelpDeskItemFile[] = [];\r\n\r\n if (files) {\r\n for (const f of files) {\r\n const res = await pushTemporalResource(f);\r\n if (res.hasValue) {\r\n inputFileResources.push({\r\n fileName: f.name,\r\n temporalResourceId: res.value,\r\n });\r\n }\r\n }\r\n }\r\n\r\n input.files = inputFileResources;\r\n\r\n const mutation = gql`\r\nmutation CreateHelpDeskItem($input: HelpDeskItemInputType!) {\r\n createHelpDeskItem(item: $input) {\r\n isError, error, value, hasValue\r\n }\r\n}\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n input\r\n }\r\n });\r\n\r\n return resp.data.createHelpDeskItem;\r\n}\r\n\r\nexport async function saveCommunication(\r\n input: ICommunication, deletion: boolean = false) {\r\n const client = getClient();\r\n\r\n const mutation = gql`\r\nmutation saveCommunication($input: CommunicationGraphInputType!, $deletion: Boolean!) {\r\n saveCommunication(data: $input, deletion: $deletion) {\r\n isError, error, value, hasValue\r\n }\r\n}\r\n `;\r\n\r\n const resp = await client.mutate({\r\n mutation,\r\n variables: {\r\n input,\r\n deletion\r\n }\r\n });\r\n\r\n return resp.data.saveCommunication;\r\n}\r\n\r\nexport async function getCommunicationReceivers(\r\n communication: ICommunication) {\r\n const resp = q(`\r\n query GetCommunicationReceivers($communication: CommunicationGraphInputType!) {\r\n communicationReceivers(communication: $communication) {\r\n id, userName, email\r\n }\r\n }`,\r\n { communication },\r\n { returnPath: 'communicationReceivers' });\r\n\r\n return resp;\r\n}\r\n\r\nexport async function getCommunication(\r\n workId: number,\r\n id: number) {\r\n const resp = q(`\r\n query GetCommunicationById($workId: Int!, $id: Int!) {\r\n communication(workId: $workId, id: $id) {\r\n id, creationDate, createdBy, workId,\r\n fromDate,\r\n toDate,\r\n title, description,\r\n targetType,\r\n isActive, isRecursive,\r\n mainContractors,\r\n documents {\r\n id, name, description, title\r\n }\r\n }\r\n }`,\r\n { workId, id },\r\n { returnPath: 'communication' });\r\n\r\n return resp;\r\n}\r\n\r\nexport function validateCommunication(id: number) {\r\n return m(`\r\n mutation ValidateCommunication($id: Int!) {\r\n validateCommunication(id: $id) {\r\n isError, error, value, hasValue\r\n }\r\n }`, { id }, { returnPath: 'validateCommunication' });\r\n}\r\n\r\n\r\nexport function SaveUserPolicies(userId: number, policies: string[]) {\r\n console.log('SaveUserPolicies', userId, policies);\r\n return m(`\r\n mutation SaveUserPolicies($userId: Int!, $policies: [String]! ) {\r\n saveUserPolicies(userId: $userId, policies: $policies) {\r\n isError, error, value, hasValue\r\n }\r\n }`, { userId, policies }, { returnPath: 'saveUserPolicies' });\r\n}","export const formatFileSize = (bytes: number|undefined) => {\n if (bytes == undefined) {\n return '';\n }\n else {\n const thresh = 1024;\n if (Math.abs(bytes) < thresh) {\n return bytes + ' B';\n }\n\n const units = ['kB','MB','GB','TB','PB','EB','ZB','YB'];\n let u = -1;\n do {\n bytes /= thresh;\n ++u;\n } while (Math.abs(bytes) >= thresh && u < units.length - 1);\n return bytes.toFixed(1) + ' ' + units[u];\n }\n}\n\n\nexport const downloadBlob = (blob: Blob, filename: string) => {\n const a = document.createElement('a');\n\n a.download = filename;\n a.href = window.URL.createObjectURL(blob);\n\n a.click();\n}","import { getClient, gql } from \"./graphql\";\n\nexport async function initialize() {\n const client = getClient();\n const query = gql`\nquery Initialize {\n user {\n id, userName, email, roles, policies,\n departments, workFunctions,\n workerIds, obliqueDepartments,\n contractorIds\n },\n documentTypes {\n id, name, description, isActive\n },\n countries {\n id, name, code,\n regions {\n id, name,\n counties {\n id, name, code\n }\n }\n },\n requirementExpirationTypes {\n id, name, description\n },\n requirementTypeKinds {\n id, name, description\n }\n}`;\n\n const resp = await client.query({ query });\n\n return resp;\n}\n","import { Action, Reducer } from 'redux';\nimport * as Actions from './actions/app';\nimport * as Constants from './constants';\nimport * as Identity from './identity';\n\nexport interface IAppState {\n loading: boolean;\n loadingCtx?: string;\n loadingMessage?: string;\n}\n\nconst stopLoadingType = '[APP] STOP LOADING';\nconst startLoadingType = '[APP] START LOADING';\n\nexport interface StopLoadingAction {\n type: '[APP] STOP LOADING';\n}\nexport interface StartLoadingAction {\n type: '[APP] START LOADING';\n ctx?: string;\n message?: string;\n}\n\nexport type KnownAction = StartLoadingAction | StopLoadingAction | {type: undefined};\n\nconst stopLoading = () => ({ type: stopLoadingType });\nconst startLoading = (action: Partial) => ({\n ...action,\n type: startLoadingType\n});\n\nexport const actionCreators = {\n startLoading,\n stopLoading,\n initialize: () => async (dispatch: Function) => {\n const resp = await Actions.initialize();\n\n if (resp.data && resp.data.user) {\n dispatch(Identity.actionCreators.setUser(resp.data.user));\n }\n if (resp.data) {\n dispatch(Constants.actionCreators.initialize({\n countries: resp.data.countries,\n documentTypes: resp.data.documentTypes,\n requirementExpirationTypes: resp.data.requirementExpirationTypes,\n requirementTypeKinds: resp.data.requirementTypeKinds,\n }));\n }\n dispatch(stopLoading());\n }\n};\n\nexport const reducer: Reducer = (state: IAppState | undefined, incomingAction: Action): IAppState => {\n if (state === undefined) {\n return { loading: true };\n }\n\n const action = incomingAction as KnownAction;\n switch (action.type) {\n case startLoadingType:\n return { ...state, loading: true, loadingCtx: action.ctx, loadingMessage: action.message };\n case stopLoadingType:\n return { ...state, loading: false, loadingCtx: undefined, loadingMessage: undefined };\n default:\n return state;\n }\n};\n","export function storageGet(key: string, defaultValue: T) {\n const data = localStorage.getItem(key);\n\n if (data != undefined && data != '') {\n return JSON.parse(atob(data)) as T;\n }\n else {\n return defaultValue;\n }\n}\n\nexport function storageSet(key: string, value: T) {\n localStorage.setItem(key, btoa(JSON.stringify(value)));\n}\n\ntype Predicate = (key: string) => boolean;\n\nexport function storageClear(key: string | Predicate) {\n if (typeof (key) === 'string') {\n localStorage.removeItem(key);\n }\n else {\n const keys = Object.keys(localStorage);\n for (const k of keys) {\n if (key(k)) {\n localStorage.removeItem(k);\n }\n }\n }\n}\n\n// storageClear(k => k.startsWith('filters'));\n","import * as React from 'react';\n\nexport function Loading() {\n return ;\n}","import { IReportDefinition } from '@models/reports';\n\nexport async function getReports(workId: number): Promise {\n const url = `/api/reports/${workId}/reports`;\n\n const r = await fetch(url, {\n method: 'GET',\n headers: {\n ['Accept']: 'application/json',\n ['Content-Type']: 'application/json',\n }\n });\n\n if (r.status === 200) {\n const resp = await r.json();\n return resp;\n }\n else {\n throw 'not found';\n }\n}\n\nexport async function getReport(workId: number, reportName: string): Promise {\n const url = `/api/reports/${workId}/report/${reportName}`;\n\n const r = await fetch(url, {\n method: 'GET',\n headers: {\n ['Accept']: 'application/json',\n ['Content-Type']: 'application/json',\n }\n });\n\n if (r.status === 200) {\n const resp = await r.json();\n return resp;\n }\n else {\n throw 'not found';\n }\n}","import * as React from 'react';\n\nimport { redirectTo } from '../../utils';\nimport { Portal } from './Portal';\n\nexport interface IProps {\n children?: any;\n onClick?: Function;\n redirectTo?: string;\n text?: string;\n}\n\nexport function BreadcrumbItem(props: IProps) {\n const performOnClick = (..._: any) => {\n if (props.onClick) {\n props.onClick();\n }\n\n if (props.redirectTo) {\n redirectTo(props.redirectTo);\n }\n }\n\n return (\n
    \n
  • \n {props.text}\n {props.children}\n
  • \n
\n
);\n}","import * as React from 'react';\n\nimport { IWork } from '@models';\n\n\ninterface IUseWorkFormSettings {\n work: IWork,\n scope: string\n}\n\nexport const useWorkFormSettings = (props: IUseWorkFormSettings) => {\n const settings = React.useRef(props.work.settingsObj ?? {});\n\n const hiddenFields: string[] = (settings.current[props.scope + 'HiddenFields'] as string[]) ?? [];\n\n const show = (field: string) => {\n return hiddenFields.includes(field) === false;\n }\n\n return {\n show,\n }\n}","import { IUserIdentity, IJob } from '@models';\n// @ts-ignore\nimport Parser from './parser';\n\nexport type Invocation = { type: 'invocation', name: string, args: any };\nexport type PathSegment = string | Invocation;\n\nexport interface IExpression {\n type: string;\n op?: string;\n left?: IExpression;\n right?: IExpression;\n values?: [PathSegment];\n value?: string | boolean | number | IExpression;\n // invoke\n name?: string;\n args?: any[] | any;\n}\n\ntype Ctx = any;\n\nconst isSingleValue = (expr: IExpression) =>\n expr.type === 'boolean'\n || expr.type === 'number'\n || expr.type === 'string';\n\nconst specialTerms = [\n 'contains',\n 'departmentIds',\n 'mainDepartment',\n 'impliedDepartment',\n 'list',\n 'isWorker',\n 'isContractor',\n 'isGestor',\n 'responsible',\n 'impliedResponsible',\n 'getObliqueDepartment',\n 'getProductiveDepartment',\n];\n\nconst invoke = ({ name, args }: IExpression, value: any, root: any = {}) => {\n if (name === 'Contains') {\n if (typeof (value) === 'string') {\n return value?.includes(evaluate(args));\n }\n else if (value?.includes) {\n return value?.includes(evaluate(args));\n } else {\n console.error('Expressions: error invoking Contains', value, args);\n return null;\n }\n } else if (name == \"List.Union\" || name == 'Union') {\n const a = evaluate(args[0], root);\n const b = evaluate(args[1], root);\n return a.find((r: any) => b.includes(r)) != undefined;\n } else if (name == 'DepartmentIds' || name == 'departmentIds') {\n if (value && value.departments) {\n return value.departments.map((i: any) => typeof (i) == 'number' ? i : i.departmentId ?? i.id);\n } else {\n return false;\n }\n } else if (name == 'MainDepartment' || name == 'mainDepartment') {\n const job = value as IJob;\n if (job && job.departments) {\n return job\n .departments\n .find(d => d.isMain)?.departmentId ?? null;\n } else {\n console.log('Expressions: evaluating MainDepartment on no job', value);\n return false;\n }\n } else if (name == 'ImpliedDepartment' || name == 'impliedDepartment') {\n const job = value as IJob;\n if (job && job.departments) {\n return job\n .departments\n .find(d => d.isMain == false)?.departmentId ?? null;\n } else {\n console.log('Expressions: evaluating ImpliedDepartment on no job', value);\n return false;\n }\n } else if (name == 'Responsible' || name == 'responsible') {\n const job = value as IJob;\n if (job && job.departments) {\n return job\n .departments\n .find(d => d.isMain)?.responsibleId ?? null;\n } else {\n console.log('Expressions: evaluating responsible on no job', value);\n return false;\n }\n } else if (name == 'ImpliedResponsible' || name == 'impliedResponsible') {\n const job = value as IJob;\n if (job && job.departments) {\n return job\n .departments\n .find(d => d.isMain == false)?.responsibleId ?? null;\n } else {\n console.log('Expressions: evaluating implied responsible on no job', value);\n return false;\n }\n } else if (name == 'HasDepartment') {\n let identity = value as IUserIdentity;\n\n if (value == undefined) {\n identity = root.identity;\n }\n if (identity && identity.departments) {\n const needle = evaluate(args, root);\n const res = identity.departments.find((d: any) => {\n if (typeof d === 'number') {\n return d === needle;\n }\n else if ('departmentId' in d) {\n return d.departmentId === needle;\n } else {\n return d.id === needle;\n }\n });\n return res != undefined;\n } else {\n console.log('Expressions: evaluating HasDepartment on identity with no departments', value, args);\n return false;\n }\n } else if (name == 'AnyDepartment') {\n let identity = value as IUserIdentity;\n\n if (value == undefined) {\n identity = root.identity;\n }\n if (identity && identity.departments) {\n const needles = evaluate(args, root);\n const res = identity\n .departments\n .find(d => needles.indexOf(d) >= 0) != undefined;\n return res;\n } else {\n console.log('Expressions: evaluating AnyDepartment on identity with no departments', value);\n return false;\n }\n } else if (name == 'GetObliqueDepartment' || name == 'getObliqueDepartment') {\n if (value && value.departments && root && root.work && root.work.departments) {\n const userDepartmentIds = value.departments;\n const workDepartments = root.work.departments;\n const userDepartments = workDepartments.filter((department: any) => userDepartmentIds.includes(department.id));\n return userDepartments.find((d: any) => d.isOblique)?.id ?? null;\n } else {\n console.log('Expressions: evaluating GetObliqueDepartment on no department', value);\n return false;\n }\n } else if (name == 'GetProductiveDepartment' || name == 'getProductiveDepartment') {\n if (value && value.departments && root && root.work && root.work.departments) {\n const userDepartmentIds = value.departments;\n const workDepartments = root.work.departments;\n const userDepartments = workDepartments.filter((department: any) => userDepartmentIds.includes(department.id));\n return userDepartments.find((d: any) => d.isOblique == false)?.id ?? null;\n } else {\n console.log('Expressions: evaluating GetProductiveDepartment on no department', value);\n return false;\n }\n }\n else if (name == 'HasPolicy') {\n let identity = value as IUserIdentity;\n\n if (value == undefined) {\n identity = root.identity;\n }\n\n if (identity && identity.policies) {\n const res = identity.policies.indexOf(evaluate(args)) >= 0;\n return res;\n } else {\n console.log('Expressions: evaluating HasPolicy on non identity', value);\n return false;\n }\n } else if (name == 'HasWorker') {\n let identity = value as IUserIdentity;\n\n if (value == undefined) {\n identity = root.identity;\n }\n\n if (identity && identity.workerIds) {\n const needle = evaluate(args, root);\n const res = identity.workerIds.find(d => d == needle) != undefined;\n return res;\n } else {\n console.log('Expressions: evaluating HasWorker on non identity', value);\n return false;\n }\n } else if (name?.toLowerCase() == 'isworker') {\n let identity = value as IUserIdentity;\n\n if (value == undefined) {\n identity = root.identity;\n }\n\n if (identity && identity.roles) {\n const res = identity.roles.indexOf(\"worker\") >= 0;\n return res;\n }\n else {\n console.log('Expressions: evaluating IsWorker on non identity', value);\n return false;\n }\n } else if (name?.toLowerCase() == 'iscontractor') {\n let identity = value as IUserIdentity;\n\n if (value == undefined) {\n identity = root.identity;\n }\n\n if (identity && identity.roles) {\n const res = identity.roles.indexOf(\"contractor\") >= 0;\n return res;\n }\n else {\n console.log('Expressions: evaluating IsContractor on non identity', value);\n return false;\n }\n } else if (name?.toLowerCase() == 'isgestor') {\n let identity = value as IUserIdentity;\n\n if (value == undefined) {\n identity = root.identity;\n }\n\n if (identity && identity.roles) {\n const res = identity.roles.indexOf(\"gestor\") >= 0;\n return res;\n } else {\n console.log('Expressions: evaluating IsGestor on non identity', value);\n return false;\n }\n }\n}\n\nconst evaluatePathSegment = (segment: PathSegment, values: any[], root: any = {}) => {\n const currentCtx = values[values.length - 1];\n\n if (typeof (segment) === 'string' && !specialTerms.includes(segment)) {\n return currentCtx[segment];\n }\n else if (specialTerms.includes(segment as string)) {\n return invoke({ name: segment as string, type: 'string' }, currentCtx, root);\n }\n else { // invocation\n return invoke(segment as IExpression, currentCtx, root);\n }\n}\n\nconst toIdentifier = (s: string) => {\n return s.substring(0, 1).toLowerCase() + s.substring(1);\n}\n\nconst evaluatePath = (values: PathSegment[], ctx: Ctx) => {\n const stack: any[] = [ctx];\n const segments: PathSegment[] = values.map(s =>\n typeof (s) === 'string' ? toIdentifier(s as string) : s);\n\n for (const v of segments) {\n stack.push(evaluatePathSegment(v, stack, ctx));\n }\n\n return stack[stack.length - 1];\n}\n\nconst evaluateBinaryOperator: (expr: IExpression, ctx: Ctx) => any = (expr: IExpression, ctx: Ctx) => {\n if (expr.op === 'AND') {\n return evaluate(expr.left!, ctx) && evaluate(expr.right!, ctx);\n }\n else if (expr.op === 'OR') {\n return (evaluate(expr.left!, ctx) === true) || (evaluate(expr.right!, ctx) === true);\n }\n else if (expr.op === '==') {\n return evaluate(expr.left!, ctx) === evaluate(expr.right!, ctx);\n }\n else if (expr.op === '!=') {\n return evaluate(expr.left!, ctx) !== evaluate(expr.right!, ctx);\n }\n else if (expr.op === '<') {\n return evaluate(expr.left!, ctx) < evaluate(expr.right!, ctx);\n }\n else if (expr.op === '>') {\n return evaluate(expr.left!, ctx) > evaluate(expr.right!, ctx);\n }\n else if (expr.op === '<=') {\n return evaluate(expr.left!, ctx) <= evaluate(expr.right!, ctx);\n }\n else if (expr.op === '>=') {\n return evaluate(expr.left!, ctx) >= evaluate(expr.right!, ctx);\n }\n else if (expr.op === '+') {\n return evaluate(expr.left!, ctx) + evaluate(expr.right!, ctx);\n }\n else if (expr.op === '-') {\n return evaluate(expr.left!, ctx) - evaluate(expr.right!, ctx);\n }\n else if (expr.op === '*') {\n return evaluate(expr.left!, ctx) * evaluate(expr.right!, ctx);\n }\n else if (expr.op === '/') {\n return evaluate(expr.left!, ctx) / evaluate(expr.right!, ctx);\n }\n}\n\nexport function evaluate(expr: IExpression, ctx: Ctx = undefined) {\n if (isSingleValue(expr)) {\n return expr.value!;\n }\n else if (expr.type === 'binaryop') {\n return evaluateBinaryOperator(expr, ctx);\n }\n else if (expr.type === 'path') {\n return evaluatePath(expr.values!, ctx);\n }\n}\n\nexport function evalAndParse(expression: string, ctx: Ctx = undefined) {\n // console.log('evalAndParse', expression, ctx);\n return evaluate(parse(expression), ctx);\n}\n\nexport function parse(expression: string) {\n return Parser.parse(expression.trim()) as IExpression;\n}\n","import * as React from 'react';\r\n\r\nimport {\r\n IRequirement, IRequirementStatus, IRequirementStatusType,\r\n RequirementStatusTypes, RequirementStatusFlag\r\n} from '@models/requirements';\r\nimport {\r\n classNames, Timeline, useMemoized, useResolveName, useTranslation,\r\n useSearch,\r\n} from '@components';\r\nimport DateUtils from '@utils/date-utils';\r\nimport './ViewRequirementHistory.scss';\r\nimport { flatten } from '@utils';\r\nimport { IUserIdentity, IWork } from '@models';\r\nimport dateUtils from '@utils/date-utils';\r\nimport { IDocumentVersion } from '@models/documents';\r\n\r\nexport interface IProps {\r\n requestClose: Function;\r\n requirement: IRequirement;\r\n requirementStatusTypes: IRequirementStatusType[];\r\n appUsers: IUserIdentity[];\r\n work: IWork;\r\n canDownload: boolean;\r\n}\r\n\r\n// Para ordenar los eventos de los documentos .... asociando la fecha del estado que genera la version\r\nconst associateStatusToDocument = (r: any, status: IRequirementStatus[]) => {\r\n // localizamos el estado mas cercano\r\n const documentTime = DateUtils.parseDate(r.date).getTime();\r\n const state = status.find(s => Math.abs(DateUtils.parseDate(s.dateTime).getTime() - documentTime) <= 1 * 1000);\r\n if (state) {\r\n return { ...r, date: state.dateTime };\r\n }\r\n else {\r\n return r;\r\n }\r\n}\r\n\r\ntype ValidationRow = {\r\n validationUserId: number;\r\n validationHolderType: string;\r\n validationHolderName?: string;\r\n validatedState: string;\r\n validatedDate: string;\r\n}\r\n\r\ntype RequirementStatusRow = IRequirementStatus & {\r\n workerName?: string;\r\n}\r\n\r\ntype DocumentVersionRow = IDocumentVersion & {\r\n appUserName?: string;\r\n}\r\n\r\nexport function ViewRequirementHistory(props: IProps) {\r\n const { t } = useTranslation();\r\n\r\n const requirementStatus = useSearch({\r\n search: 'requirements/requirement_status',\r\n workId: props.work.id,\r\n normalizeKeys: true,\r\n filters: {\r\n workId: props.work.id,\r\n requirementId: props.requirement.id,\r\n },\r\n });\r\n\r\n const documentVersions = useSearch({\r\n search: 'requirements/requirement_document_versions',\r\n workId: props.work.id,\r\n normalizeKeys: true,\r\n filters: {\r\n workId: props.work.id,\r\n requirementId: props.requirement.id,\r\n },\r\n });\r\n\r\n const resolveStatusTypeName = useResolveName(props.requirementStatusTypes);\r\n const resolveStatusType = (st: number, flags: number | undefined = undefined) => {\r\n if (flags === RequirementStatusFlag.EXPIRED) {\r\n return t('requirement.expired');\r\n }\r\n else {\r\n return t(resolveStatusTypeName(st));\r\n }\r\n };\r\n\r\n const userName = useMemoized((id: number | string, name: string | undefined = undefined) => {\r\n if (typeof id == 'string') {\r\n return id;\r\n }\r\n if (name != undefined) {\r\n return name;\r\n }\r\n else {\r\n const u = props.appUsers.find(u => u.id == id);\r\n\r\n if (u) {\r\n return u.userName;\r\n }\r\n else {\r\n return props.work.defaultEmail;\r\n }\r\n }\r\n });\r\n\r\n const validations = useSearch({\r\n workId: props.work.id,\r\n search: 'requirements/validations_all',\r\n filters: {\r\n requirementId: props.requirement.id,\r\n workId: props.work.id,\r\n },\r\n map: (r: ValidationRow) => {\r\n return {\r\n status: t(r.validatedState),\r\n className: r.validatedState,\r\n type: 'validation',\r\n // date: dateUtils.toIso8601(r.validatedDate),\r\n date: r.validatedDate,\r\n icon: r.validatedState == 'requirement.validation.pending'\r\n ? 'pi pi-loading'\r\n : r.validatedState == 'requirement.validation.validated'\r\n ? 'pi pi-check'\r\n : 'pi pi-exclamation-triangle',\r\n appUserId: r.validationUserId,\r\n appUserName: r.validationHolderName,\r\n }\r\n }\r\n });\r\n\r\n // const documentEvents: any[] = flatten(\r\n // (props.requirement.documents ?? [])\r\n // .map(s => versions.sort((b, a) => a.id - b.id).map((v, i) => ({ ...v, documentId: s.document.id, version: versions.length - i })) ?? []))\r\n // .map((dv: any) => ({\r\n // status: dv.name,\r\n // version: dv.version,\r\n // type: 'document',\r\n // date: dv.dateTime,\r\n // icon: 'pi pi-file pointer',\r\n // href: `/api/files/${props.requirement.workId}/document/${dv.documentId}/version/${dv.id}`,\r\n // documentId: dv.id,\r\n // appUserId: dv.userId,\r\n // })).map(d => associateStatusToDocument(d, props.requirement.status));\r\n\r\n const documentEvents: any[] =\r\n (documentVersions.value ?? [])\r\n .map((dv: any) => ({\r\n status: dv.name,\r\n version: dv.version,\r\n type: 'document',\r\n date: dv.dateTime,\r\n icon: 'pi pi-file pointer',\r\n href: `/api/files/${props.requirement.workId}/document/${dv.documentId}/version/${dv.id}`,\r\n documentId: dv.id,\r\n appUserName: dv.userName,\r\n })).map(d => associateStatusToDocument(d, props.requirement.status));\r\n\r\n const requirementStatusRows = requirementStatus.value ?? [];\r\n\r\n const noteEvents: any[] =\r\n // props.requirement.status\r\n requirementStatusRows\r\n .filter(s => s.remarks && s.remarks != '')\r\n .map(n => ({\r\n id: n.id,\r\n className: n.statusTypeId == RequirementStatusTypes.NOT_VALIDATED\r\n ? 'danger'\r\n : 'notes',\r\n date: n.dateTime,\r\n icon: n.statusTypeId == RequirementStatusTypes.NOT_VALIDATED\r\n ? 'pi pi-exclamation-triangle'\r\n : 'pi pi-comments',\r\n status: n.remarks,\r\n appUserId: n.createdById,\r\n associatedDocumentId: n.statusTypeId == RequirementStatusTypes.NOT_VALIDATED ? props.requirement.incidences.filter(i => i.requirementId == n.requirementId)\r\n .filter(i =>\r\n dateUtils.fromUtc(n.dateTime).getDate() == dateUtils.fromUtc(i.creationDate).getDate() &&\r\n dateUtils.fromUtc(n.dateTime).getDay() == dateUtils.fromUtc(i.creationDate).getDay() &&\r\n dateUtils.fromUtc(n.dateTime).getFullYear() == dateUtils.fromUtc(i.creationDate).getFullYear() &&\r\n dateUtils.fromUtc(n.dateTime).getHours() == dateUtils.fromUtc(i.creationDate).getHours() &&\r\n dateUtils.fromUtc(n.dateTime).getMinutes() == dateUtils.fromUtc(i.creationDate).getMinutes()).map(i => i.documentVersionId).shift()\r\n : undefined,\r\n }));\r\n\r\n const statusEvents: any[] =\r\n requirementStatusRows\r\n .map(s => ({\r\n id: s.id,\r\n status: resolveStatusType(s.statusTypeId, s.flag),\r\n statusTypeId: s.statusTypeId,\r\n flag: s.flag,\r\n date: s.dateTime,\r\n displayDate: s.displayDateTime,\r\n className: `status-type-${s.statusTypeId} status-type-flag-${s.flag}`,\r\n type: 'status',\r\n icon: 'pi pi-circle-off',\r\n appUserId: s.validatedBy,\r\n appUserName: s.workerName\r\n }));\r\n\r\n const removeEvents = statusEvents\r\n .filter(s => s.flag == RequirementStatusFlag.FILE_REMOVED)\r\n .map(s => ({\r\n id: s.id + '_file_removed',\r\n className: 'file-removed',\r\n date: s.date,\r\n type: 'file-removed',\r\n icon: 'pi pi-trash',\r\n status: t('requirements.file-removed'),\r\n appUserId: s.appUserId,\r\n }));\r\n\r\n const events: any[] =\r\n flatten([statusEvents, documentEvents, removeEvents, noteEvents, validations.value ?? []])\r\n .sort((a, b) => a.date == b.date ? b.id - a.id : b.date.localeCompare(a.date));\r\n\r\n for (const e of events) {\r\n if (e.associatedDocumentId != null) {\r\n const docIndex = events.findIndex(d => d.documentId == e.associatedDocumentId);\r\n const noteIndex = events.findIndex(d => d.associatedDocumentId == e.associatedDocumentId);\r\n const doc = events[docIndex];\r\n const note = events[noteIndex];\r\n if (docIndex > noteIndex) {\r\n events[noteIndex] = doc;\r\n events[docIndex] = note;\r\n }\r\n }\r\n }\r\n\r\n if (events.length > 1) {\r\n events[0].icon = events[0].statusTypeId == RequirementStatusTypes.PENDING\r\n ? 'pi pi-clock'\r\n : events[0].statusTypeId == RequirementStatusTypes.NOT_VALIDATED\r\n ? 'pi pi-ban'\r\n : events[0].kind == 'incidence'\r\n ? 'pi pi-exclamation-triangle'\r\n : 'pi pi-check';\r\n events[0].last = true;\r\n events[events.length - 1].first = true;\r\n }\r\n\r\n return
\r\n
\r\n <>\r\n {item.leftIcon && }\r\n {item.type == 'document' && props.canDownload\r\n ? \r\n \r\n \r\n {item.status}\r\n {t('version')} {item.version}\r\n \r\n \r\n : (item.last || item.first)\r\n ? {item.status}\r\n : {item.status}}\r\n {item.displayDate &&\r\n {DateUtils.formatDateTimeFromUtc(item.displayDate)}}\r\n }\r\n content={item => <>\r\n {((item.statusTypeId == RequirementStatusTypes.PENDING || item.statusTypeId == RequirementStatusTypes.NOT_LOADED) && item.flag != RequirementStatusFlag.EXPIRED)\r\n ? {DateUtils.formatDateTimeFromUtc(item.date)} \r\n : {DateUtils.formatDateTimeFromUtc(item.date)} - {userName(item.appUserId, item.appUserName)}\r\n }\r\n }\r\n marker={(item) => }\r\n value={events} />\r\n
\r\n
\r\n \r\n
\r\n
;\r\n}\r\n","import { IContractor, IDepartment, IMachinery, IResourceHasStatus, IWorker } from './resources';\nimport { IUserIdentity } from './identity';\nimport { IPropertyGroup } from './works';\nimport { IRequirement } from './requirements';\n\nimport { get as i18n } from '../i18n';\n\nexport interface IJobStatus {\n id: number;\n jobId: number;\n jobStatusTypeId: number;\n userId: number;\n dateTime: Date;\n remarks: string;\n isCurrent: boolean;\n}\n\nexport interface IJob {\n id: number;\n name: string;\n code?: string;\n workId: number;\n description?: string;\n workspaceId?: number;\n activityTypeId?: number;\n workShiftId?: number;\n contractTypeId?: number;\n startDate: Date;\n endDate?: Date;\n remarks?: string;\n preventiveResourceId?: number;\n isActive: boolean;\n informationLoaded?: boolean;\n\n currentStatus?: IJobStatus;\n\n departments: IJobHasDepartment[];\n contractors: IJobHasContractor[];\n machineries: IJobHasMachinery[];\n properties?: IPropertyGroup[];\n\n countDepartmentsTotal?: number;\n countDepartmentsAuthorized?: number;\n countMachineriesTotal?: number;\n countMachineriesAuthorized?: number;\n countWorkersTotal?: number;\n countWorkersAuthorized?: number;\n countContractorsTotal?: number;\n countContractorsAuthorized?: number;\n hierarchyLevel?: number;\n}\n\nexport interface IJobHasContractor extends IResourceHasStatus {\n id: number;\n contractor: IContractor;\n contractorId: number;\n jobId: number;\n startDate?: Date;\n jobsDescription: string;\n contactName: string;\n contactEmail: string;\n contactPhone: string;\n contactSurname: string;\n shipmentNumber: string;\n parentId?: number;\n\n properties?: IPropertyGroup[];\n requirements?: IRequirement[];\n}\n\nexport interface IJobHasDepartment extends IResourceHasStatus {\n id?: number;\n jobId: number;\n departmentId: number;\n responsibleId: number;\n dateTime?: Date;\n isMain?: boolean;\n\n responsible?: IWorker;\n department?: IDepartment;\n\n parentId?: number;\n}\n\nexport interface IJobHasContractorAppUser {\n id?: number;\n jobContractorId: number;\n appUserId: number;\n startDate: Date;\n endDate?: Date;\n\n appUser?: IUserIdentity;\n}\n\nexport interface IStatusType {\n name: string;\n isInitial?: boolean;\n isFinal?: boolean;\n styleClassName?: string;\n}\n\nexport interface IJobHasMachineryStatus {\n statusTypeId: number;\n statusType: IStatusType;\n dateTime: Date;\n description?: string;\n isCurrent?: boolean;\n userId: number;\n}\n\nexport interface IJobHasMachinery extends IResourceHasStatus {\n id: number;\n jobId: number;\n machineryId?: number;\n jobHasContractorId?: number;\n startDate: Date;\n endDate?: Date;\n\n properties?: IPropertyGroup[];\n\n machinery?: IMachinery;\n\n machineryName?: string;\n machineryCode?: string;\n machineryTypeId?: number;\n machinerySubTypeId?: number;\n machineryPrefixLicenseNumber?: string;\n machineryLicenseNumber?: string;\n machinerySuffixLicenseNumber?: string;\n\n hasDelayedRevokation?: boolean;\n\n requirements?: IRequirement[];\n}\n\nexport interface IJobHasWorker extends IResourceHasStatus {\n id: number;\n jobId: number;\n workerId: number;\n jobHasContractorId?: number;\n\n fullName?: string;\n\n startDate?: Date|string;\n\n hasDelayedRevokation?: boolean;\n\n job?: IJob;\n worker?: IWorker;\n properties?: IPropertyGroup[];\n requirements?: IRequirement[];\n}\n\nfunction parseJobProperty(jobProperty: IPropertyGroup) {\n if (jobProperty.value && !jobProperty.valueObj) {\n return { ...jobProperty, valueObj: JSON.parse(jobProperty.value) };\n }\n else {\n return jobProperty;\n }\n}\n\nexport function parseJob(job: IJob) {\n const aJob = { ...job };\n\n if (aJob.properties) {\n aJob.properties = aJob.properties.map(parseJobProperty);\n }\n\n return aJob;\n}\n\nexport enum JobStatusType {\n PENDING = 1,\n INFORMATION_LOADED = 2,\n AUTHORIZED = 3,\n FINALIZED = 4,\n NOT_AUTHORIZED = 5,\n}\n\nexport const jobStatusTypes = [\n { id: JobStatusType.PENDING, name: i18n('job.status.pending') },\n { id: JobStatusType.INFORMATION_LOADED, name: i18n('job.status.informationLoaded') },\n { id: JobStatusType.AUTHORIZED, name: i18n('job.status.authorized') },\n { id: JobStatusType.FINALIZED, name: i18n('job.status.finalized') },\n { id: JobStatusType.NOT_AUTHORIZED, name: i18n('job.status.notauthorized') },\n];\n\nexport enum JobLogType {\n ACCESS_JOB_INFORMATION = 1,\n}\n\nexport interface IJobLog {\n id: number;\n jobId: number;\n userId: number;\n dateTime: Date;\n jobLogType: JobLogType;\n}\n","import * as React from 'react';\nimport { IFrontendModule, RenderComponent } from '../../../../GStore.Modules/FrontEnd';\nimport { IdentityState } from '../store/identity';\n\nexport default class ModuleManager {\n // TODO: hacer identity obligatorio, borrando las instancias manuales del moduleManager,\n // utilizando solo la instancia del store\n private id: String = 'init';\n\n constructor(\n private modules: IFrontendModule[],\n private identity: IdentityState | null = null,\n aId: String | null = null\n ) {\n this.id = aId ?? this.id;\n }\n\n public getModule(name: string) {\n return this.modules.find(m => m.name == name);\n }\n\n public getId() {\n return this.id;\n }\n\n public componentProperties(key: string, defaultValue: T | undefined = undefined) {\n const filterModules = this\n .modules\n .filter(m => m.componentProperties);\n\n return filterModules\n .reduce(\n (value: any, module: IFrontendModule) =>\n value ? value : module.componentProperties[key] as T,\n defaultValue);\n }\n\n public useComponentProperties(key: string, defaultValue: T | undefined = undefined) {\n const [value, setValue] = React.useState(defaultValue);\n\n React.useEffect(() => {\n setValue(this.componentProperties(key, defaultValue));\n }, [this.modules]);\n\n return value;\n }\n\n public renderComponent(\n key: string,\n ctx: any,\n originalComponent: React.FunctionComponent,\n force: boolean = false) {\n const module: RenderComponent | undefined = this\n .modules\n .map(m => m.renderComponent?.(key, ctx))\n .find(m => m !== undefined && m !== null);\n const component = module?.(ctx);\n\n // no devolvemos el componente original\n // salvo que ya esten cargados los modulos o el parametro force == true\n if (this.id != 'init' || force) {\n return component ?? originalComponent(ctx);\n }\n else {\n return ;\n }\n }\n\n public filterDependency(\n key: string,\n ctx: any | undefined = {}) {\n const dependencyCtx = {\n ...ctx,\n identity: this.identity,\n };\n\n const filterModules = this\n .modules\n .filter(m => m.filterDependency);\n\n return (d: T) =>\n filterModules\n .reduce(\n (value: boolean, module: IFrontendModule) =>\n value && module.filterDependency!(key, dependencyCtx)(d),\n true);\n }\n\n public injectComponents(\n key: string,\n ctx: any,\n dependencies: any) {\n for (const m of this.modules) {\n m.injectComponent?.(key, ctx, dependencies);\n }\n }\n\n public requirePermissionMemo(\n key: string,\n ctx: any,\n defaultValue: boolean | undefined,\n deps: any[],\n ) {\n const [value, setValue] = React.useState(defaultValue);\n\n const load = async () => {\n const p = await this.requirePermission(key, ctx, defaultValue);\n setValue(p);\n };\n\n React.useEffect(() => {\n load();\n }, deps);\n\n return value;\n }\n\n public async requirePermission(key: string, ctx: any, defaultValue: boolean | undefined) {\n const filterModules = this\n .modules\n .filter(m => m.hasPermission);\n\n if (filterModules != null && filterModules.length > 0) {\n let res = true;\n for (const f of filterModules) {\n const moduleRes = await awaitIfPromise(f.hasPermission!(key, ctx, defaultValue));\n res = res && moduleRes;\n }\n return res;\n }\n else {\n return defaultValue;\n }\n }\n\n public async hasPermission(key: string, ctx: any) {\n const filterModules = this\n .modules\n .filter(m => m.hasPermission);\n\n let res = true;\n for (const f of filterModules) {\n res = res && await awaitIfPromise(f.hasPermission!(key, ctx, undefined));\n }\n\n return res;\n }\n\n public injectDataColumns(name: string, ctx: T) {\n // consultamos a los módulos si tienen alguna columna que mostrar\n const columns = [];\n\n for (const m of this.modules) {\n if (m.injectDataColumns) {\n columns.push(...m.injectDataColumns(name, ctx));\n }\n }\n\n return columns;\n }\n\n public injectAction(name: string, ctx: T) {\n for (const m of this.modules) {\n if (m.injectAction) {\n return m.injectAction(name, ctx);\n }\n }\n }\n\n public format(key: string, data: T, ctx: any | undefined = undefined) {\n const filterModules = this\n .modules\n .filter(m => m.format != null);\n\n if (filterModules != null) {\n let res = true;\n for (const f of filterModules) {\n const moduleRes = f.format!(key, data, ctx);\n if (moduleRes) {\n return moduleRes;\n }\n }\n }\n\n return undefined;\n }\n\n public validateData(key: string, data: T, ctx: any | undefined = undefined) {\n const filterModules = this\n .modules\n .filter(m => m.validateData != null);\n\n if (filterModules != null) {\n let res = true;\n for (const f of filterModules) {\n const moduleRes = f.validateData!(key, data, ctx);\n if (moduleRes) {\n return moduleRes;\n }\n }\n }\n return undefined;\n }\n}\n\nfunction awaitIfPromise(arg0: T | Promise): Promise {\n if (arg0 instanceof Promise) {\n return arg0;\n }\n else {\n return Promise.resolve(arg0);\n }\n}\n","import * as React from 'react';\n\nimport { classNames, useTranslation } from '@components';\nimport './ImageViewer.scss';\n\nexport interface IProps {\n className?: string;\n url: string;\n}\n\nexport function ImageViewer(props: IProps) {\n const { t } = useTranslation();\n\n return
\n \n
\n}","import * as React from 'react';\r\n\r\nimport * as PdfJS from 'pdfjs-dist';\r\nPdfJS.GlobalWorkerOptions.workerSrc = '/js/pdf.worker.min.js';\r\n\r\nimport { delay } from '@utils';\r\nimport { Loading, classNames, useCallbackState, useLoading, useMessage, useTranslation } from '@components';\r\n\r\nimport './PdfViewer.scss';\r\n\r\nexport interface IProps {\r\n className?: string;\r\n url: string;\r\n}\r\n\r\nenum FitMode {\r\n NOFIT = 1,\r\n WIDTH = 2,\r\n}\r\n\r\nfunction Page({ doc, rotation, page, fitMode, containerRect, zoom }: {\r\n doc: any, page: any, rotation?: number, fitMode: FitMode, containerRect: any, zoom?: any\r\n}) {\r\n const canvasRef = React.useRef();\r\n const isRendering = React.useRef(false);\r\n const loading = useLoading();\r\n\r\n const context = React.useRef();\r\n\r\n const clearCanvas = () => {\r\n context.current?.clearRect(0, 0, canvasRef.current?.width, canvasRef.current?.height);\r\n context.current?.beginPath();\r\n context.current?.rect(0, 0, canvasRef.current?.width, canvasRef.current?.height);\r\n }\r\n\r\n const hideCanvas = () => {\r\n if (canvasRef.current) {\r\n canvasRef.current.style.display = 'none';\r\n }\r\n }\r\n\r\n const showCanvas = () => {\r\n if (canvasRef.current) {\r\n canvasRef.current.style.display = 'block';\r\n }\r\n }\r\n\r\n const renderPage = async (page: any) => {\r\n isRendering.current = true;\r\n let scale = fitMode === FitMode.NOFIT\r\n ? 1 * zoom\r\n : (canvasRef.current.width / page.view[2]);\r\n\r\n let viewport = page.getViewport({ scale: scale, rotation: rotation });\r\n if (rotation) {\r\n viewport.rotation = rotation;\r\n }\r\n\r\n const canvas = canvasRef.current;\r\n if (!context.current) {\r\n context.current = canvas.getContext('2d');\r\n }\r\n\r\n clearCanvas();\r\n\r\n if (fitMode === FitMode.WIDTH) {\r\n canvas.width = page.view[2] * scale;\r\n }\r\n else {\r\n canvas.width = canvas.parentElement.clientWidth;\r\n }\r\n\r\n const pageHeight = Math.max(page.view[3], page.view[2]);\r\n\r\n if ((rotation ?? viewport.rotation) % 180 == 90) {\r\n canvas.height = pageHeight * scale;\r\n }\r\n else {\r\n canvas.height = pageHeight * scale;\r\n }\r\n\r\n await page.render({\r\n canvasContext: context.current,\r\n viewport,\r\n });\r\n showCanvas();\r\n setTimeout(() => {\r\n isRendering.current = false;\r\n loading.stop();\r\n }, 1000);\r\n }\r\n\r\n const tryToRenderPage = async (page: any) => {\r\n loading.start();\r\n hideCanvas();\r\n clearCanvas();\r\n\r\n while (isRendering.current) {\r\n await delay(400);\r\n }\r\n renderPage(page);\r\n }\r\n\r\n React.useEffect(() => {\r\n tryToRenderPage(page);\r\n }, [doc, page, rotation, fitMode, zoom]);\r\n\r\n return
\r\n {/**\r\n loading.renderModal({ text: t('document.loading') }) **/}\r\n \r\n
\r\n}\r\n\r\nfunction base64PDFToBlobUrl(blob: any) {\r\n const url = URL.createObjectURL(blob);\r\n return url;\r\n}\r\n\r\nfunction PdfViewerImpl(props: IProps) {\r\n const [data, setData] = React.useState('');\r\n const [loading, setLoading] = React.useState(true);\r\n\r\n React.useEffect(() => {\r\n setLoading(true);\r\n fetch(props.url + '/view.pdf')\r\n .then(response => response.blob())\r\n .then(blob => {\r\n setData(base64PDFToBlobUrl(blob));\r\n setLoading(false);\r\n });\r\n }, [props.url]);\r\n\r\n return (
\r\n {loading && }\r\n {!loading &&\r\n }\r\n
);\r\n}\r\n\r\nexport const PdfViewer = React.memo(PdfViewerImpl, (prev, next) => prev.url == next.url);\r\n\r\nfunction PdfViewerImplOld(props: IProps) {\r\n const { t } = useTranslation();\r\n\r\n const [pages, setPages] = React.useState([]);\r\n\r\n const docRef = React.useRef();\r\n const containerRef = React.useRef();\r\n const canvasContainerRef = React.useRef();\r\n const [fitMode, setFitMode] = React.useState(FitMode.NOFIT);\r\n const [currentPage, setCurrentPage] = React.useState(1);\r\n const [totalPages, setTotalPages] = React.useState(1);\r\n const [rotation, setRotation] = React.useState(0);\r\n const [zoom, setZoom] = React.useState(1);\r\n const [loading, setLoading] = useCallbackState(true);\r\n\r\n const messages = useMessage();\r\n\r\n React.useEffect(() => {\r\n }, []);\r\n\r\n const loadAllPages = async (doc: any, total: number, url: string) => {\r\n const pgs: any = [];\r\n\r\n for (let i = 0; i < total; i++) {\r\n const page = await doc.getPage(i + 1);\r\n page.url = url;\r\n pgs.push(page);\r\n }\r\n\r\n return pgs;\r\n }\r\n\r\n const initialize = async (url: string) => {\r\n try {\r\n setLoading(true);\r\n setPages([]);\r\n setFitMode(FitMode.NOFIT);\r\n\r\n messages.clear();\r\n const doc = await PdfJS.getDocument({url, disableFontFace: false, useSystemFonts: true}).promise;\r\n docRef.current = doc;\r\n\r\n const allPages = await loadAllPages(doc, doc.numPages, url);\r\n\r\n setTotalPages(doc.numPages);\r\n setZoom(1);\r\n\r\n setLoading(false, () => {\r\n setPages(allPages);\r\n });\r\n }\r\n catch (e) {\r\n console.log(e);\r\n messages.setError('Error rendering pdf');\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n initialize(props.url);\r\n }, [props.url]);\r\n\r\n const toggleRotate = () => {\r\n setRotation(r => r + 90 % 360);\r\n };\r\n\r\n const zoomIn = () => {\r\n setZoom(z => z * 1.4);\r\n };\r\n\r\n const zoomOut = () => {\r\n setZoom(z => z / 1.4);\r\n };\r\n\r\n return
\r\n
\r\n \r\n {currentPage} / {totalPages}\r\n \r\n\r\n
\r\n toggleRotate()}>\r\n \r\n \r\n setFitMode(FitMode.NOFIT)}\r\n title={t('Adjust height')}>\r\n \r\n \r\n zoomIn()}\r\n title={t('Zoom In')}\r\n disabled={fitMode == FitMode.WIDTH}\r\n hidden={fitMode == FitMode.WIDTH}>\r\n \r\n \r\n zoomOut()}\r\n title={t('Zoom Out')}\r\n disabled={fitMode == FitMode.WIDTH}\r\n hidden={fitMode == FitMode.WIDTH}>\r\n \r\n \r\n setFitMode(FitMode.WIDTH)}\r\n title={t('Adjust width')}>\r\n \r\n \r\n
\r\n
\r\n
\r\n {/** {props.url} */}\r\n {!loading && pages.map((p, i) => {\r\n const key = props.url + '_' + i;\r\n\r\n return \r\n })}\r\n {messages.hasError() &&
\r\n {messages.render()}\r\n
}\r\n
\r\n
;\r\n}\r\n","import * as React from 'react';\n\nimport { ImageViewer } from './ImageViewer';\nimport { PdfViewer } from './PdfViewer';\nimport { useTranslation, Chip } from '@components';\n\nexport interface IProps {\n className?: string;\n mimeType?: string;\n url: string;\n}\n\nconst isImage = (mime?: string) => mime?.startsWith('image/');\nconst isPdf = (mime?: string) => mime?.startsWith('application/pdf');\n\nexport function hasViewer(mime?: string) {\n return isImage(mime) || isPdf(mime);\n}\n\nexport function DocumentViewer(props: IProps) {\n const { t } = useTranslation();\n if (isImage(props.mimeType)) {\n return ;\n }\n else if (isPdf(props.mimeType)) {\n return ;\n }\n else {\n return
\n {t('documentPreviewNotSupported')}\n\n \n\n \n \n {t('Download file')}\n \n
;\n }\n}","import { Action, Reducer } from 'redux';\n\nimport { IJob, ISecurity, IUserIdentity, IWork } from '../models';\nimport * as AppStore from './app';\nimport Security, { EMPTY_SECURITY } from '../security';\n\nexport interface IdentityState {\n user?: IUserIdentity;\n security: ISecurity;\n workerIds: number[];\n contractorIds?: number[];\n}\n\nenum Types {\n OnLoginAction = '[IDENTITY] LOGIN',\n OnWorkSelected = '[USER] SELECT WORK',\n OnJobSelected = '[USER] ON JOB LOADED'\n}\n\nexport interface OnLoginAction {\n type: Types.OnLoginAction;\n user: IUserIdentity;\n workerIds: number[];\n contractorIds: number[];\n}\n\nexport interface OnWorkSelected {\n type: Types.OnWorkSelected;\n data: IWork;\n}\n\nexport interface OnJobSelected {\n type: Types.OnJobSelected;\n data: IJob;\n}\n\nexport type KnownAction = OnLoginAction | OnLoginAction | OnWorkSelected | OnJobSelected;\n\nexport const actionCreators = {\n setUser: (user: IUserIdentity) => (dispatch: Function) => {\n dispatch({ type: Types.OnLoginAction, user });\n },\n initializeApp: () => (dispatch: Function) => {\n AppStore.actionCreators.initialize()(dispatch);\n },\n};\n\nexport const reducer: Reducer = (state: IdentityState | undefined, incomingAction: Action): IdentityState => {\n if (state === undefined) {\n return { user: undefined, security: EMPTY_SECURITY, workerIds: [], contractorIds: [], };\n }\n\n const action = incomingAction as KnownAction;\n switch (action.type) {\n case Types.OnLoginAction:\n // console.log('permissions on login work', action);\n return {\n user: action.user,\n security: new Security(action.user)\n .withWorkerIds(action.user.workerIds ?? [])\n .withContractorIds(action.user.contractorIds ?? []),\n workerIds: action.user.workerIds ?? [],\n contractorIds: action.user.contractorIds ?? [],\n };\n case Types.OnWorkSelected:\n // console.log('permissions on load work', action.data);\n return {\n ...state,\n security: new Security(state.user!)\n .withWorkerIds(state.workerIds)\n .withContractorIds(state.contractorIds ?? [])\n .withContext({\n workId: action.data.id,\n work: action.data,\n }),\n }\n case Types.OnJobSelected:\n // console.log('permissions set job context', action);\n return {\n ...state,\n security: state.security.withContext({\n jobId: action.data.id,\n job: action.data,\n }),\n }\n\n default:\n return state;\n }\n};\n","import { Action, Reducer } from 'redux';\nimport { ICountry, IDocumentType } from '../models';\nimport { IRequirementExpirationType, IRequirementTypeKind } from '../models/requirements';\nimport * as AdminActions from './actions/admin';\nimport { actionCreators as N } from './notifications';\n\nexport interface IConstantsState {\n countries: ICountry[];\n documentTypes: IDocumentType[];\n requirementTypeKinds: IRequirementTypeKind[];\n requirementExpirationTypes: IRequirementExpirationType[];\n}\n\nconst setcountriestype = '[CONSTANTS] SET COUNTRIES';\nconst setdocumenttypes = '[CONSTANTS] SET DOCUMENT TYPES';\nconst initializetype = '[CONSTANTS] INITIALIZE';\n\nexport interface SetCountriesAction {\n type: '[CONSTANTS] SET COUNTRIES';\n countries: ICountry[];\n}\n\nexport interface InitializeAction {\n type: '[CONSTANTS] INITIALIZE';\n value: IConstantsState;\n}\n\nexport interface SetDocumentTypesAction {\n type: '[CONSTANTS] SET DOCUMENT TYPES';\n documentTypes: IDocumentType[];\n}\n\nexport type KnownAction = SetDocumentTypesAction | SetCountriesAction | InitializeAction | {type: undefined};\n\nconst loadDocumentTypes = async (dispatch: Function) => {\n const resp = await AdminActions.getDocumentTypes();\n const types = resp.data.documentTypes\n .filter((d: IDocumentType) => d.isActive);\n\n dispatch({\n type: setdocumenttypes,\n documentTypes: types,\n });\n}\n\nexport const actionCreators = {\n setCountries: (countries: ICountry[]) => (dispatch: Function) => {\n dispatch({\n type: setcountriestype,\n countries,\n });\n },\n loadDocumentTypes: () => (dispatch: Function) => {\n loadDocumentTypes(dispatch);\n },\n saveDocumentType: (dt: IDocumentType) => async (dispatch: Function) => {\n dispatch(N.startLoading({\n ctx: 'admindocumenttypes',\n action: 'save',\n }));\n await AdminActions.saveDocumentType(dt);\n await loadDocumentTypes(dispatch);\n\n dispatch(N.success({\n ctx: 'admindocumenttypes'\n }));\n\n dispatch(N.stopLoading({\n ctx: 'admindocumenttypes',\n action: 'save',\n }));\n },\n removeDocumentType: (id: number) => async (dispatch: Function) => {\n dispatch(N.startLoading({\n ctx: 'admindocumenttypes',\n action: 'remove',\n }));\n await AdminActions.removeDocumentType(id);\n await loadDocumentTypes(dispatch);\n\n dispatch(N.success({\n ctx: 'admindocumenttypes'\n }));\n\n dispatch(N.stopLoading({\n ctx: 'admindocumenttypes',\n action: 'remove',\n }));\n },\n initialize: (value: IConstantsState) => (dispatch: Function) => {\n dispatch({\n type: initializetype,\n value,\n })\n }\n};\n\nexport const reducer: Reducer = (state: IConstantsState | undefined, incomingAction: Action): IConstantsState => {\n if (state === undefined) {\n return {\n countries: [],\n documentTypes: [],\n requirementExpirationTypes: [],\n requirementTypeKinds: [],\n };\n }\n\n const action = incomingAction as KnownAction;\n switch (action.type) {\n case setcountriestype:\n return { ...state, countries: action.countries };\n case initializetype:\n return { ...state, ...action.value };\n case setdocumenttypes:\n return { ...state, documentTypes: action.documentTypes };\n default:\n return state;\n }\n};\n","import * as React from 'react';\r\n\r\nimport { Message, useLoading, useRemoteData, useSearch, useSearchFirst, useTranslation } from '@components';\r\nimport { IRequirement, IRequirementHasDocument } from '@models/requirements';\r\nimport { getDocumentInfo, getDocumentLastVersion } from '@store/actions/documents';\r\nimport { formatFileSize } from '@utils';\r\nimport { IOption } from '@models';\r\nimport * as DateUtils from '@utils/date-utils';\r\n\r\nimport './RequirementDocumentInfo.scss';\r\nimport { IDocumentVersion } from '@models/documents';\r\n\r\nfunction PropertyList({ properties, title }: { properties: any, title?: string }) {\r\n const { t } = useTranslation();\r\n const keys = Object.keys(properties);\r\n\r\n const resolveValue = (value: any, name: string) => {\r\n if (name.includes('fileSize')) {\r\n return formatFileSize(value);\r\n }\r\n else {\r\n if (value.length > 60) {\r\n return {value.substring(0, 60) + '...'}\r\n } else {\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n return
\r\n {title && {title}}\r\n {keys\r\n .filter(k => properties[k])\r\n .map((k, i) =>
\r\n \r\n {resolveValue(properties[k], k)}\r\n
)}\r\n
\r\n}\r\n\r\ntype JobR = {\r\n jobName?: string;\r\n jobCode?: string;\r\n}\r\n\r\ntype RequirementInfoR = {\r\n jobName?: string,\r\n jobCode?: string,\r\n\r\n contractorCode?: string,\r\n contractorName?: string,\r\n\r\n machineryCode?: string,\r\n machineryName?: string,\r\n machineryType?: string;\r\n machinerySubType?: string;\r\n machineryPrefixLicenseNumber?: string;\r\n machineryLicenseNumber?: string;\r\n machinerySuffixLicenseNumber?: string;\r\n\r\n workerCode?: string;\r\n workerName?: string;\r\n workerSurname?: string;\r\n}\r\n\r\nexport function RequirementDocumentInfo({\r\n document,\r\n requirement,\r\n jobId,\r\n lastDocumentVersion\r\n}:\r\n {\r\n document?: IRequirementHasDocument,\r\n requirement: IRequirement,\r\n jobId?: number,\r\n lastDocumentVersion?: IDocumentVersion\r\n }) {\r\n\r\n const [lv, setLv] = React.useState();\r\n const loading = useLoading();\r\n const { t } = useTranslation();\r\n const infoSearch = useSearch({\r\n workId: requirement.workId,\r\n search: 'requirements/requirementInfo',\r\n filters: {\r\n requirementId: requirement.id,\r\n },\r\n dependencies: [requirement, jobId]\r\n });\r\n const jobSearch = useSearchFirst({\r\n workId: requirement.workId,\r\n search: 'requirements/job',\r\n filters: {\r\n jobId: jobId ?? 0,\r\n },\r\n dependencies: [requirement, jobId]\r\n });\r\n const data = useRemoteData>(getDocumentInfo, {\r\n parameters: [requirement.workId, document?.document.id],\r\n map: (v) => {\r\n if (v != undefined) {\r\n return v.hasValue\r\n ? { ...v, value: JSON.parse(v.value) }\r\n : v\r\n }\r\n else {\r\n return v;\r\n }\r\n },\r\n });\r\n\r\n const [info, setInfo] = React.useState();\r\n\r\n const getLastVersion = async () => {\r\n if (document && !lastDocumentVersion) {\r\n const d = await getDocumentLastVersion(requirement.workId ?? 0, document?.document.id);\r\n setLv(d);\r\n }\r\n else if (lastDocumentVersion) {\r\n setLv(lastDocumentVersion);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (infoSearch.value && infoSearch.value.length > 0) {\r\n setInfo(infoSearch.value[0]);\r\n }\r\n }, [infoSearch.value]);\r\n\r\n React.useEffect(() => {\r\n data.query();\r\n getLastVersion();\r\n }, [document]);\r\n\r\n // const lastVersion = document?.document;\r\n\r\n return
\r\n {infoSearch.renderLoading()}\r\n {loading.render()}\r\n {data.renderLoading()}\r\n\r\n {/** {requirement.id} {document?.document?.id} */}\r\n
\r\n {t('Requirement data')}\r\n
\r\n \r\n {DateUtils.formatFullTime(lv?.dateTime)}\r\n
\r\n {document?.dateTime &&
\r\n \r\n {DateUtils.formatFullTime(lv?.dateTime)}\r\n
}\r\n\r\n {info && info.contractorName &&
\r\n \r\n {info.contractorName}\r\n
}\r\n\r\n {info && info.contractorName &&
\r\n \r\n {info.contractorCode}\r\n
}\r\n\r\n {info && info.workerName &&
\r\n \r\n {info.workerName} {info.workerSurname}\r\n
}\r\n\r\n {info && info.workerCode &&
\r\n \r\n {info.workerCode}\r\n
}\r\n\r\n {info && info.machineryName &&
\r\n \r\n {info.machineryName}\r\n
}\r\n\r\n {info && info.machineryType &&
\r\n \r\n {info.machineryType}\r\n
}\r\n\r\n {info && info.machinerySubType &&
\r\n \r\n {info.machinerySubType}\r\n
}\r\n\r\n\r\n {info && info.machineryLicenseNumber &&
\r\n \r\n \r\n {info.machineryPrefixLicenseNumber}\r\n {info.machineryLicenseNumber}\r\n {info.machinerySuffixLicenseNumber}\r\n \r\n
}\r\n\r\n {info && info.machineryName &&
\r\n \r\n {info.machineryName}\r\n
}\r\n {info && info.jobName &&
\r\n \r\n {info.jobName}\r\n
}\r\n {jobSearch.value &&
\r\n \r\n {jobSearch.value.jobCode}\r\n
}\r\n {jobSearch.value &&
\r\n \r\n {jobSearch.value.jobName}\r\n
}\r\n
\r\n\r\n
\r\n\r\n {data.value && <>\r\n {data.value.isError &&\r\n }\r\n {data.value.hasValue &&\r\n }\r\n }\r\n
;\r\n}\r\n","import { ISecurity, IUserIdentity } from '@models';\nimport { hasPermission } from '@utils/security';\n\nexport const commonPermissions: string[] = [\n 'contractors.invite',\n 'jobs.create',\n 'jobs.remove',\n 'jobs.contractors.add',\n 'jobs.contractors.associateappuser',\n 'jobs.contractors.edit',\n 'jobs.contractors.processrequests',\n 'jobs.contractors.savejobcontractorappuser',\n 'jobs.contractors.request',\n 'jobs.contractors.removejobcontractor',\n 'jobs.contractors.removejobcontractorappuser',\n 'jobs.machineries.add',\n 'jobs.machineries.remove',\n 'job.notify-information-loaded',\n 'job.contractors.invite',\n 'contractors.access',\n 'contractors.access.create',\n 'contractors.force.status',\n 'contractors.invitations.list',\n 'machineries.add',\n 'workers.add',\n 'workers.force.status',\n 'workers.complete.remove',\n 'workers.qualifications', // Ver cualificaciones de los trabajadores\n 'workers.qualifications.edit', // Editar cualificaciones de los trabajadores\n 'machineries.force.status',\n 'machineries.complete.remove',\n 'job.authorize',\n 'job.contractors.remove',\n 'job.workers.remove',\n 'job.machineries.remove',\n 'contractors.add',\n 'jobs.forceStatus',\n 'work.add.folder',\n 'work.add.file',\n 'contractors.edit', // Editar datos del contratista\n 'job.addSubc', // Añadir subcontratista al trabajo\n 'jobHasContractor.remove', // Borrar contratista asociado al trabajo\n 'jobHasMachinery.remove', // Borrar maquinaria asociada al trabajo\n 'jobHasMachinery.add', // Añadir maquinaria al trabajo\n 'jobHasWorker.remove', // Borrar trabajador asociado al trabajo\n 'jobHasResource.createRequirement', // Crear requerimiento libre de un recurso\n 'jobHasWorker.add', // Añadir trabajador al trabajo\n 'job.requirements.create', // Crear requerimiento libre del trabajo\n 'job.requirements.upload', // Subir documentación en los requerimientos del trabajo\n 'jobs.edit', // Editar trabajo\n 'machinery.edit', // Editar datos de la maquinaria\n 'requirements.upload', // Subir documentación de los requerimientos\n 'requirements.note', // Comentar requerimientos\n 'workers.save', // Edita y guarda trabajadores\n 'job.created.notification', // Notificar creación del contrato\n 'notify.after.job.created', // Notificar después de cargar la información\n 'notify.req.incidence', // Notificar incidencia a quien tenga este permiso\n 'job.properties',\n 'patente.add', // Añadir puntuación de la patente\n 'jobs.resources.validate',\n 'job.revoke', // Revocar trabajo\n 'job.finalize', // Finalizar trabajo\n 'jobs.machineries.new.add', // Añadir maquinaria nueva al trabajo\n];\n\nexport default class Security implements ISecurity {\n public readonly user: IUserIdentity;\n private ctx: any = {};\n private workerIds: number[] = [];\n private contractorIds: number[] | undefined = undefined;\n\n constructor(user: IUserIdentity) {\n this.user = user;\n }\n\n public getContractorIds() {\n return this.contractorIds ?? [];\n }\n\n public withContractorIds(ids: number[]) {\n this.contractorIds = ids;\n\n return this;\n }\n\n public getWorkerIds() {\n return this.workerIds ?? [];\n }\n\n public withWorkerIds(ids: number[]) {\n this.workerIds = ids;\n\n return this;\n }\n\n public setContext(ctx: any) {\n this.ctx = ctx;\n }\n\n public withContext(ctx: any) {\n this.ctx = {\n ...this.ctx,\n ...ctx\n };\n return this;\n }\n\n public hasRole(role: string) {\n return this.user.roles.includes(role);\n }\n\n public hasWorker(id?: number) {\n return id != undefined && this.workerIds.includes(id!);\n }\n\n public hasContractor(id?: number) {\n return id != undefined && (this.contractorIds?.includes(id!) ?? false);\n }\n\n public hasPolicy(policy: string) {\n const term = policy.toLowerCase();\n return this.user.policies?.map(p => p.toLowerCase())?.includes(term) ?? false;\n }\n\n public isAdmin() {\n return this.user?.roles?.includes('admin') ?? false;\n }\n\n public isContractor() {\n return this.user?.roles?.includes('contractor') ?? false;\n }\n\n public isWorker() {\n return this.user?.roles?.includes('worker') ?? false;\n }\n\n public isGestor() {\n return this.user?.roles?.includes('gestor') ?? false;\n }\n\n public isGestorOrWorker() {\n return this.isGestor() || this.isWorker();\n }\n\n public isGestorOrContractor() {\n return this.isGestor() || this.isContractor();\n }\n\n public hasPermission(perm: string, explicit?: boolean) {\n // console.log('permission hasPermission ??', this);\n const has = hasPermission(perm, {\n user: this.user,\n ...this.ctx,\n explicit,\n });\n return this.isGestor() || has;\n }\n}\n\nexport const EMPTY_SECURITY = new Security({\n id: 0,\n userName: '',\n email: '',\n roles: [],\n policies: [],\n departments: [],\n workFunctions: [],\n});\n","import {createBrowserHistory} from 'history';\n\nexport const history = createBrowserHistory({\n forceRefresh: false\n});\n\nexport default history;","import * as React from 'react';\n\nexport const KeyCodes = {\n ENTER: 13,\n}\n\nexport const keyIsEnter = (e: React.KeyboardEvent) => {\n return e.keyCode === KeyCodes.ENTER;\n}","import * as React from 'react';\r\n\r\nimport { connect } from 'react-redux';\r\nimport { ApplicationState } from '../store';\r\n\r\nexport const userContainer = (f: React.FC) =>\r\n connect((state: ApplicationState) => ({\r\n ...state.identity,\r\n ...state.user,\r\n moduleManager: state.modules.moduleManager,\r\n work: state.user.work,\r\n }),\r\n {}\r\n )(f as any) as any // eslint-disable-line @typescript-eslint/no-explicit-any\r\n;\r\n\r\nimport ManageJobDepartmentsContainer from './jobs/ManageJobDepartmentsContainer';\r\nimport HelpDeskSupport from './HelpDeskSupportContainer';\r\n\r\n// TODO: Exportar todos los containers a modulos\r\n\r\nexport {\r\n ManageJobDepartmentsContainer,\r\n HelpDeskSupport,\r\n};","import * as React from 'react';\nimport { createPortal } from 'react-dom';\n\nexport interface IProps {\n container: string;\n children: any;\n delay?: number;\n}\n\nconst getContainer = (n: string) => {\n if (n.startsWith('#')) {\n return document.getElementById(n.substring(1));\n }\n else {\n return document.querySelector(n);\n }\n}\n\nexport function Portal(props: IProps) {\n const container = getContainer(props.container);\n\n const [time, setTime] = React.useState(0);\n\n React.useEffect(() => {\n if (props.delay) {\n setTimeout(() => setTime(new Date().getTime()), props.delay);\n }\n }, [props.delay]);\n\n if (container) {\n return createPortal(props.children, container, `${time}`);\n }\n else {\n return null;\n }\n}","import * as React from 'react';\n\nimport { Loading } from './Loading';\n\ntype DataRenderF = (data: any) => any;\n\nexport function DataLoader({children, provider}: {children: DataRenderF, provider: Function}) {\n const [data, setData] = React.useState(undefined);\n\n React.useEffect(() => {\n provider().then(setData);\n }, [provider]);\n\n if (data) {\n return children(data);\n }\n else {\n return ;\n }\n}","import * as React from 'react';\n\nimport { classNames, useConfirm, useTranslation } from '@components';\nimport { MessageIcon } from './MessageIcon';\nimport { IMessage, translateNotificationIcon, messageTitle } from '@models/notifications';\nimport { IOption, ISecurity, IWork } from '@models';\nimport { NotificationMessageDisplayName } from './NotificationMessageDisplayName';\nimport { NotificationMessageEffect } from './NotificationMessageEffect';\nimport * as DateUtils from '@utils/date-utils';\n\nimport './NotificationsMessages.scss';\n\ntype ClearMessageF = (id: string) => Promise>;\n\nexport interface IProps {\n clearMessage: ClearMessageF;\n messages: IMessage[];\n requestClose: Function;\n security: ISecurity;\n work: IWork;\n workId: number;\n}\n\nfunction NotificationMessage({clearMessage, message, onSelect} : {clearMessage: Function, message: IMessage, onSelect: Function}) {\n const { t } = useTranslation();\n\n const confirm = useConfirm({\n message: t('notifications.message.close-confirm'),\n accept: (messageId: string) => clearMessage(messageId),\n });\n\n\n return
\n
\n {message.icon &&\n }\n \n {DateUtils.format(message.date, 'd-m-y h:i')}\n onSelect(message)}>\n {messageTitle(message)}\n \n \n confirm(message, e)}\n title={t('notifications.message.close')}>\n \n \n
\n \n
\n}\n\nexport function NotificationsMessages(props: IProps) {\n const [selectedMessage, setSelectedMessage] = React.useState();\n\n return
\n {selectedMessage &&\n setSelectedMessage(undefined)}\n resolveMessage={props.clearMessage}\n security={props.security}\n workId={props.workId}\n work={props.work} />}\n\n {props.messages.map(m =>\n )}\n
\n}\n","import * as React from 'react';\n\nimport { search } from '@store/actions/search';\nimport { delay } from '@utils';\nimport { useLoading, useMessage } from '@utils/hooks';\n\nexport interface IProps {\n delay?: number;\n search: string;\n filters?: any;\n workId: number;\n normalizeKeys?: boolean;\n lazy?: boolean;\n map?: Function;\n dependencies?: any;\n}\n\nexport default function useSearch(props: IProps) {\n const [data, setData] = React.useState([]);\n const loading = useLoading();\n const messages = useMessage();\n const [isCompleted, setIsCompleted] = React.useState(false);\n\n const initialize = loading.wrap(async (filters: any = undefined) => {\n const resp = await search(props.workId, props.search, {\n normalizeKeys: props.normalizeKeys ?? true,\n filters: filters ?? props.filters,\n });\n\n if (props.delay) {\n await delay(props.delay);\n }\n\n messages.set(resp);\n const rawData = (resp.hasValue && props.map)\n ? resp.value.map((r, i) => props.map!(r, i))\n : resp.value;\n\n setIsCompleted(true);\n setData(rawData);\n\n return rawData;\n });\n\n React.useMemo(() => {\n if (!props.lazy) {\n initialize();\n }\n }, props.dependencies ?? []);\n\n const clear = () => {\n setData([]);\n }\n\n return {\n isCompleted,\n value: data,\n loading,\n messages,\n renderLoading: loading.render,\n clear,\n doSearch: (filters: any = undefined) => initialize(filters),\n };\n}\n","import * as React from 'react';\n\nimport {\n Message,\n Select,\n useConfirm,\n useDataTable, useLoading, useNumberState, useTranslation, useResolveName, useSearch\n} from '@components';\nimport { departmentIsProductive, IDepartment, IJob, IWorker, IJobHasDepartment, IWork } from '@models';\n\nexport interface IProps {\n departments: IDepartment[];\n getJobDepartments: Function;\n job: IJob;\n readonly?: boolean;\n removeJobHasDepartment: Function;\n saveJobHasDepartment: Function;\n work: IWork;\n}\n\nfunction DepartmentSelector({ departments, readonly, relation, onChange }: {\n departments: IDepartment[], readonly?: boolean, relation: IJobHasDepartment, onChange: Function\n}) {\n const loading = useLoading();\n const selectedDepartment = useNumberState(relation.departmentId);\n const selectedWorker = useNumberState(relation.responsibleId);\n\n const departmentResolver = useResolveName(departments);\n\n const [workers, setWorkers] = React.useState([]);\n const workerResolver = useResolveName(workers, { name: 'fullName' });\n\n React.useEffect(() => {\n const dep = departments.find(d => d.id == selectedDepartment.value);\n const values = (dep?.workers ?? [])\n .map(w => ({ ...w, fullName: `${w.name} ${w.surname ?? ''}` }));\n setWorkers(values);\n }, [selectedDepartment.value]);\n\n const update = (field: 'departmentId' | 'responsibleId') => {\n return loading.wrap(async (ev: any) => {\n if (field === 'departmentId') {\n selectedDepartment.set(ev);\n }\n else {\n selectedWorker.set(ev);\n }\n const rel = {\n id: relation.id,\n dateTime: relation.dateTime,\n jobId: relation.jobId,\n departmentId: relation.departmentId,\n responsibleId: relation.responsibleId,\n [field]: parseInt(ev.target.value)\n };\n await onChange(rel);\n });\n }\n\n return
\n {readonly && <>\n \n \n }\n {!readonly && <>\n \n \n }\n {loading.render()}\n
\n}\n\nexport function ManageJobDepartments(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const [error, setError] = React.useState();\n const [showAdd, setShowAdd] = React.useState(false);\n const [workers, setWorkers] = React.useState([]);\n const selectedDepartment = useNumberState();\n const selectedWorker = useNumberState();\n\n const doRemoveJobHasDepartment = loading.wrap(async (relation: IJobHasDepartment) => {\n setError(undefined);\n\n const resp = await props.removeJobHasDepartment(props.work.id, props.job.id, relation.id);\n if (!resp.hasValue) {\n setError(resp.error);\n }\n\n await refresh();\n });\n\n const availableResponsibles = useSearch({\n workId: props.work.id,\n search: 'jobList/oblique.responsibles',\n filters: {\n workId: props.work.id,\n },\n });\n\n const [data, setData] = React.useState(props.job.departments);\n const confirmRemove = useConfirm({\n message: t('Are you sure to remove the selected department relation?'),\n accept: doRemoveJobHasDepartment\n });\n\n React.useEffect(() => {\n const dep = props.departments.find(d => d.id == selectedDepartment.value);\n setWorkers(\n (dep?.workers ?? [])\n .filter(w => availableResponsibles.value.find(r => r.id == w.id) != undefined)\n .map((w: IWorker) => ({ ...w, fullName: `${w.name} ${w.surname}` })));\n selectedWorker.set(undefined);\n }, [selectedDepartment.value]);\n\n const updateRelation = loading.wrap(async (rel: IJobHasDepartment) => {\n setError(undefined);\n\n const resp = await props.saveJobHasDepartment(props.work.id, props.job.id, rel);\n if (!resp.hasValue) {\n setError(resp.error);\n }\n\n await refresh();\n });\n\n const refresh = async () => {\n const resp = await props.getJobDepartments(props.work.id, props.job.id);\n setData(resp);\n }\n\n const toggleAdd = (ev: any) => {\n ev.preventDefault();\n ev.stopPropagation();\n setShowAdd(v => !v);\n }\n\n const dataTable = useDataTable({\n className: 'transparent',\n columns: [\n {\n render: (jr: IJobHasDepartment) =>\n d.isOblique != true)}\n onChange={updateRelation}\n relation={jr} />\n },\n {\n className: 'td-sm',\n render: (jr: IJobHasDepartment) => jr.isMain\n ? \n : null\n },\n ],\n data: data,\n actions: [\n {\n icon: 'trash',\n tooltip: t('Remove job department'),\n onClick: confirmRemove,\n disabled: (r: IJobHasDepartment) => r.isMain || props.readonly\n }\n ]\n });\n\n const doSaveJobHasDepartment = loading.wrap(async (..._: any) => {\n setError(undefined);\n\n const relation = {\n jobId: props.job.id,\n departmentId: selectedDepartment.value,\n responsibleId: selectedWorker.value,\n dateTime: new Date(),\n };\n\n const resp = await props.saveJobHasDepartment(props.work.id, props.job.id, relation);\n if (!resp.hasValue) {\n setError(resp.error);\n }\n\n setShowAdd(false);\n await refresh();\n });\n\n const departments = props.departments.filter(departmentIsProductive);\n\n return
\n {dataTable()}\n {showAdd &&
\n
\n \n \n
\n
\n \n
\n \n \n \n
\n
}\n\n {!props.readonly &&\n
\n \n \n \n {t('Add department')}\n \n
}\n {error &&
}\n
\n}\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport { ManageJobDepartments } from '@components/jobs/ManageJobDepartments';\n\nexport default connect(\n (state: ApplicationState) => ({\n departments: state.user.departments,\n work: state.user.work,\n ...JobsStore.plainActions,\n }),\n JobsStore.actionCreators,\n)(ManageJobDepartments as any) as any;","import { connect } from 'react-redux';\nimport { ApplicationState } from '../store';\n\nimport HelpDeskSupport from '../components/HelpDeskSupport';\nimport * as UserStore from '../store/user';\n\nexport default connect(\n (state: ApplicationState) => ({\n workId: state.user?.work?.id,\n ...UserStore.plainActions,\n }),\n {},\n)(HelpDeskSupport as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport './HelpDeskSupport.scss';\nimport { useForm, useLoading, useTranslation, useToast, F, ValidationBuilder } from '@components';\nimport { IHelpDeskItem, IOption } from '@models';\nimport { formatFileSize } from '@utils';\n\ntype CreateHelpDeskItemT = (item: IHelpDeskItem, files: File[]) => Promise>;\ntype OnCloseT = (ok: boolean) => void;\n\nexport interface IProps {\n createHelpDeskItem: CreateHelpDeskItemT;\n onClose: OnCloseT;\n workId: number;\n}\n\nexport default function HelpDeskSupport(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n\n const toast = useToast();\n const inputFileRef = React.useRef();\n const [selectedFiles, setSelectedFiles] = React.useState([]);\n\n const form = useForm({\n initialValues: {\n name: '',\n email: '',\n subject: '',\n description: '',\n workId: props.workId,\n },\n validateOnMount: true,\n validate: ValidationBuilder\n .create()\n .email('email')\n .notEmpty('email')\n .notEmpty('subject')\n .notEmpty('name')\n .lift(),\n });\n\n React.useEffect(() => {\n if (selectedFiles.length > 5) {\n setSelectedFiles(b => b.slice(0, 5));\n toast.show(t('maxFiles.error.5'), { severity: 'error' });\n }\n }, [selectedFiles]);\n\n\n const appendFile = (e: any) => {\n const files: any[] = [];\n for (let i = 0; i < e.target.files.length; i++) {\n files.push(e.target.files[i]);\n }\n setSelectedFiles(f => f.concat(files));\n }\n\n const selectFile = (e: any) => {\n inputFileRef.current.click();\n }\n\n const removeSelectedFile = (f: any) => {\n setSelectedFiles(a => a.filter(x => x != f));\n }\n\n const doSend = loading.wrap(async (e: any) => {\n const data = form.values;\n\n const res = await props.createHelpDeskItem(data, selectedFiles);\n if (res.error) {\n toast.show(t(res.error), { severity: 'error' });\n return;\n }\n props.onClose((res.hasValue && res.value) ?? false);\n });\n\n const dropHandler = (event: any) => {\n event.preventDefault();\n\n const files: File[] = [];\n\n if (event.dataTransfer.items) {\n for (let i = 0; i < event.dataTransfer.items.length; i++) {\n if (event.dataTransfer.items[i].kind === 'file') {\n const file = event.dataTransfer.items[i].getAsFile();\n files.push(file);\n }\n }\n }\n else {\n for (let i = 0; i < event.dataTransfer.files.length; i++) {\n files.push(event.dataTransfer.files[i]);\n }\n }\n\n setSelectedFiles(f => f.concat(files));\n }\n\n const dragOverHandler = (event: any) => {\n event.preventDefault();\n }\n\n return (
\n
\n {t('helpDesk.title')}\n
props.onClose(false)}>\n \n
\n
\n\n {toast.render()}\n\n
\n {loading.renderBox({ style: { margin: '50px' } })}\n\n {!loading.isLoading() && <>\n {t('helpDesk.contact')}\n\n \n {form.input('name', { autoFocus: true })}\n \n\n \n {form.input('email', { type: 'email' })}\n \n\n \n {form.input('subject')}\n \n\n \n {form.textarea('description', { rows: 8 })}\n \n\n \n \n\n appendFile(e)}\n ref={inputFileRef} />\n\n {t('helpDesk.filesTitle')}\n {t('helpDesk.filesSubTitle')}\n
\n\n {selectedFiles.length > 0 &&
\n \n {selectedFiles.length}\n  \n {selectedFiles.length == 1 && t('attachment-singular')}\n {selectedFiles.length > 1 && t('attachment-plural')}\n \n\n
\n {selectedFiles.map((f, i) =>
\n
\n {f.name}\n {formatFileSize(f.size)}\n
\n\n removeSelectedFile(f)} />\n
)}\n
\n
}\n\n {t('helpDesk.send')}\n }\n
\n );\n}\n","import { Action, Reducer } from 'redux';\r\nimport {\r\n IModuleInfo, IWork,\r\n} from '../models';\r\nimport { IFrontendModule, MenuItem } from '../../../../GStore.Modules/FrontEnd';\r\nimport ModuleManager from '../modules/ModuleManager';\r\nimport * as Utils from '@utils';\r\nimport * as DateUtils from '@utils/date-utils';\r\nimport * as Components from '@components';\r\nimport * as Containers from '../containers';\r\nimport * as Models from '@models';\r\nimport * as I18n from '../i18n';\r\nimport * as Search from './actions/search';\r\nimport * as Contractors from './actions/contractors';\r\nimport * as Documents from './actions/documents';\r\nimport * as Requirements from './actions/requirements';\r\nimport * as Jobs from './actions/jobs';\r\nimport { ApplicationState } from './index';\r\nimport { IdentityState } from './identity';\r\n\r\nexport interface IModulesState {\r\n menuItems: MenuItem[];\r\n modules: RuntimeModule[];\r\n moduleManager: ModuleManager;\r\n}\r\n\r\nconst defaultState = {\r\n menuItems: [],\r\n modules: [],\r\n moduleManager: new ModuleManager([]),\r\n}\r\n\r\n// types\r\nenum Types {\r\n ModulesLoaded = '[MODULES] MODULES LOADED',\r\n ClearModules = '[MODULES] CLEAR MODULES',\r\n InitializeModuleManager = '[MODULES] INITIALIZE MODULE MANAGER',\r\n}\r\n\r\ntype RuntimeModule = IFrontendModule;\r\n\r\n// actions\r\nexport interface OnModulesLoaded {\r\n type: Types.ModulesLoaded;\r\n menuItems: MenuItem[],\r\n modules: RuntimeModule[],\r\n}\r\nexport interface ClearModules {\r\n type: Types.ClearModules,\r\n}\r\nexport interface OnInitializeModuleManager {\r\n type: Types.InitializeModuleManager,\r\n identity: IdentityState,\r\n modules: RuntimeModule[],\r\n}\r\n\r\nexport type KnownAction = ClearModules | OnModulesLoaded | OnInitializeModuleManager | { type: undefined };\r\n\r\nexport const plainActions = {\r\n};\r\n\r\n(window as any).__modules = {\r\n Containers,\r\n Components,\r\n Utils,\r\n DateUtils,\r\n Models,\r\n I18n,\r\n Search,\r\n Contractors,\r\n Documents,\r\n Requirements,\r\n Jobs,\r\n};\r\n\r\nconst runtimeModules = (window as any).__modules;\r\n\r\nconst loadModule = async (m: IModuleInfo) => {\r\n const url = `/api/modules/${m.id}/resource/${m.frontendResource}`;\r\n // console.log('try to load module', m, url);\r\n const resp = await fetch(url);\r\n // console.log('try to load module', m, resp);\r\n const content = await resp.text();\r\n try {\r\n eval(content);\r\n } catch (ex) {\r\n console.error('error loading module', m, ex);\r\n }\r\n finally {\r\n runtimeModules[m.id].activate();\r\n runtimeModules[m.id].name = m.name;\r\n return runtimeModules[m.id];\r\n }\r\n}\r\n\r\nconst unloadModule = (m: RuntimeModule) => {\r\n m.deactivate();\r\n}\r\n\r\nexport const actionCreators = {\r\n clearModules: () => (dispatch: Function) => {\r\n dispatch({\r\n type: Types.ClearModules,\r\n });\r\n },\r\n initializeWork: (work: IWork, i18nResources: any = undefined) => async (dispatch: Function, getState: () => ApplicationState) => {\r\n const activeModules = work.activeModules ?? [];\r\n const state = getState();\r\n\r\n for (const m of state.modules.modules) {\r\n unloadModule(m);\r\n }\r\n\r\n const menuItems = [];\r\n const modules = [];\r\n for (const moduleInfo of activeModules) {\r\n if (moduleInfo.hasFrontend) {\r\n const module = await loadModule(moduleInfo);\r\n modules.push(module);\r\n for (const mi of module.getMenuItems() ?? []) {\r\n menuItems.push(mi);\r\n }\r\n\r\n if (module.i18n) {\r\n I18n.installResources(i18nResources, module.i18n);\r\n }\r\n }\r\n }\r\n\r\n dispatch({\r\n type: Types.InitializeModuleManager,\r\n identity: state.identity,\r\n modules: modules,\r\n });\r\n\r\n dispatch({\r\n type: Types.ModulesLoaded,\r\n menuItems: menuItems,\r\n modules: modules,\r\n });\r\n },\r\n};\r\n\r\nexport const reducer: Reducer = (state: IModulesState | undefined, incomingAction: Action): IModulesState => {\r\n if (state === undefined) {\r\n return defaultState;\r\n }\r\n\r\n const action = incomingAction as KnownAction;\r\n\r\n switch (action.type) {\r\n case Types.ClearModules:\r\n return defaultState;\r\n\r\n case Types.ModulesLoaded:\r\n return {\r\n ...state,\r\n modules: action.modules,\r\n menuItems: action.menuItems,\r\n };\r\n\r\n case Types.InitializeModuleManager:\r\n return {\r\n ...state,\r\n moduleManager: new ModuleManager(\r\n action.modules || state.modules,\r\n action.identity,\r\n Math.random() * new Date().getTime() + '_v',\r\n ),\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n","import * as React from 'react';\n\nimport { useTranslation, Tag, } from '@components';\nimport { IMessage, MessageType, ResourceType } from '@models';\n\nexport interface IProps {\n message: IMessage;\n}\n\nexport function MessageIcon({ message }: IProps) {\n const { t } = useTranslation();\n if (message.notificationType === MessageType.JOB_CREATED) {\n return ;\n }\n else if (message.notificationType === MessageType.JOB_INFORMATION_LOADED) {\n return ;\n }\n else if (message.notificationType === MessageType.PENDING_REQUIREMENT\n && message.data.ResourceType === ResourceType.Worker) {\n return ;\n }\n else if (message.notificationType === MessageType.PENDING_REQUIREMENT\n && message.data.ResourceType === ResourceType.JobHasWorker) {\n return ;\n }\n else if (message.notificationType === MessageType.PENDING_REQUIREMENT\n && message.data.ResourceType === ResourceType.Machinery) {\n return ;\n }\n else if (message.notificationType === MessageType.PENDING_REQUIREMENT\n && message.data.ResourceType === ResourceType.JobHasMachinery) {\n return ;\n }\n else if (message.notificationType === MessageType.PENDING_REQUIREMENT\n && message.data.ResourceType === ResourceType.Contractor) {\n return ;\n }\n else if (message.notificationType === MessageType.PENDING_REQUIREMENT\n && message.data.ResourceType === ResourceType.JobHasContractor) {\n return ;\n }\n else if (message.notificationType === MessageType.REQUIREMENT_VALIDATED) {\n return ;\n }\n else if (message.notificationType === MessageType.INVALID_ITA) {\n return ;\n }\n else if (message.notificationType === MessageType.REQUIREMENT_INCIDENCE) {\n return ;\n }\n else if (message.notificationType === MessageType.SUBCONTRACTOR_REQUEST) {\n return ;\n }\n else if (message.notificationType === MessageType.SUBCONTRACTOR_REQUEST_ACCEPTED) {\n return ;\n }\n else if (message.notificationType === MessageType.SUBCONTRACTOR_REQUEST_REJECTED) {\n return ;\n }\n else if (message.notificationType === MessageType.JOB_FINALIZED) {\n return ;\n }\n else if (message.notificationType === MessageType.RESOURCE_AUTHORIZED) {\n return ;\n }\n else if (message.notificationType === MessageType.RESOURCE_REJECTED) {\n return ;\n }\n else if (message.notificationType === MessageType.JOB_AUTHORIZED) {\n return ;\n }\n else if (message.notificationType === MessageType.JOB_REVOKED) {\n return ;\n }\n else if (message.notificationType === MessageType.REQUIREMENT_EXPIRED) {\n return ;\n }\n else if (message.notificationType === MessageType.MODULE_MESSAGE) {\n return ;\n }\n else if (message.notificationType === MessageType.REQUIREMENT_NEAR_EXPIRATION) {\n return ;\n }\n else {\n return null;\n }\n}","import * as React from 'react';\n\nimport { IMessage, MessageType } from '@models/notifications';\n\nexport interface IProps {\n message: IMessage;\n}\n\nexport function NotificationMessageDisplayName({message}: IProps) {\n if (false && message.notificationType === MessageType.PENDING_REQUIREMENT && message.data) {\n return
\n {message.data.ResourceName}\n {message.data.RequirementName}\n
;\n }\n else {\n return null;\n }\n}","import * as React from 'react';\n\nimport { R, useForm, useTranslation } from '@components';\nimport { IRequirement, IRequirementType, IRequirementValidationData } from '@models/requirements';\nimport { IOption } from '@models';\nimport dateUtils from '@utils/date-utils';\n\ntype AcceptT = (requirement: IRequirement, data: IRequirementValidationData) => Promise>;\n\nexport interface IProps {\n loading?: boolean;\n requestAccept: AcceptT;\n requestClose: Function;\n requirement: IRequirement;\n requirementType: IRequirementType;\n workId: number;\n}\n\nexport function AcceptRequirement(props: IProps) {\n const { t } = useTranslation();\n\n const form = useForm({\n initialValues: {\n remarks: '',\n expirationThreshold: (props.requirementType?.expirationThreshold),\n expirationDate: dateUtils.toUtc(props.requirement.expirationDate ?? undefined),\n },\n });\n\n const doAccept = () => {\n props.requestAccept(props.requirement, form.values);\n }\n\n const suggestions = (props.requirementType?.suggestions ?? []).map(s => s.name);\n\n const deleteDate = () => {\n form.setFieldValue('expirationDate', undefined);\n }\n\n return
\n
\n \n {form.autoCompleteTextArea(\n 'remarks',\n {suggestions, style: {minWidth: '400px', minHeight: '150px'}})}\n \n
\n \n {form.calendar('expirationDate')}\n \n \n
\n \n {form.input('expirationThreshold', {type: 'number'})}\n \n
\n
\n \n \n
\n
\n}\n","import { connect } from \"react-redux\";\nimport { ApplicationState } from '../../store';\nimport * as ConstantsStore from '@store/constants';\nimport * as RequirementsStore from '@store/requirements';\nimport * as App from '@store/app';\n\nimport { RejectRequirement } from '../../components/requirements/RejectRequirement';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...RequirementsStore.plainActions,\n user: state.identity?.user,\n }),\n {},\n)(RejectRequirement as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any","import * as React from 'react';\n\nimport { R, ValidationBuilder, useForm, useTranslation, useLoading, useMessage } from '@components';\nimport { IRequirement, IRequirementIncidence, IRequirementType, IRequirementValidationData } from '@models/requirements';\nimport { IOption, IUserIdentity } from '@models';\nimport { pushTemporalResource } from '@store/actions/documents';\n\n\n// type RejectT = (requirement: IRequirement, data: IRequirementValidationData, fileResourceId: string|undefined,\n// fileResourceName: string|undefined) => Promise>;\n\ntype saveRequirementIncidenceT = (\n workId: number,\n data: IRequirementIncidence,\n fileResourceId: string | undefined,\n fileResourceName: string | undefined) => Promise>;\n\nexport interface IProps {\n loading?: boolean;\n incidence?: IRequirementIncidence;\n requestClose: Function;\n // requestReject: RejectT;\n saveRequirementIncidence: saveRequirementIncidenceT;\n onRejected?: Function;\n requirement: IRequirement;\n requirementType: IRequirementType;\n user: IUserIdentity;\n}\n\nexport function RejectRequirement(props: IProps) {\n const { t } = useTranslation();\n const fileRef = React.useRef();\n const loading = useLoading();\n const [selectedFile, setSelectedFile] = React.useState();\n const message = useMessage();\n\n const defaultIncidence: IRequirementIncidence = {\n requirementId: props.requirement.id,\n creationDate: new Date(),\n remarks: '',\n createdById: props.user.id,\n };\n\n const form = useForm({\n initialValues: props.incidence ?? defaultIncidence,\n validateOnMount: true,\n validate: ValidationBuilder\n .new()\n .notEmpty('remarks', 'requirements.incidence.remarks-mandatory')\n .lift()\n });\n\n const doReject = loading.wrap(async () => {\n const fileResourceId = await getFileResourceId(selectedFile);\n const fileResourceName = await getFileResourceName(selectedFile);\n // await props.requestReject(props.requirement, form.values, fileResourceId, fileResourceName);\n const res = await props.saveRequirementIncidence(props.requirement.workId, form.values, fileResourceId, fileResourceName);\n message.set(res);\n if (props.onRejected) {\n props.onRejected(props.requirement);\n }\n props.requestClose();\n });\n\n const doSelectFile = () => {\n fileRef.current.click();\n }\n\n const onFileSelected = (event: any) => {\n const file = event.target.files[event.target.files.length - 1];\n setSelectedFile(file);\n }\n\n const getFileResourceId = async (file: File | undefined) => {\n if (file) {\n const res = await pushTemporalResource(file);\n // TODO: controlar posibles errores enviando el fichero al servidor\n return res.value;\n }\n else {\n return undefined;\n }\n };\n\n const getFileResourceName = async (file: File | undefined) => {\n if (file) {\n return file.name;\n }\n else {\n return undefined;\n }\n };\n\n const suggestions = (props.requirementType?.suggestions ?? []).map(s => s.name);\n\n return
\n
\n \n {form.autoCompleteTextArea('remarks', { autoFocus: true, suggestions, style: { minWidth: '400px', minHeight: '150px' } })}\n \n
\n
\n \n {selectedFile && {selectedFile.name}\n \n }\n \n
\n \n \n
\n
\n}\n","import * as React from 'react';\n\nimport { classNames, useDialogs, useLoading, useMemoized, useTranslation } from '@components';\nimport { flatten } from '@utils';\nimport { DocumentViewer } from '@components/viewers/DocumentViewer';\nimport { IOption, IUserIdentity } from '@models';\nimport {\n IRequirement, IRequirementGroup, IRequirementIncidence, IRequirementType,\n IRequirementValidationData, RequirementStatusTypes\n} from '@models/requirements';\nimport { unique } from '@utils';\nimport { RequirementDocumentInfo } from './RequirementDocumentInfo';\nimport './ValidateAllRequirements.scss';\nimport { AcceptRequirement } from './AcceptRequirement';\nimport RejectRequirementContainer from '@containers/requirements/RejectRequirementContainer';\n\ntype ValidateT = (workId: number, requirementId: number, validate: boolean, data: IRequirementValidationData, fileResourceId?: string | undefined,\n fileResourceName?: string | undefined) => Promise>;\n\ntype saveRequirementIncidenceT = (\n workId: number,\n data: IRequirementIncidence,\n fileResourceId: string | undefined,\n fileResourceName: string | undefined) => Promise>;\n\ntype GetDocumentT = (workId: number, documentId: number) => Promise>;\n\nexport interface IProps {\n getDocumentInfo: GetDocumentT;\n requirementJobs?: any;\n requestCancel: Function;\n requirements: IRequirement[];\n requirementTypes: IRequirementType[];\n requirementGroups: IRequirementGroup[];\n selectedRequirementId?: number;\n validateRequirement: ValidateT;\n loadMessages: Function;\n user: IUserIdentity;\n workId: number;\n}\n\nfunction RequirementDocumentsImpl({ requirement }: { requirement: IRequirement }) {\n const { t } = useTranslation();\n\n const selectedDocument = requirement.documents?.[0];\n var lastVersion = selectedDocument?.document.versions!.sort((a, b) => b.id - a.id)[0];\n\n if (selectedDocument) {\n const documentUrl = `/api/files/${requirement.workId}/document/${selectedDocument.document.id}/version/${lastVersion?.id}`;\n return \n }\n else {\n return
{t('No documents')}
\n }\n}\n\nconst RequirementDocuments = React.memo(\n RequirementDocumentsImpl,\n (prev, next) => prev.requirement.id == next.requirement.id);\n\nexport function ValidateAllRequirements(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n\n const [pendingRequirements, setPendingRequirements] = React.useState([]);\n const [selectedRequirement, setSelectedRequirement] = React.useState();\n const [validatedRequirements, setValidatedRequirements] = React.useState([]);\n const [rejectedRequirements, setRejectedRequirements] = React.useState([]);\n\n const dialogs = useDialogs();\n\n React.useEffect(() => {\n if (selectedRequirement === undefined) {\n const r = props.requirements.find(r => r.id == props.selectedRequirementId);\n setSelectedRequirement(r);\n }\n }, [props.selectedRequirementId, props.requirements]);\n\n const resolveRequirementType = useMemoized((id: number) => {\n const allRequirementTypes = flatten(props.requirementGroups.map(g => g.requirementTypes ?? []));\n return allRequirementTypes.find(r => r.id == id);\n });\n\n const requirementIsPending = (r: IRequirement) => {\n const state = r.status.find(s => s.isCurrent);\n\n return state?.statusTypeId == RequirementStatusTypes.PENDING\n && !validatedRequirements.includes(r.id)\n && !rejectedRequirements.includes(r.id);\n };\n\n React.useEffect(() => {\n const pendingRequirements = unique(\n props.requirements.filter(requirementIsPending))\n .filter(r => validatedRequirements.indexOf(r.id) < 0\n && rejectedRequirements.indexOf(r.id) < 0);\n const a = pendingRequirements\n .map(r => ({ requirement: r, requirementType: resolveRequirementType(r.requirementTypeId) }));\n const b = a.sort((x, y) =>\n x.requirementType?.resourceType == y.requirementType?.resourceType\n ? y.requirementType?.orderValue - x.requirementType?.orderValue\n : x.requirementType?.resourceType - y.requirementType?.resourceType);\n\n setPendingRequirements(b.map(x => x.requirement));\n\n const selected = props.requirements.find(r => r.id == props.selectedRequirementId);\n\n if (pendingRequirements.length > 0 && selected === undefined && selectedRequirement === undefined) {\n setSelectedRequirement(pendingRequirements[0]);\n }\n }, [props.requirements, validatedRequirements]);\n\n\n const reject = (req: IRequirement) => {\n const rt = resolveRequirementType(req.requirementTypeId);\n dialogs.show('reject', [req, rt]);\n }\n const validate = (req: IRequirement) => {\n const rt = resolveRequirementType(req.requirementTypeId);\n dialogs.show('validate', [req, rt]);\n }\n\n const findRequirementIndex = (requirements: IRequirement[], req: IRequirement) => {\n for (let i = 0; i < requirements.length; i++) {\n if (req.id == requirements[i].id) {\n return i;\n }\n }\n\n return -1;\n }\n\n const doValidate = loading.wrap(async (req: IRequirement, data: IRequirementValidationData) => {\n const i = findRequirementIndex(pendingRequirements, req);\n const _ = await props.validateRequirement(req.workId, req.id, true, data);\n\n const nextIndex = i >= pendingRequirements.length - 1\n ? 0\n : i + 1;\n const nextRequirement = nextIndex < pendingRequirements.length\n ? pendingRequirements[nextIndex]\n : undefined;\n /*\n * console.log('VALIDATE: ', pendingRequirements, req);\n * console.log('VALIDATE REQUIREMENT: CURRENT INDEX', i, nextIndex, nextRequirement);\n * */\n setValidatedRequirements(r => r.concat([req.id]));\n setSelectedRequirement(nextRequirement?.id == req.id ? undefined : nextRequirement);\n\n // props.loadMessages();\n\n dialogs.clear();\n });\n\n const onRejected = (req: IRequirement) => {\n const i = findRequirementIndex(pendingRequirements, req);\n const nextIndex = i >= pendingRequirements.length - 1\n ? 0\n : i + 1;\n const nextRequirement = nextIndex < pendingRequirements.length\n ? pendingRequirements[nextIndex]\n : undefined;\n /* console.log('REJECT: ', pendingRequirements, req);\n * console.log('REJECT: CURRENT INDEX', i, nextIndex, nextRequirement);\n */\n setRejectedRequirements(r => r.concat([req.id]));\n setSelectedRequirement(nextRequirement?.id == req.id ? undefined : nextRequirement);\n\n // props.loadMessages();\n\n dialogs.clear();\n }\n\n const allValidated = pendingRequirements.length === 0;\n const canNotValidate =\n selectedRequirement == undefined\n || loading.isLoading()\n || validatedRequirements.includes(selectedRequirement.id)\n || rejectedRequirements.includes(selectedRequirement.id);\n\n const total = pendingRequirements.length;\n const currentIndex = selectedRequirement ? pendingRequirements.indexOf(selectedRequirement) : 0;\n\n const canGoForward = currentIndex < total;\n const canGoBackward = currentIndex > 0;\n\n const goBackward = () => {\n const r = currentIndex - 1;\n if (r >= 0) {\n setSelectedRequirement(pendingRequirements[r]);\n }\n }\n\n const goForward = () => {\n const r = currentIndex + 1;\n if (r < pendingRequirements.length) {\n setSelectedRequirement(pendingRequirements[r]);\n }\n }\n\n return
\n {dialogs.render('reject', { title: t('Reject'), className: 'g pd', maskClassName: 'z-10002' }, ([req, rt]: [IRequirement, IRequirementType]) =>\n )}\n\n {dialogs.render('validate', { title: t('Validate'), className: 'g pd', maskClassName: 'z-10002' }, ([req, rt]: [IRequirement, IRequirementType]) =>\n )}\n\n {selectedRequirement &&
\n {resolveRequirementType(selectedRequirement.requirementTypeId)?.title}\n
}\n
\n
\n {pendingRequirements.length} {t('requirements.pending')}\n
\n {pendingRequirements.map((p, i) =>\n setSelectedRequirement(p)}>\n {(p as any).__resourceName && {(p as any).__resourceName}}\n {validatedRequirements.includes(p.id) &&\n }\n {rejectedRequirements.includes(p.id) &&\n }\n {resolveRequirementType(p.requirementTypeId)?.title ?? p.title}\n
)}\n
\n \n {selectedRequirement\n && selectedRequirement?.documents\n && }\n
\n
\n
\n {allValidated && !loading.isLoading() &&\n
\n {t('requirements.all.validated')}\n \n
}\n {selectedRequirement &&\n }\n
\n\n
\n
\n \n {loading.render()}\n
\n \n \n \n \n \n \n
\n {props.requestCancel && }\n {!allValidated && !canNotValidate && <>\n reject(selectedRequirement!)}>\n {t('Deny')}\n \n validate(selectedRequirement!)}>\n {t('Validate')}\n \n }\n
\n
\n
\n \n}\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as DocumentActions from '../../store/actions/documents';\nimport * as RequirementsStore from '../../store/requirements';\nimport * as NotificationsStore from '@store/notifications';\nimport { ValidateAllRequirements } from '../../components/requirements/ValidateAllRequirements';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...state.constants,\n ...DocumentActions,\n ...RequirementsStore.plainActions,\n requirementGroups: state.user.requirementGroups,\n requirementStatusTypes: state.user.requirementStatusTypes,\n workId: state.work.work?.id,\n }),\n {\n ...NotificationsStore.actionCreators,\n },\n)(ValidateAllRequirements as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as NotificationsStore from '@store/notifications';\nimport * as RequirementsStore from '@store/requirements';\nimport * as UserStore from '@store/user';\n\nimport { ValidateRequirementsFromNotificationMessages } from '@components/notifications/ValidateRequirementsFromNotificationMessages';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...RequirementsStore.plainActions,\n ...state.identity,\n work: state.user.work,\n messages: state.notifications.messages,\n }),\n {\n loadWork: UserStore.actionCreators?.selectWork,\n resolveMessage: NotificationsStore.actionCreators?.clearMessage,\n },\n)(ValidateRequirementsFromNotificationMessages as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { IWork } from '@models';\nimport { IMessage, MessageType } from '@models/notifications';\nimport { IRequirement } from '@models/requirements';\n\nimport ValidateAllRequirements from '@containers/requirements/ValidateAllRequirementsContainer';\nimport { useHideBodyScrollbar, useLoading } from '@components';\nimport { unique } from '@utils';\n\nimport './ValidateRequirementsFromNotificationMessages.scss';\n\ntype GetRequirementF = (workId: number, targetType: number, targetId: number, id: number) => Promise;\ntype LoadWorkF = (workId: number) => void;\n\nexport interface IProps {\n getRequirementsFromResources: Function;\n getRequirement: GetRequirementF;\n loadWork: LoadWorkF;\n message: IMessage;\n messages: IMessage[];\n requestCancel: Function;\n workId: number;\n work: IWork;\n}\n\nexport function ValidateRequirementsFromNotificationMessages(props: IProps) {\n const loading = useLoading({container: '#validate-requirements-left'});\n const [requirement, setRequirement] = React.useState();\n const [message, setMessage] = React.useState();\n\n const [requirementJobs, setRequirementJobs] = React.useState({});\n const [requirements, setRequirements] = React.useState([]);\n const [selectedRequirementId, setSelectedRequirementId] = React.useState();\n\n useHideBodyScrollbar();\n\n React.useEffect(() => {\n if (props.messages) {\n const res: any = {};\n\n for (const m of props.messages) {\n if (m.notificationType === MessageType.PENDING_REQUIREMENT && m.data?.JobId) {\n res[m.data.RequirementId] = m.data.JobId;\n }\n }\n\n setRequirementJobs(res);\n }\n }, [props.messages]);\n\n const loadRequirements = loading.wrap(async () => {\n const msgs = props.messages.filter(m => m.notificationType === MessageType.PENDING_REQUIREMENT);\n const requirementIds = unique(\n msgs\n .map(m => ({\n requirementId: m.data?.RequirementId,\n resourceType: m.data?.ResourceType,\n resourceId: m.data?.ResourceId\n }))\n .filter(r => r.requirementId != undefined),\n 'requirementId');\n\n const res = await props.getRequirementsFromResources(\n props.workId,\n requirementIds);\n\n console.log('loadrequirements', props.message);\n\n for (const r of res) {\n const msg = msgs.find(m => m.data?.RequirementId == r.id);\n if (r.id === props.message?.data?.RequirementId) {\n setSelectedRequirementId(r.id);\n }\n if (msg) {\n r.__resourceName = msg.data?.ResourceName;\n }\n }\n\n setRequirements(res);\n });\n\n React.useEffect(() => {\n loadRequirements();\n }, [props.messages]);\n\n React.useEffect(() => {\n if (props.work == undefined || props.work.id != props.workId) {\n props.loadWork(props.workId);\n }\n }, [props.work]);\n\n React.useEffect(() => {\n setMessage(props.message);\n }, [props.message]);\n\n return
\n {loading.renderBox({style: {fontSize: '0.8em'}})}\n {requirements && props.work && props.work?.id == props.workId &&\n }\n
;\n}","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as RequirementsStore from '@store/requirements';\nimport { ViewRequirementHistory } from '@components/requirements/ViewRequirementHistory';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...state.constants,\n ...RequirementsStore.plainActions,\n appUsers: state.user.work?.users,\n requirementGroups: state.user.requirementGroups,\n requirementStatusTypes: state.user.requirementStatusTypes,\n }),\n {},\n)(ViewRequirementHistory as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\r\n\r\nimport { useDialogs, useMessage, useTranslation, Portal } from '@components';\r\nimport {\r\n goToContractorRequirements, goToJob, goToJobContractors, goToJobEditContractor, goToJobEditContractorRequirements,\r\n goToJobHasMachinery, goToJobInformationLoaded, goToJobWorker\r\n} from '@components/routes';\r\nimport ValidateRequirementsFromNotificationMessages from '@containers/notifications/ValidateRequirementsFromNotificationMessagesContainer';\r\nimport { DataLoader } from '@components/custom/DataLoader';\r\nimport ViewRequirementHistory from '@containers/requirements/ViewRequirementHistoryContainer';\r\nimport { IOption, ISecurity, ResourceType, IWork } from '@models';\r\nimport { IMessage, MessageType } from '@models/notifications';\r\nimport { IRequirement } from '@models/requirements';\r\nimport { redirectTo } from '@utils';\r\nimport * as R from '@components/routes';\r\n\r\nimport { getRequirement } from '@store/actions/requirements';\r\n\r\ntype ResolveMessageF = (id: string) => Promise>;\r\n\r\nexport interface IProps {\r\n message?: IMessage;\r\n resolveMessage: ResolveMessageF;\r\n requestCancel: Function;\r\n security: ISecurity;\r\n work: IWork;\r\n workId: number;\r\n}\r\n\r\nconst __resolvedMessages: string[] = [];\r\n\r\nexport function NotificationMessageEffect({\r\n message, requestCancel, resolveMessage,\r\n security, workId,\r\n work,\r\n}: IProps) {\r\n const dialogs = useDialogs();\r\n const err = useMessage();\r\n const { t } = useTranslation();\r\n\r\n const goToRequirement = (data: any) => {\r\n if (data.ResourceType == ResourceType.Contractor) {\r\n R.goToContractorRequirements(data.WorkId, data.ResourceId);\r\n }\r\n else if (data.ResourceType == ResourceType.Machinery) {\r\n R.goToMachineryRequirements(data.WorkId, data.ResourceId);\r\n }\r\n else if (data.ResourceType == ResourceType.Worker) {\r\n R.goToWorkerRequirements(data.WorkId, data.ResourceId);\r\n }\r\n else if (data.ResourceType == ResourceType.JobHasContractor) {\r\n R.goToJobEditContractorRequirements(data.WorkId, data.JobId, data.ResourceId);\r\n }\r\n else if (data.ResourceType == ResourceType.JobHasMachinery) {\r\n R.goToJobEditMachineryRequirements(data.WorkId, data.JobId, data.ResourceId);\r\n }\r\n else if (data.ResourceType == ResourceType.JobHasWorker) {\r\n R.goToJobEditWorkerRequirements(data.WorkId, data.JobId, data.ResourceId);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (message && message.notificationType == MessageType.REQUIREMENT_EXPIRED && !__resolvedMessages.includes(message.id)) {\r\n // __resolvedMessages.push(message.id);\r\n const data = message.data;\r\n goToRequirement(message.data);\r\n }\r\n else if (message && message.notificationType == MessageType.REQUIREMENT_INCIDENCE && !__resolvedMessages.includes(message.id)) {\r\n // __resolvedMessages.push(message.id);\r\n const data = message.data;\r\n goToRequirement(message.data);\r\n }\r\n else if (message && message.notificationType == MessageType.MESSAGE && !__resolvedMessages.includes(message.id)) {\r\n const data = message.data;\r\n if (data.Route) {\r\n R.redirectTo(data.Route);\r\n }\r\n else if (message.data.JobId) {\r\n goToJob(message.data.WorkId, message.data.JobId);\r\n }\r\n else {\r\n requestCancel();\r\n }\r\n }\r\n else if (message && message.notificationType === MessageType.JOB_CREATED) {\r\n const jobId = message.data.JobId;\r\n const workId = message.data.WorkId;\r\n goToJob(workId, jobId);\r\n }\r\n else if (message && message.notificationType === MessageType.REQUIREMENT_VALIDATED && message.data.JobId && message.data.JobHasContractorId) {\r\n const jobId = message.data.JobId;\r\n const workId = message.data.WorkId;\r\n const jobHasContractorId = message.data.JobHasContractorId;\r\n goToJobEditContractorRequirements(workId, jobId, jobHasContractorId);\r\n }\r\n else if (message && message.notificationType === MessageType.REQUIREMENT_VALIDATED && message.data.JobId) {\r\n const jobId = message.data.JobId;\r\n const workId = message.data.WorkId;\r\n goToJob(workId, jobId);\r\n }\r\n else if (message\r\n && message.notificationType === MessageType.PENDING_REQUIREMENT\r\n && message.data.ResourceType === ResourceType.JobHasWorker\r\n && message.data.JobId) {\r\n const jobId = message.data.JobId;\r\n const workId = message.data.WorkId;\r\n // goToJob(workId, jobId);\r\n }\r\n else if (message\r\n && message.notificationType === MessageType.PENDING_REQUIREMENT\r\n && message.data.ResourceType === ResourceType.JobHasMachinery\r\n && message.data.JobId) {\r\n const jobId = message.data.JobId;\r\n const workId = message.data.WorkId;\r\n // goToJob(workId, jobId);\r\n }\r\n else if (message\r\n && message.notificationType === MessageType.PENDING_REQUIREMENT\r\n && message.data.ResourceType === ResourceType.JobHasContractor\r\n && message.data.JobId) {\r\n const jobId = message.data.JobId;\r\n const workId = message.data.WorkId;\r\n // goToJob(workId, jobId);\r\n }\r\n else if (message && message.notificationType === MessageType.INVALID_ITA && message.data.ResourceId) {\r\n const resourceId = message.data.ResourceId;\r\n const workId = message.data.WorkId;\r\n goToContractorRequirements(workId, resourceId);\r\n }\r\n else if (message && message.notificationType === MessageType.SUBCONTRACTOR_REQUEST_ACCEPTED\r\n && message.data\r\n && message.data.JobId) {\r\n const jobId = message.data.JobId;\r\n const workId = message.data.WorkId;\r\n goToJobContractors(workId, jobId);\r\n }\r\n else if (message && message.notificationType === MessageType.REQUIREMENT_INCIDENCE && message.data.JobId) {\r\n const jobId = message.data.JobId;\r\n const workId = message.data.WorkId;\r\n goToJob(workId, jobId);\r\n }\r\n else if (message && message.notificationType === MessageType.SUBCONTRACTOR_REQUEST) {\r\n redirectTo(`/work/${workId}/contractor/subcontractorrequests`);\r\n }\r\n else if (message && message.notificationType === MessageType.SUBCONTRACTOR_REQUEST_REJECTED) {\r\n redirectTo(`/work/${workId}/contractor/subcontractorrequests`);\r\n }\r\n else if (message && message.notificationType === MessageType.JOB_INFORMATION_LOADED) {\r\n goToJobInformationLoaded(workId, message.data.JobId);\r\n }\r\n else if (message && message.notificationType === MessageType.JOB_FINALIZED) {\r\n goToJob(workId, message.data.JobId);\r\n }\r\n else if (message && message.notificationType === MessageType.MESSAGE) {\r\n goToJob(workId, message.data.JobId);\r\n }\r\n else if (message && message.notificationType === MessageType.JOB_AUTHORIZED) {\r\n\r\n const jobId = message.data.JobId;\r\n goToJob(workId, jobId);\r\n }\r\n else if (message && message.notificationType === MessageType.JOB_REVOKED) {\r\n const jobId = message.data.JobId;\r\n goToJob(workId, jobId);\r\n }\r\n else if (message && message.notificationType === MessageType.RESOURCE_AUTHORIZED) {\r\n const jobId = message.data.JobId;\r\n const resourceId = message.data.ResourceId;\r\n\r\n if (message.data.ResourceType === ResourceType.JobHasMachinery) {\r\n goToJobHasMachinery(workId, jobId, resourceId);\r\n }\r\n else if (message.data.ResourceType === ResourceType.JobHasWorker) {\r\n goToJobWorker(workId, jobId, resourceId);\r\n }\r\n else if (message.data.ResourceType === ResourceType.JobHasContractor) {\r\n goToJobEditContractor(workId, jobId, resourceId);\r\n }\r\n else if (message.data.ResourceType === ResourceType.Worker) {\r\n R.goToWorkerRequirements(workId, resourceId);\r\n }\r\n else if (message.data.ResourceType === ResourceType.Machinery) {\r\n R.goToMachineryRequirements(workId, resourceId);\r\n }\r\n else if (message.data.ResourceType === ResourceType.Contractor) {\r\n R.goToContractorRequirements(workId, resourceId);\r\n }\r\n }\r\n else if (message && message.notificationType === MessageType.RESOURCE_REJECTED) {\r\n const jobId = message.data.JobId;\r\n const resourceId = message.data.ResourceId;\r\n if (message.data.ResourceType === ResourceType.JobHasMachinery) {\r\n goToJobHasMachinery(workId, jobId, resourceId);\r\n }\r\n else if (message.data.ResourceType === ResourceType.JobHasWorker) {\r\n goToJobWorker(workId, jobId, resourceId);\r\n }\r\n else if (message.data.ResourceType === ResourceType.JobHasContractor) {\r\n goToJobEditContractor(workId, jobId, resourceId);\r\n }\r\n }\r\n else if (message && message.notificationType == MessageType.MODULE_MESSAGE) {\r\n redirectTo(message.data.URL);\r\n }\r\n else if (message && message.notificationType === MessageType.REQUIREMENT_NOTE) {\r\n if (message.data.ResourceType === ResourceType.JobHasWorker) {\r\n R.goToJobEditWorkerRequirements(workId, message.data.JobId, message.data.ResourceId);\r\n }\r\n else if (message.data.ResourceType === ResourceType.JobHasMachinery) {\r\n R.goToJobEditMachineryRequirements(workId, message.data.JobId, message.data.ResourceId);\r\n }\r\n else if (message.data.ResourceType === ResourceType.JobHasContractor) {\r\n goToJobEditContractorRequirements(workId, message.data.JobId, message.data.ResourceId);\r\n }\r\n else if (message.data.ResourceType === ResourceType.JobHasDepartment) {\r\n R.goToJobRequirements(workId, message.data.JobId)\r\n }\r\n else if (message.data.ResourceType === ResourceType.Worker) {\r\n R.goToWorkerRequirements(workId, message.data.ResourceId);\r\n }\r\n else if (message.data.ResourceType === ResourceType.Machinery) {\r\n R.goToMachineryRequirements(workId, message.data.ResourceId);\r\n }\r\n else if (message.data.ResourceType === ResourceType.Contractor) {\r\n goToContractorRequirements(workId, message.data.ResourceId);\r\n }\r\n }\r\n else if (message && message.notificationType === MessageType.REQUIREMENT_NEAR_EXPIRATION) {\r\n if (message.data.ResourceType === ResourceType.JobHasWorker) {\r\n R.goToJobEditWorkerRequirements(workId, message.data.JobId, message.data.ResourceId);\r\n }\r\n else if (message.data.ResourceType === ResourceType.JobHasMachinery) {\r\n R.goToJobEditMachineryRequirements(workId, message.data.JobId, message.data.ResourceId);\r\n }\r\n else if (message.data.ResourceType === ResourceType.JobHasContractor) {\r\n goToJobEditContractorRequirements(workId, message.data.JobId, message.data.ResourceId);\r\n }\r\n else if (message.data.ResourceType === ResourceType.JobHasDepartment) {\r\n R.goToJobRequirements(workId, message.data.JobId)\r\n }\r\n else if (message.data.ResourceType === ResourceType.Worker) {\r\n R.goToWorkerRequirements(workId, message.data.ResourceId);\r\n }\r\n else if (message.data.ResourceType === ResourceType.Machinery) {\r\n R.goToMachineryRequirements(workId, message.data.ResourceId);\r\n }\r\n else if (message.data.ResourceType === ResourceType.Contractor) {\r\n goToContractorRequirements(workId, message.data.ResourceId);\r\n }\r\n }\r\n }, [message]);\r\n\r\n const loadRequirement = (data: any) => {\r\n const { WorkId, ResourceType, ResourceId, RequirementId } = data;\r\n if (!ResourceType || !ResourceId || !RequirementId) {\r\n err.setError(t('requirement.get.error'));\r\n return new Promise((resolve) => resolve({ error: true }));\r\n }\r\n else {\r\n return getRequirement(WorkId, ResourceType, ResourceId, RequirementId);\r\n }\r\n }\r\n\r\n const clearRequirement = () => {\r\n dialogs.clear();\r\n requestCancel();\r\n }\r\n\r\n if (message && dialogs.get('requirement.history')) {\r\n return dialogs.render('requirement.history', {}, (data: any) =>\r\n loadRequirement(data)}>\r\n {(req: any) =>\r\n <>\r\n {req && !req.error &&\r\n }\r\n {req.error &&
\r\n {err.render()}\r\n
\r\n \r\n
\r\n
}\r\n \r\n }\r\n
);\r\n }\r\n else if (message && message.notificationType === MessageType.PENDING_REQUIREMENT) {\r\n return \r\n \r\n \r\n }\r\n else if (message && message.notificationType === MessageType.SUBCONTRACTOR_REQUEST) {\r\n return null;\r\n }\r\n else {\r\n return null;\r\n }\r\n}","module.exports = /*\n * Generated by PEG.js 0.10.0.\n *\n * http://pegjs.org/\n */\n(function() {\n \"use strict\";\n\n function peg$subclass(child, parent) {\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n }\n\n function peg$SyntaxError(message, expected, found, location) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.location = location;\n this.name = \"SyntaxError\";\n\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(this, peg$SyntaxError);\n }\n }\n\n peg$subclass(peg$SyntaxError, Error);\n\n peg$SyntaxError.buildMessage = function(expected, found) {\n var DESCRIBE_EXPECTATION_FNS = {\n literal: function(expectation) {\n return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n },\n\n \"class\": function(expectation) {\n var escapedParts = \"\",\n i;\n\n for (i = 0; i < expectation.parts.length; i++) {\n escapedParts += expectation.parts[i] instanceof Array\n ? classEscape(expectation.parts[i][0]) + \"-\" + classEscape(expectation.parts[i][1])\n : classEscape(expectation.parts[i]);\n }\n\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts + \"]\";\n },\n\n any: function(expectation) {\n return \"any character\";\n },\n\n end: function(expectation) {\n return \"end of input\";\n },\n\n other: function(expectation) {\n return expectation.description;\n }\n };\n\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n\n function literalEscape(s) {\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\0/g, '\\\\0')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return '\\\\x' + hex(ch); });\n }\n\n function classEscape(s) {\n return s\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\\]/g, '\\\\]')\n .replace(/\\^/g, '\\\\^')\n .replace(/-/g, '\\\\-')\n .replace(/\\0/g, '\\\\0')\n .replace(/\\t/g, '\\\\t')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/[\\x00-\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) { return '\\\\x' + hex(ch); });\n }\n\n function describeExpectation(expectation) {\n return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n }\n\n function describeExpected(expected) {\n var descriptions = new Array(expected.length),\n i, j;\n\n for (i = 0; i < expected.length; i++) {\n descriptions[i] = describeExpectation(expected[i]);\n }\n\n descriptions.sort();\n\n if (descriptions.length > 0) {\n for (i = 1, j = 1; i < descriptions.length; i++) {\n if (descriptions[i - 1] !== descriptions[i]) {\n descriptions[j] = descriptions[i];\n j++;\n }\n }\n descriptions.length = j;\n }\n\n switch (descriptions.length) {\n case 1:\n return descriptions[0];\n\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n\n default:\n return descriptions.slice(0, -1).join(\", \")\n + \", or \"\n + descriptions[descriptions.length - 1];\n }\n }\n\n function describeFound(found) {\n return found ? \"\\\"\" + literalEscape(found) + \"\\\"\" : \"end of input\";\n }\n\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n\n function peg$parse(input, options) {\n options = options !== void 0 ? options : {};\n\n var peg$FAILED = {},\n\n peg$startRuleFunctions = { Expression: peg$parseExpression },\n peg$startRuleFunction = peg$parseExpression,\n\n peg$c0 = \"==\",\n peg$c1 = peg$literalExpectation(\"==\", false),\n peg$c2 = \"!=\",\n peg$c3 = peg$literalExpectation(\"!=\", false),\n peg$c4 = \">\",\n peg$c5 = peg$literalExpectation(\">\", false),\n peg$c6 = \"<\",\n peg$c7 = peg$literalExpectation(\"<\", false),\n peg$c8 = \">=\",\n peg$c9 = peg$literalExpectation(\">=\", false),\n peg$c10 = \"<=\",\n peg$c11 = peg$literalExpectation(\"<=\", false),\n peg$c12 = function(head, tail) {\n return tail.reduce(function(result, element) {\n if (element[1] === '==') { return {type: 'binaryop', op: '==', left: result, right: element[3] } }\n if (element[1] === '!=') { return {type: 'binaryop', op: '!=', left: result, right: element[3] } }\n if (element[1] === '<') { return {type: 'binaryop', op: '<', left: result, right: element[3] } }\n if (element[1] === '>') { return {type: 'binaryop', op: '>', left: result, right: element[3] } }\n if (element[1] === '<=') { return {type: 'binaryop', op: '<=', left: result, right: element[3] } }\n if (element[1] === '>=') { return {type: 'binaryop', op: '>=', left: result, right: element[3] } }\n }, head);\n },\n peg$c13 = \"&&\",\n peg$c14 = peg$literalExpectation(\"&&\", false),\n peg$c15 = \"||\",\n peg$c16 = peg$literalExpectation(\"||\", false),\n peg$c17 = function(head, tail) {\n return tail.reduce(function(result, element) {\n \tif (element[1] === '&&') { return {type: 'binaryop', op: 'AND', left: result, right: element[3] } }\n if (element[1] === '||') { return {type: 'binaryop', op: 'OR', left: result, right: element[3] } }\n }, head);\n },\n peg$c18 = \"+\",\n peg$c19 = peg$literalExpectation(\"+\", false),\n peg$c20 = \"-\",\n peg$c21 = peg$literalExpectation(\"-\", false),\n peg$c22 = \"*\",\n peg$c23 = peg$literalExpectation(\"*\", false),\n peg$c24 = \"/\",\n peg$c25 = peg$literalExpectation(\"/\", false),\n peg$c26 = function(head, tail) {\n return tail.reduce(function(result, element) {\n if (element[1] === '+') { return {type: 'binaryop', op: '+', left: result, right: element[3] } }\n if (element[1] === '-') { return {type: 'binaryop', op: '-', left: result, right: element[3] } }\n if (element[1] === '*') { return { type: 'binaryop', op: '*', left: result, right: element[3] } }\n if (element[1] === '/') { return { type: 'binaryop', op: '/', left: result, right: element[3] } }\n }, head);\n },\n peg$c27 = function(head, tail) {\n return tail.reduce(function(result, element) {\n \tif (element[1] === '*') { return { type: 'binaryop', op: '*', left: result, right: element[3] } }\n if (element[1] === '/') { return { type: 'binaryop', op: '/', left: result, right: element[3] } }\n }, head);\n },\n peg$c28 = \"(\",\n peg$c29 = peg$literalExpectation(\"(\", false),\n peg$c30 = \")\",\n peg$c31 = peg$literalExpectation(\")\", false),\n peg$c32 = function(expr) { return expr; },\n peg$c33 = peg$otherExpectation(\"path\"),\n peg$c34 = \".\",\n peg$c35 = peg$literalExpectation(\".\", false),\n peg$c36 = function(i, inv, p) { return { type: \"path\", values: [i, inv] } },\n peg$c37 = function(i, inv) { return { type: \"path\", values: [i, inv] } },\n peg$c38 = function(i, p) { return { type: \"path\", values: [i].concat(p.values)} },\n peg$c39 = function(i) { return { type: \"path\", values: [text()]}; },\n peg$c40 = function() { return { type: \"path\", values: [text()]}; },\n peg$c41 = peg$otherExpectation(\"invocation\"),\n peg$c42 = function(name, args) {\n return { type: 'invocation', name, args }\n },\n peg$c43 = peg$otherExpectation(\"arguments\"),\n peg$c44 = \",\",\n peg$c45 = peg$literalExpectation(\",\", false),\n peg$c46 = function(v, args) { return [v, args] },\n peg$c47 = peg$otherExpectation(\"value\"),\n peg$c48 = peg$otherExpectation(\"integer\"),\n peg$c49 = /^[0-9]/,\n peg$c50 = peg$classExpectation([[\"0\", \"9\"]], false, false),\n peg$c51 = function() { return { type: 'number', value: parseInt(text(), 10) } },\n peg$c52 = peg$otherExpectation(\"stringLiteral\"),\n peg$c53 = \"\\\"\",\n peg$c54 = peg$literalExpectation(\"\\\"\", false),\n peg$c55 = /^[a-z|A-Z|0-9|_| |.|-|@]/,\n peg$c56 = peg$classExpectation([[\"a\", \"z\"], \"|\", [\"A\", \"Z\"], \"|\", [\"0\", \"9\"], \"|\", \"_\", \"|\", \" \", \"|\", \".\", [\"|\", \"|\"], \"@\"], false, false),\n peg$c57 = function() { return { type: 'string', value: JSON.parse(text()) } },\n peg$c58 = peg$otherExpectation(\"boolean\"),\n peg$c59 = \"true\",\n peg$c60 = peg$literalExpectation(\"true\", false),\n peg$c61 = function() { return { type: 'boolean', value: true } },\n peg$c62 = \"false\",\n peg$c63 = peg$literalExpectation(\"false\", false),\n peg$c64 = function() { return { type: 'boolean', value: false } },\n peg$c65 = peg$otherExpectation(\"identifier\"),\n peg$c66 = /^[a-z|A-Z]/,\n peg$c67 = peg$classExpectation([[\"a\", \"z\"], \"|\", [\"A\", \"Z\"]], false, false),\n peg$c68 = /^[a-z|A-Z|0-0|_]/,\n peg$c69 = peg$classExpectation([[\"a\", \"z\"], \"|\", [\"A\", \"Z\"], \"|\", [\"0\", \"0\"], \"|\", \"_\"], false, false),\n peg$c70 = function() { return text(); },\n peg$c71 = peg$otherExpectation(\"whitespace\"),\n peg$c72 = /^[ \\t\\n\\r]/,\n peg$c73 = peg$classExpectation([\" \", \"\\t\", \"\\n\", \"\\r\"], false, false),\n\n peg$currPos = 0,\n peg$savedPos = 0,\n peg$posDetailsCache = [{ line: 1, column: 1 }],\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n\n function expected(description, location) {\n location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n throw peg$buildStructuredError(\n [peg$otherExpectation(description)],\n input.substring(peg$savedPos, peg$currPos),\n location\n );\n }\n\n function error(message, location) {\n location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)\n\n throw peg$buildSimpleError(message, location);\n }\n\n function peg$literalExpectation(text, ignoreCase) {\n return { type: \"literal\", text: text, ignoreCase: ignoreCase };\n }\n\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n }\n\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n\n function peg$otherExpectation(description) {\n return { type: \"other\", description: description };\n }\n\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos], p;\n\n if (details) {\n return details;\n } else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\n };\n\n while (p < pos) {\n if (input.charCodeAt(p) === 10) {\n details.line++;\n details.column = 1;\n } else {\n details.column++;\n }\n\n p++;\n }\n\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos),\n endPosDetails = peg$computePosDetails(endPos);\n\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) { return; }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildSimpleError(message, location) {\n return new peg$SyntaxError(message, null, null, location);\n }\n\n function peg$buildStructuredError(expected, found, location) {\n return new peg$SyntaxError(\n peg$SyntaxError.buildMessage(expected, found),\n expected,\n found,\n location\n );\n }\n\n function peg$parseExpression() {\n var s0;\n\n s0 = peg$parseBooleanExpression();\n\n return s0;\n }\n\n function peg$parseEqualityExpression() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n s0 = peg$currPos;\n s1 = peg$parseArithmeticExpression();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c0) {\n s5 = peg$c0;\n peg$currPos += 2;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c1); }\n }\n if (s5 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c2) {\n s5 = peg$c2;\n peg$currPos += 2;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n if (s5 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 62) {\n s5 = peg$c4;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c5); }\n }\n if (s5 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 60) {\n s5 = peg$c6;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c7); }\n }\n if (s5 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c8) {\n s5 = peg$c8;\n peg$currPos += 2;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c9); }\n }\n if (s5 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c10) {\n s5 = peg$c10;\n peg$currPos += 2;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n }\n }\n }\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseArithmeticExpression();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c0) {\n s5 = peg$c0;\n peg$currPos += 2;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c1); }\n }\n if (s5 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c2) {\n s5 = peg$c2;\n peg$currPos += 2;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c3); }\n }\n if (s5 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 62) {\n s5 = peg$c4;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c5); }\n }\n if (s5 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 60) {\n s5 = peg$c6;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c7); }\n }\n if (s5 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c8) {\n s5 = peg$c8;\n peg$currPos += 2;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c9); }\n }\n if (s5 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c10) {\n s5 = peg$c10;\n peg$currPos += 2;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c11); }\n }\n }\n }\n }\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseArithmeticExpression();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c12(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseTerm();\n }\n\n return s0;\n }\n\n function peg$parseBooleanExpression() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n s0 = peg$currPos;\n s1 = peg$parseEqualityExpression();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c13) {\n s5 = peg$c13;\n peg$currPos += 2;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c14); }\n }\n if (s5 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c15) {\n s5 = peg$c15;\n peg$currPos += 2;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c16); }\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseEqualityExpression();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c13) {\n s5 = peg$c13;\n peg$currPos += 2;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c14); }\n }\n if (s5 === peg$FAILED) {\n if (input.substr(peg$currPos, 2) === peg$c15) {\n s5 = peg$c15;\n peg$currPos += 2;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c16); }\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseEqualityExpression();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c17(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseTerm();\n }\n\n return s0;\n }\n\n function peg$parseArithmeticExpression() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n s0 = peg$currPos;\n s1 = peg$parseTerm();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 43) {\n s5 = peg$c18;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c19); }\n }\n if (s5 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 45) {\n s5 = peg$c20;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c21); }\n }\n if (s5 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 42) {\n s5 = peg$c22;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c23); }\n }\n if (s5 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 47) {\n s5 = peg$c24;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c25); }\n }\n }\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseBooleanExpression();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 43) {\n s5 = peg$c18;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c19); }\n }\n if (s5 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 45) {\n s5 = peg$c20;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c21); }\n }\n if (s5 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 42) {\n s5 = peg$c22;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c23); }\n }\n if (s5 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 47) {\n s5 = peg$c24;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c25); }\n }\n }\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseBooleanExpression();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseTerm() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n s0 = peg$currPos;\n s1 = peg$parseFactor();\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 42) {\n s5 = peg$c22;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c23); }\n }\n if (s5 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 47) {\n s5 = peg$c24;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c25); }\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseFactor();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$currPos;\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 42) {\n s5 = peg$c22;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c23); }\n }\n if (s5 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 47) {\n s5 = peg$c24;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c25); }\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n s7 = peg$parseFactor();\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c27(s1, s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseFactor() {\n var s0, s1, s2, s3, s4, s5;\n\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 40) {\n s1 = peg$c28;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseBooleanExpression();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s5 = peg$c30;\n peg$currPos++;\n } else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c31); }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c32(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseValue();\n if (s0 === peg$FAILED) {\n s0 = peg$parsePath();\n }\n }\n\n return s0;\n }\n\n function peg$parsePath() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseIdentifier();\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s3 = peg$c34;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseInvocation();\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s7 = peg$c34;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n s9 = peg$parsePath();\n if (s9 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c36(s1, s5, s9);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseIdentifier();\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s3 = peg$c34;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseInvocation();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c37(s1, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseIdentifier();\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 46) {\n s3 = peg$c34;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c35); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parsePath();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c38(s1, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseInvocation();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c39(s1);\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parseIdentifier();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c40();\n }\n s0 = s1;\n }\n }\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c33); }\n }\n\n return s0;\n }\n\n function peg$parseInvocation() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseIdentifier();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 40) {\n s4 = peg$c28;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c29); }\n }\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n if (s5 !== peg$FAILED) {\n s6 = peg$parseArguments();\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 41) {\n s8 = peg$c30;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c31); }\n }\n if (s8 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c42(s2, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c41); }\n }\n\n return s0;\n }\n\n function peg$parseArguments() {\n var s0, s1, s2, s3, s4, s5;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseTerm();\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c44;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c45); }\n }\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n s5 = peg$parseArguments();\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c46(s1, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseFactor();\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c43); }\n }\n\n return s0;\n }\n\n function peg$parseValue() {\n var s0, s1;\n\n peg$silentFails++;\n s0 = peg$parseBoolean();\n if (s0 === peg$FAILED) {\n s0 = peg$parseStringLiteral();\n if (s0 === peg$FAILED) {\n s0 = peg$parseInteger();\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c47); }\n }\n\n return s0;\n }\n\n function peg$parseInteger() {\n var s0, s1, s2, s3;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = [];\n if (peg$c49.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c50); }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n if (peg$c49.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c50); }\n }\n }\n } else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c51();\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c48); }\n }\n\n return s0;\n }\n\n function peg$parseStringLiteral() {\n var s0, s1, s2, s3, s4;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 34) {\n s2 = peg$c53;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c54); }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c55.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c56); }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c55.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c56); }\n }\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 34) {\n s4 = peg$c53;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c54); }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c57();\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c52); }\n }\n\n return s0;\n }\n\n function peg$parseBoolean() {\n var s0, s1;\n\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 4) === peg$c59) {\n s1 = peg$c59;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c60); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c61();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 5) === peg$c62) {\n s1 = peg$c62;\n peg$currPos += 5;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c63); }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c64();\n }\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c58); }\n }\n\n return s0;\n }\n\n function peg$parseIdentifier() {\n var s0, s1, s2, s3, s4;\n\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n if (peg$c66.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c67); }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c68.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c68.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c69); }\n }\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c70();\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c65); }\n }\n\n return s0;\n }\n\n function peg$parse_() {\n var s0, s1;\n\n peg$silentFails++;\n s0 = [];\n if (peg$c72.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c73); }\n }\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c72.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c73); }\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) { peg$fail(peg$c71); }\n }\n\n return s0;\n }\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n\n throw peg$buildStructuredError(\n peg$maxFailExpected,\n peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n );\n }\n }\n\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n})();\n","import { Action, Reducer } from 'redux';\nimport { ApplicationState } from '.';\nimport {\n IUserIdentity, IRole, IWork, parseWork, IPropertyGroupType\n} from '../models';\nimport * as App from './app';\nimport * as AdminActions from './actions/admin';\nimport * as UserStore from './user';\nimport { actionCreators as N } from './notifications';\nimport t from '../i18n';\nimport { IUserData } from '../models/identity';\nimport { IModuleInfo } from '@models/works';\n\nexport interface IAdminState {\n users: IUserIdentity[],\n roles: IRole[],\n works: IWork[],\n availableModules: IModuleInfo[],\n}\n\nconst defaultState = {\n users: [], roles: [], works: [], availableModules: [],\n}\n\n// types\nconst initializeType = '[ADMIN] INITIALIZE';\nconst onInitializeType = '[ADMIN] ON INITIALIZE';\nconst onGetUsersType = '[ADMIN] ON GET USERS';\n\n// actions\nexport interface InitializeAction {\n type: '[ADMIN] INITIALIZE'\n}\n\nexport interface OnInitializeAction {\n type: '[ADMIN] ON INITIALIZE',\n data: Partial,\n}\n\nexport interface OnGetUsersAction {\n type: '[ADMIN] ON GET USERS',\n data: Partial,\n}\n\nexport type KnownAction = InitializeAction | OnInitializeAction | OnGetUsersAction | {type: undefined};\n\nconst onInitialize = (data: Partial) => {\n return {\n type: onInitializeType,\n data\n };\n}\n\nconst onGetUsers = (data: Partial) => {\n return {\n type: onGetUsersType,\n data\n };\n}\n\nconst loadWorks = async (dispatch: Function) => {\n dispatch(N.startLoading({\n ctx: 'adminworks',\n }));\n const resp = await AdminActions.getWorks();\n\n const data = {\n ...resp.data,\n works: resp.data.works.map(parseWork),\n };\n\n dispatch(onInitialize(data));\n dispatch(N.stopLoading({\n ctx: 'adminworks',\n }));\n}\n\nconst loadUsers = async (dispatch: Function) => {\n dispatch(N.startLoading({\n ctx: 'adminusers',\n }));\n const resp = await AdminActions.getUsers();\n\n dispatch(onGetUsers(resp.data));\n dispatch(N.stopLoading({\n ctx: 'adminusers',\n }));\n}\n\nconst getGraphqlErrorFromOption = (res: any, op: string|undefined = undefined) => {\n if (res.errors && res.errors.length > 0) {\n return JSON.stringify(res.errors[0]);\n }\n else if (op) {\n return res.data[op].error;\n }\n}\n\nexport const plainActions = {\n getEventTriggers: AdminActions.getEventTriggers,\n saveEventTrigger: AdminActions.saveEventTrigger,\n associateAppUserToWorker: AdminActions.associateAppUserToWorker,\n getNotificationTemplates: AdminActions.getNotificationTemplates,\n removeNotificationTemplate: AdminActions.removeNotificationTemplate,\n saveNotificationTemplate: AdminActions.saveNotificationTemplate,\n getNotificationMessages: AdminActions.getNotificationMessages,\n removeNotificationMessage: AdminActions.removeNotificationMessage,\n saveNotificationMessage: AdminActions.saveNotificationMessage,\n getWorkResources: AdminActions.getWorkResources,\n getWorkDepartments: AdminActions.getWorkDepartments,\n saveDepartment: AdminActions.saveDepartment,\n getJobPropertyGroups: AdminActions.getJobPropertyGroups,\n loadWorkPermissions: AdminActions.loadWorkPermissions,\n saveWorkPermission: AdminActions.saveWorkPermission,\n removeWorkPermission: AdminActions.removeWorkPermission,\n getPropertyGroupTypes: AdminActions.getPropertyGroupTypes,\n removePropertyType: AdminActions.removePropertyType,\n removePropertyGroupType: AdminActions.removePropertyGroupType,\n savePropertyType: AdminActions.savePropertyType,\n saveWorkRequirementType: AdminActions.saveWorkRequirementType,\n saveWorkRequirementGroup: AdminActions.saveWorkRequirementGroup,\n getRequirementType: AdminActions.getRequirementType,\n getWorkRequirementGroups: AdminActions.getWorkRequirementGroups,\n saveWorkRequirementTypeDependency: AdminActions.saveWorkRequirementTypeDependency,\n removeWorkRequirementTypeDependency: AdminActions.removeWorkRequirementTypeDependency,\n saveRequirementTypeDocumentRestriction: AdminActions.saveRequirementTypeDocumentRestriction,\n removeRequirementTypeDocumentRestriction: AdminActions.removeRequirementTypeDocumentRestriction,\n saveRequirementTypeSuggestion: AdminActions.saveRequirementTypeSuggestion,\n removeRequirementTypeSuggestion: AdminActions.removeRequirementTypeSuggestion,\n saveRequirementTypeValidationHolder: AdminActions.saveRequirementTypeValidationHolder,\n removeRequirementTypeValidationHolder: AdminActions.removeRequirementTypeValidationHolder,\n getFieldValidations: AdminActions.getFieldValidations,\n removeFieldValidation: AdminActions.removeFieldValidation,\n saveFieldValidation: AdminActions.saveFieldValidation,\n saveContractorSettings: AdminActions.saveContractorSettings,\n saveMachinerySettings: AdminActions.saveMachinerySettings,\n saveWorkerSettings: AdminActions.saveWorkerSettings,\n saveJobSettings: AdminActions.saveJobSettings,\n saveWorkHasModule: AdminActions.saveWorkHasModule,\n}\n\nexport const actionCreators = {\n savePropertyGroupType: (workId: number, data: IPropertyGroupType) => async (dispatch: Function) => {\n await AdminActions.savePropertyGroupType(workId, data);\n loadWorks(dispatch);\n },\n selectWork: (id: number) => (dispatch: Function) => {\n dispatch(UserStore.actionCreators.selectWork(id, false));\n },\n saveUser: (data: IUserData) => async (dispatch: Function) => {\n const ctxKey = 'adminusers';\n dispatch(N.clearErrors({\n ctx: ctxKey,\n }));\n dispatch(N.startLoading({\n ctx: ctxKey,\n }));\n const res = await AdminActions.saveUser(data);\n if (res.errors || res.data.saveUser.isError) {\n dispatch(N.error({\n ctx: ctxKey,\n action: data.id ? 'edit' : 'add',\n message: getGraphqlErrorFromOption(res, 'saveUser'),\n }));\n }\n else {\n dispatch(N.success({\n ctx: ctxKey,\n action: data.id ? 'edit' : 'add',\n }));\n }\n dispatch(N.stopLoading({\n ctx: ctxKey\n }));\n await loadUsers(dispatch);\n },\n saveWork: (data: IWork, opts: any = {}) => async (dispatch: Function) => {\n const ctxKey = opts.ctx || 'adminworks';\n dispatch(N.clearErrors({\n ctx: ctxKey,\n }));\n dispatch(N.startLoading({\n ctx: ctxKey,\n }));\n const res = await AdminActions.saveWork(data);\n if (res.errors || res.data.saveWork.isError) {\n dispatch(N.error({\n ctx: ctxKey,\n action: data.id ? 'edit' : 'add',\n message: getGraphqlErrorFromOption(res, 'saveWork'),\n }));\n }\n else {\n dispatch(N.success({\n ctx: ctxKey,\n action: data.id ? 'edit' : 'add',\n }));\n }\n dispatch(N.stopLoading({\n ctx: ctxKey\n }));\n await loadWorks(dispatch);\n },\n loadUsers: () => (dispatch: Function) => {\n loadUsers(dispatch);\n },\n loadWorks: () => (dispatch: Function) => {\n loadWorks(dispatch);\n },\n initialize: () => async (dispatch: Function, getState: () => ApplicationState) => {\n dispatch(App.actionCreators.startLoading({\n message: t.getFixedT('es')('Initializing ...')\n }));\n const resp = await AdminActions.initialize();\n dispatch(onInitialize(resp.data));\n dispatch(App.actionCreators.stopLoading());\n }\n};\n\nexport const reducer: Reducer = (state: IAdminState | undefined, incomingAction: Action): IAdminState => {\n if (state === undefined) {\n return defaultState;\n }\n\n const action = incomingAction as KnownAction;\n switch (action.type) {\n case onInitializeType: {\n const works = action.data.works\n ? action.data.works.map(parseWork)\n : [];\n\n return {...state, ...action.data, works };\n }\n\n case onGetUsersType: {\n return {...state, ...action.data};\n }\n\n default:\n return state;\n }\n};\n","import { Action, Reducer } from 'redux';\nimport {\n} from '../models';\nimport * as ContractorActions from './actions/contractors';\nimport { actionCreators as N } from './notifications';\n\nexport interface IContractorState {\n}\n\n// types\nenum Types {\n}\n\nexport type KnownAction = {type: undefined};\n\nexport const plainActions = {\n invalidateContractor: ContractorActions.invalidateContractor,\n getContractorFromAppUser: ContractorActions.getContractorFromAppUser,\n createContractorInvitation: ContractorActions.createContractorInvitation,\n getContractorInvitation: ContractorActions.getContractorInvitation,\n getContractorInvitations: ContractorActions.getContractorInvitations,\n getContractors: ContractorActions.getContractors,\n getContractor: ContractorActions.getContractor,\n getWorkConstants: ContractorActions.getWorkConstants,\n registerContractorInvitation: ContractorActions.registerContractorInvitation,\n saveContractor: ContractorActions.saveContractor,\n acceptSubContractorRequest: ContractorActions.acceptSubContractorRequest,\n rejectSubContractorRequest: ContractorActions.rejectSubContractorRequest,\n saveSubContractorRequest: ContractorActions.saveSubContractorRequest,\n getSubContractorRequestsAsTarget: ContractorActions.getSubContractorRequestsAsTarget,\n getSubContractorRequestsAsWorker: ContractorActions.getSubContractorRequestsAsWorker,\n removeContractorAppUser: ContractorActions.removeContractorAppUser,\n createWorkContractorAppUser: ContractorActions.createWorkContractorAppUser,\n getWorkUsers: ContractorActions.getWorkUsers,\n getContractorAppUsers: ContractorActions.getContractorAppUsers,\n reactivateContractor: ContractorActions.reactivateContractor,\n}\n\nexport const actionCreators = {\n};\n\nexport const reducer: Reducer = (state: IContractorState | undefined, incomingAction: Action): IContractorState => {\n if (state === undefined) {\n return { };\n }\n\n const action = incomingAction as KnownAction;\n\n switch (action.type) {\n default:\n return state;\n }\n};\n","import * as Identity from './identity';\nimport * as AppState from './app';\nimport * as AdminState from './admin';\nimport * as ConstantsState from './constants';\nimport * as JobState from './jobs';\nimport * as NotificationsState from './notifications';\nimport * as WorkState from './work';\nimport * as UserState from './user';\nimport * as ContractorState from './contractors';\nimport * as ModulesState from './modules';\n\nexport interface ApplicationState {\n identity: Identity.IdentityState | undefined;\n constants: ConstantsState.IConstantsState,\n app: AppState.IAppState,\n admin: AdminState.IAdminState,\n notifications: NotificationsState.INotificationsState,\n work: WorkState.IWorkState,\n user: UserState.IUserState,\n jobs: JobState.IJobState,\n contractors: ContractorState.IContractorState,\n modules: ModulesState.IModulesState,\n}\n\nexport const reducers = {\n identity: Identity.reducer,\n app: AppState.reducer,\n admin: AdminState.reducer,\n constants: ConstantsState.reducer,\n jobs: JobState.reducer,\n notifications: NotificationsState.reducer,\n work: WorkState.reducer,\n user: UserState.reducer,\n contractors: ContractorState.reducer,\n modules: ModulesState.reducer,\n};\n\nexport interface AppThunkAction {\n (dispatch: (action: TAction) => void, getState: () => ApplicationState): void;\n}\n\ntype _IdentityState = Identity.IdentityState;\n\nexport type IdentityState = _IdentityState;\n","import { Action, Reducer } from 'redux';\nimport { ICountry, IWork } from '../models';\n\nexport interface IWorkState {\n work?: IWork;\n}\n\nexport type KnownAction = {type: undefined};\n\nexport const actionCreators = {\n};\n\nexport const reducer: Reducer = (state: IWorkState | undefined, incomingAction: Action): IWorkState => {\n if (state === undefined) {\n return { };\n }\n\n const action = incomingAction as KnownAction;\n switch (action.type) {\n default:\n return state;\n }\n};\n","export const isDebug =\r\n window.location.hostname === 'localhost'\r\n || window.location.hostname === 'gstore-dev.civilnova.com';\r\n\r\nexport const fileSizeLimit = 30 * 1024 * 1025;\r\n\r\nexport default {\r\n isDebug,\r\n fileSizeLimit,\r\n}\r\n","import * as React from 'react';\nimport './NavMenu.scss';\n\nimport HelpDeskSupport from '@containers/HelpDeskSupportContainer';\nimport Sec from '@utils/security';\nimport { IMessage, INotification, MessageType } from '@models/notifications';\nimport { ICommunication, IOption, ISecurity, IUserIdentity, IWork, ModuleManager } from '@models';\nimport { MenuItem } from '../../../../GStore.Modules/FrontEnd';\nimport { Menubar, classNames, useToast, useTranslation, Badge } from '@components';\nimport { NotificationsMessages } from './notifications/NotificationMessages';\nimport { getReports } from '@store/actions/reports';\nimport { isDebug } from '../Constants';\nimport { redirectToExternal, redirectTo } from '@utils';\nimport { IReportDefinition } from \"@models/reports\";\n\ntype ClearMessageF = (id: string) => Promise>;\n\ninterface IProps {\n clearMessage: ClearMessageF;\n user?: IUserIdentity;\n menuItems: MenuItem[];\n notifications: INotification[];\n messages: IMessage[];\n removeNotification: Function;\n security: ISecurity;\n work: IWork;\n workId: number;\n communications: ICommunication[];\n appUsers: IUserIdentity[];\n moduleManager: ModuleManager;\n}\n\ntype FilterItemsT = (items: any[], props: IProps) => any[];\n\nconst filterMenuItems: FilterItemsT = (items: any[], props: IProps) => {\n return items.filter(i => {\n if (i.showIf) {\n return i.showIf(props);\n }\n else {\n return i;\n }\n }).map(i => {\n if (i.items) {\n return { ...i, items: filterMenuItems(i.items, props) }\n }\n else {\n return i;\n }\n });\n};\n\nfunction NavMenuImpl(props: IProps) {\n const { t } = useTranslation();\n const toast = useToast();\n const [showMessages, setShowMessages] = React.useState(false);\n const [showHelpDesk, setShowHelpDesk] = React.useState(false);\n\n React.useEffect(() => {\n if (props.messages.length <= 0) {\n setShowMessages(false);\n }\n }, [props.messages]);\n\n const hasWork = props.workId > 0;\n const isContractor = props.security.isContractor();\n const isWorker = props.security.isWorker();\n const isGestor = props.security.isGestor();\n const isGestorOrWorker = props.security.isGestorOrWorker();\n const isAdmin = props.security.isAdmin();\n const isContractorOrWorker = !isAdmin && (isContractor || isWorker || isGestor);\n\n const [reportItems, setReportItems] = React.useState([]);\n\n const fillReportItems = (items: IReportDefinition[]) => {\n setReportItems(items\n .filter(r => !r.hidden)\n .map(r => {\n return {\n label: t(r.title),\n icon: r.icon,\n command: () => redirectTo(`/work/${props.workId}/reports/${r.name}`),\n };\n }));\n }\n\n React.useEffect(() => {\n if (props.workId) {\n getReports(props.workId).then(fillReportItems);\n }\n }, [props.workId]);\n\n\n React.useEffect(() => {\n if (props.notifications && props.notifications.length > 0) {\n for (const n of props.notifications) {\n props.removeNotification(n.id);\n toast.show(n.message);\n }\n }\n }, [props.notifications]);\n\n const userLabel = isDebug ?\n (isAdmin ? \"(admin)\" : isWorker ? \"(trabajador)\" : isGestor ? \"(gestor)\" : isContractor ? \"(contratista)\" : \"(??)\")\n : '';\n const menuItems = filterMenuItems([\n {\n label: t('Start'), icon: 'pi pi-fw pi-home', command: () => redirectTo('/'), showIf: () => props.communications.length == 0\n },\n {\n id: 'functions',\n label: t('Functions'),\n icon: 'fas fa-globe',\n showIf: () => (!props.security.isWorker) && hasWork && isGestorOrWorker && !isAdmin && props.communications.length == 0,\n items: [\n {\n label: t('Jobs'),\n command: () => redirectTo(`/work/${props.workId}/jobs`)\n },\n {\n label: t('Contractors'),\n command: () => redirectTo(`/work/${props.workId}/contractors`)\n },\n {\n label: t('Workers'),\n command: () => redirectTo(`/work/${props.workId}/workers`)\n },\n {\n label: t('Machineries'),\n command: () => redirectTo(`/work/${props.workId}/machineries`)\n },\n {\n label: t('Subcontractors request'),\n command: () => redirectTo(`/work/${props.workId}/subcontractorrequests`)\n }\n ]\n },\n {\n id: 'functions',\n label: t('Functions'),\n icon: 'fas fa-globe',\n showIf: () => isContractor && props.communications.length == 0 && !isAdmin,\n items: [\n {\n label: t('Documents'),\n command: () => redirectTo(`/work/${props.workId}/contractor/requirements`)\n },\n {\n label: t('Workers'),\n command: () => redirectTo(`/work/${props.workId}/workers`)\n },\n {\n label: t('Machineries'),\n command: () => redirectTo(`/work/${props.workId}/machineries`)\n },\n {\n label: t('Jobs'),\n command: () => redirectTo(`/work/${props.workId}/jobs`)\n },\n {\n label: t('Subcontractors'),\n command: () => redirectTo(`/work/${props.workId}/subcontractors`)\n },\n {\n label: t('Subcontractors request'),\n command: () => redirectTo(`/work/${props.workId}/subcontractorrequests`)\n },\n ]\n },\n {\n id: 'utilities',\n label: t('Utilities'),\n icon: 'fas fa-book',\n showIf: () => hasWork && !isAdmin && props.communications.length == 0,\n items: [\n {\n label: t('Reports'), icon: 'fas fa-file',\n showIf: () => hasWork && isContractorOrWorker,\n items: reportItems,\n // command: () => redirectTo(`/work/${props.workId}/reports`),\n },\n {\n label: t('Download area'), icon: 'fas fa-download',\n showIf: () => hasWork && isContractorOrWorker,\n command: () => redirectTo(`/work/${props.workId}/documents`)\n },\n {\n label: t('Access control'), icon: 'fas fa-ban',\n showIf: () => hasWork && isContractorOrWorker,\n items: [\n {\n label: t('Machineries'),\n command: () => redirectTo(`/work/${props.workId}/access-control/machineries`),\n },\n {\n label: t('Workers'),\n command: () => redirectTo(`/work/${props.workId}/access-control/workers`),\n }\n ],\n },\n {\n label: t('Users'), icon: 'pi pi-user',\n showIf: () => isGestor && !isAdmin,\n command: () => redirectTo(`/work/${props.workId}/users`),\n },\n {\n label: t('Communications'), icon: 'fas fa-comments',\n showIf: () => isGestor || isContractor || props.security.hasPolicy('communication.list') || props.security.hasPolicy('communication.create'),\n items: [\n {\n label: t('New Communication'),\n icon: 'fas fa-plus',\n showIf: () => isGestor || props.security.hasPolicy('communication.create'),\n command: () => redirectTo(`/work/${props.workId}/communications/new`),\n },\n {\n label: t('Communications'),\n icon: 'fas fa-search',\n showIf: () => isGestor || props.security.hasPolicy('communication.list') || isContractor,\n command: () => redirectTo(`/work/${props.workId}/communications`),\n }\n ]\n }\n ]\n },\n {\n label: t('Users'), icon: 'pi pi-user',\n showIf: () => Sec.isAdmin(props.user),\n items: [\n {\n label: t('Users'),\n command: () => redirectTo('/admin/users'),\n },\n ]\n },\n {\n label: t('Works'), icon: 'pi pi-list',\n showIf: () => Sec.isAdmin(props.user),\n items: [\n {\n label: t('Works'),\n command: () => redirectTo('/admin/works'),\n }\n ]\n },\n {\n label: t('Devel'), icon: 'pi pi-code',\n showIf: () => Sec.isAdmin(props.user),\n items: [\n {\n label: t('Graphql ui'),\n command: () => redirectTo('/admin/devel/graphqlui'),\n },\n {\n label: t('Schema'),\n command: () => redirectTo('/admin/devel/schema'),\n },\n ]\n },\n { separator: true, className: 'e' },\n {\n className: classNames('notifications-menu-item', { ['notifications-menu-item-open']: showMessages }),\n label: \n \n ,\n command: () => setShowMessages(s => !s),\n showIf: () => (props.messages ?? [])\n .filter(m => m.notificationType != MessageType.RELOAD_NOTIFICATIONS).length > 0\n && props.communications.length == 0\n },\n {\n label: t('helpDesk.support'), icon: 'pi pi-comment',\n className: `help-desk-menu-button help-desk-${showHelpDesk}`,\n showIf: () => props.workId > 0 && props.communications.length == 0,\n command: () => {\n setShowHelpDesk(b => !b);\n },\n },\n {\n className: classNames({\n 'contractor': props.security.isContractor(),\n 'worker': props.security.isWorker(),\n 'admin': props.security.isAdmin(),\n 'gestor': props.security.isGestor()\n }),\n label: userLabel + ' ' + props.user?.userName,\n showIf: () => props.user != undefined,\n },\n {\n icon: 'pi pi-cog',\n showIf: () => !Sec.isAdmin(props.user) && props.user && props.communications.length == 0,\n items: [\n {\n label: t('user.my-data'),\n command: () => redirectTo(`/user/${props.workId}/profile`),\n showIf: () => hasWork && (props.security.isWorker() || props.security.isContractor()),\n },\n {\n label: t('Password'),\n //TODO: Revisar este showIf\n showIf: () => (props.security.user?.id !== 442),\n command: () => redirectTo('/user/password')\n }\n ]\n },\n {\n label: t('Logout'),\n icon: 'pi pi-sign-out',\n showIf: () => props.user !== undefined,\n command: () => redirectToExternal('/api/users/logout'),\n },\n {\n label: t('Login'),\n icon: 'pi pi-sign-in',\n showIf: () => props.user === undefined,\n command: () => redirectToExternal('/')\n }\n ], props);\n\n if (props.menuItems) {\n for (const mi of props.menuItems) {\n mi.label = t(mi.label);\n if (mi.parent == undefined) {\n const pos = props.messages.length > 0 ? 5 : 4;\n menuItems.splice(menuItems.length - pos, 0, mi);\n }\n else {\n const parent = menuItems.find(m => m.id == mi.parent);\n if (parent && parent.items) {\n parent.items.push(mi);\n }\n }\n }\n }\n\n const closeHelpDesk = (ok: boolean) => {\n if (ok) {\n toast.show(t('helpDesk.send.ok'));\n }\n setShowHelpDesk(false);\n }\n\n return \n}\n\n\nexport default function NavMenu(props: IProps) {\n return props\n .moduleManager\n .renderComponent(\n 'NavMenu',\n { ...props, getReports, Menubar, },\n NavMenuImpl,\n true);\n}\n","import { connect } from 'react-redux';\r\nimport { ApplicationState } from '../store';\r\nimport * as Identity from '../store/identity';\r\nimport * as App from '../store/app';\r\nimport { ModuleManager } from '@modules';\r\n\r\nimport * as NotificationsStore from '../store/notifications';\r\n\r\nimport NavMenu from '../components/NavMenu';\r\n\r\n\r\ntype Props =\r\n Identity.IdentityState;\r\n\r\nexport default connect(\r\n (state: ApplicationState) => ({\r\n ...state.identity,\r\n user: state.identity?.user,\r\n menuItems: state.modules?.menuItems ?? [],\r\n messages: state.notifications?.messages ?? [],\r\n workId: state.user?.work?.id,\r\n notifications: state.notifications?.notifications?.filter(n => n.ctx === 'global') ?? [],\r\n communications: state.user?.communications ?? [],\r\n moduleManager: state.modules.moduleManager,\r\n work: state.user?.work,\r\n }),\r\n NotificationsStore.actionCreators,\r\n)(NavMenu as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n","import * as React from 'react';\n\nimport { useLoading, useMessage, useTranslation } from '@components';\nimport { interpolate } from '@utils';\nimport { currentLocale } from '../../i18n';\n\nexport interface IProps {\n contextData?: any;\n resource?: string;\n useI18n?: boolean;\n silent?: boolean;\n url?: string;\n}\n\nexport default function RemoteHtml({ contextData, url, useI18n, resource, silent }: IProps) {\n const loading = useLoading();\n const errors = useMessage();\n\n const { t } = useTranslation();\n\n const [data, setData] = React.useState('');\n\n const initialize = loading.wrap(async () => {\n const locale = useI18n ? currentLocale() + '/': '';\n const finalUrl = url\n ? url\n : resource\n ? '/api/resources/b/' + locale + btoa(resource)\n : '';\n const resp = await fetch(finalUrl);\n if (resp.status === 200) {\n const d = await resp.text();\n\n if (contextData) {\n setData(interpolate(d, contextData));\n }\n else {\n setData(d);\n }\n }\n else if (resp.status === 404 && !silent) {\n errors.setError(t('resource.404'));\n }\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n return <>\n {loading.render()}\n {errors.renderIfError()}\n
\n ;\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../store';\n\nimport Footer from '@components/Footer';\n\nexport default connect(\n (state: ApplicationState) => ({\n work: state.user.work,\n })\n)(Footer as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport RemoteHtml from './custom/RemoteHtml';\nimport { IWork } from '@models';\nimport { useDialogs } from '@utils/hooks';\nimport './Footer.css';\nimport { currentLocale } from '../i18n';\n\ninterface IProps {\n work?: IWork;\n}\n\nexport default function Footer(props: IProps) {\n const [footer, setFooter] = React.useState();\n\n const dialogs = useDialogs();\n\n const { t } = useTranslation();\n\n const locale = currentLocale();\n\n const showInfo = () => {\n dialogs.show('info');\n }\n\n const showPolicy = () => {\n dialogs.show('politics');\n }\n\n React.useEffect(() => {\n if (props.work && props.work.footerResource) {\n const resourceId = props.work.footerResource;\n setFooter(resourceId);\n }\n else {\n setFooter(undefined);\n }\n }, [props.work]);\n\n if (footer == undefined) {\n const email = props.work?.contextDataObj.email ?? 'info@cae-gstore.com';\n const phone = props.work?.contextDataObj.phone ?? '+34 984 18 36 74';\n\n return
\n \n
\n }\n else {\n return \n };\n}\n","import * as React from 'react';\n\nimport { useDialogs } from '@utils/hooks';\nimport RemoteHtml from './custom/RemoteHtml';\nimport \"./cookies.scss\";\nimport { locale } from 'primereact/api';\nimport { useTranslation } from 'react-i18next';\nimport { redirectToExternalNewTab } from '@utils';\nimport { currentLocale } from '../i18n';\nexport interface IProps { }\n\nconst COOKIE_NAME = 'gstore-cookie-policy';\n\nexport default function Cookies(props: IProps) {\n const [showCookies, setShowCookies] = React.useState(false);\n\n const { t } = useTranslation();\n\n const dialogs = useDialogs();\n\n const locale = currentLocale();\n\n const acceptPrivacyConset = async () => {\n const resp = await fetch('/api/privacy/accept');\n if (resp.status == 200) {\n setShowCookies(false);\n }\n }\n\n const showInfo = () => {\n locale == 'es' ?\n redirectToExternalNewTab('https://cae-gstore.com/politica-de-cookies/') :\n dialogs.show('info');\n }\n\n // Cuando cargamos el componente buscamos la cookie del consentimiento de privacidad\n React.useEffect(() => {\n const c = !document.cookie.includes(COOKIE_NAME);\n setShowCookies(c);\n }, []);\n\n if (showCookies) {\n return
\n

{t('cookie.message')}

\n {dialogs.render('info', { title: t('cookie.politic.title') }, () => )}\n
\n \n \n
\n
\n }\n else {\n return null;\n }\n}","import * as React from 'react';\n\nimport { classNames } from '@components';\nimport NavMenu from '../containers/NavMenuContainer';\nimport Footer from '../containers/FooterContainer';\nimport { isDebug } from '../Constants';\nimport Cookies from './Cookies';\n\nexport default class Layout extends React.PureComponent<{}, { children?: React.ReactNode }> {\n public render() {\n return (\n
\n \n
\n {this.props.children}\n
\n \n \n
\n );\n }\n}\n","import * as React from 'react';\n\nimport { Column, Loading, DataTable, Tooltip, useTranslation, useMemoized } from '@components';\nimport { ILog, IUserIdentity } from '@models';\nimport { getLogs } from '@store/actions/admin';\nimport { formatLocalDate } from '@utils/date-utils';\n\nexport interface IProps {\n users: IUserIdentity[];\n}\n\nexport function LastLogs(props: IProps) {\n const [loading, setLoading] = React.useState(true);\n const [logs, setLogs] = React.useState([]);\n const [currentFilter, setCurrentFilter] = React.useState('');\n\n const { t } = useTranslation();\n\n const formatDate = useMemoized((d: Date) =>\n formatLocalDate(d));\n\n const userName = useMemoized((id: number) =>\n props.users.find(u => u.id == id)?.userName);\n\n const initialize = async () => {\n const d = await getLogs();\n setLogs(d);\n setLoading(false);\n }\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const filterLogs = async (filter: string) => {\n setLoading(true);\n setCurrentFilter(filter);\n const d = await getLogs(filter);\n setLogs(d);\n setLoading(false);\n }\n\n const Header = (p: any) => {\n const [filter, setFilter] = React.useState(p.filter);\n return
\n setFilter(a.target.value)}\n placeholder={t('Search')} />\n \n
\n }\n\n return
\n {loading && }\n\n }\n className='table'\n resizableColumns\n columnResizeMode='fit'\n showGridlines\n scrollable scrollHeight='500px'\n value={logs}>\n formatDate(u.dateTime)} />\n userName(u.userId)} />\n \n \n \n \n \n \n
\n {u.data}\n
\n \n
} />\n \n
\n}","import * as React from 'react';\nimport { Chart } from 'primereact/chart';\n\nexport default () => {\n const chartData = {\n labels: ['A', 'B', 'C'],\n datasets: [\n {\n data: [300, 50, 100],\n backgroundColor: [\n \"#FF6384\",\n \"#36A2EB\",\n \"#FFCE56\"\n ],\n hoverBackgroundColor: [\n \"#FF6384\",\n \"#36A2EB\",\n \"#FFCE56\"\n ]\n }]\n };\n\n const lightOptions = {\n plugins: {\n legend: {\n labels: {\n color: '#495057'\n }\n }\n }\n };\n\n return (\n
\n \n
\n )\n}","import React from 'react';\n\nimport { Chart } from 'primereact/chart';\n\nimport { useSearch } from '@components';\nimport {formatFileSize} from \"@utils\";\n\ntype IStorageRow = {\n work: string;\n size: number;\n}\n\nexport function StorageChart(props: any) {\n const data = useSearch({\n workId: 3,\n search: 'admin/disk_usage'\n });\n\n const [chartData, setChartData] = React.useState({});\n\n React.useEffect(() => {\n if (data.value) {\n const labels = data.value.map(x => x.work);\n const dataset = data.value.map(x => x.size);\n\n const lineStylesData = {\n labels,\n datasets: [\n {\n backgroundColor: [\n '#7cc057',\n '#f6e072',\n '#42A5F5',\n '#7E57C2',\n '#5d654d',\n '#a13131',\n '#26A69A'\n ],\n label: 'A',\n data: dataset,\n fill: false,\n tension: .4,\n borderColor: '#42A5F5'\n }\n ]\n };\n\n setChartData(lineStylesData);\n }\n else {\n setChartData({});\n }\n }, [data.value]);\n\n const basicOptions = {\n maintainAspectRatio: false,\n aspectRatio: .6,\n plugins: {\n tooltip: {\n callbacks: {\n label: function(t: any, d: any) {\n return formatFileSize(t.raw);\n }\n }\n },\n legend: {\n labels: {\n color: '#495057'\n }\n }\n },\n scales: {\n x: {\n ticks: {\n color: '#495057'\n },\n grid: {\n color: '#ebedef'\n }\n },\n y: {\n ticks: {\n color: '#495057',\n beginAtZero: true,\n callback: function(value: string, index: number) {\n return formatFileSize(parseInt(value));\n }\n },\n grid: {\n color: '#ebedef'\n }\n },\n }\n };\n\n return
\n {data.renderLoading()}\n
\n \n
\n
\n}","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as Admin from '../../store/admin';\nimport * as App from '../../store/app';\n\nimport Module, { IProps } from '../../components/admin/Module';\n\ntype Props =\n Admin.IAdminState &\n App.IAppState &\n IProps;\n\nexport default connect(\n (state: ApplicationState) => ({\n users: state.admin.users,\n loading: state.app.loading,\n loadingMessage: state.app.loadingMessage\n }),\n Admin.actionCreators,\n)(Module as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport './Module.scss';\n\nimport { useTranslation, Card, LoadingBox } from '@components';\n\nimport { LastLogs } from './logs/LastLogs';\nimport SampleChart from '../samples/Chart';\nimport { StorageChart } from './charts/StorageChart';\nimport { IUserIdentity } from '@models';\n\nexport interface IProps {\n loading: boolean;\n loadingMessage?: string;\n initialize: Function;\n users: IUserIdentity[];\n}\n\nexport default function Module(props: IProps) {\n const { t } = useTranslation();\n\n React.useEffect(() => {\n props.initialize();\n }, []);\n\n return
\n {props.loading &&
\n \n
}\n\n
\n \n \n \n \n \n \n \n \n \n
\n
\n}","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as RequirementsStore from '../../store/requirements';\nimport { ForceValidationResource } from '../../components/requirements/ForceValidationResource';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...RequirementsStore.plainActions\n }),\n {},\n)(ForceValidationResource as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any","import * as React from 'react';\n\nimport { useForm, useLoading, useMessage, useTranslation } from '@components';\nimport { ResourceType } from '@models/resources';\nimport { ISecurity, ResourceStatusType } from '@models';\n\nexport interface IProps {\n workId: number;\n requestClose: Function;\n resourceType: ResourceType,\n resourceId: number,\n forceResourceStatus: Function,\n security: ISecurity,\n currentStatusType?: number,\n}\n\ntype ForceStatusData = {\n untilDate?: Date,\n}\n\nexport function ForceValidationResource(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const messages = useMessage();\n const form = useForm({\n initialValues: {}\n });\n\n const validate = loading.wrap(async (valid: boolean = true) => {\n const resp = await props.forceResourceStatus(\n props.workId,\n props.resourceType,\n props.resourceId,\n valid,\n form.values.untilDate);\n messages.set(resp);\n\n if (resp.hasValue && resp.value) {\n props.requestClose(true);\n }\n });\n\n const showAuthorize = props.currentStatusType == undefined\n || [ResourceStatusType.FORCED_REVOKED,\n ResourceStatusType.NOT_AUTHORIZED].includes(props.currentStatusType);\n\n const showRevoke = props.currentStatusType == undefined\n || [ResourceStatusType.FORCED_AUTHORIZED,\n ResourceStatusType.AUTHORIZED].includes(props.currentStatusType);\n\n return
\n
\n {loading.render()}\n \n {showRevoke &&\n }\n {showAuthorize &&\n }\n
\n
\n}\n","import * as React from 'react';\n\nimport { Timeline, useMessage, useTranslation } from '@components';\nimport DateUtils from '@utils/date-utils';\nimport './ViewResourceHistory.scss';\nimport { ResourceType } from '@models';\nimport { search } from '@store/actions/search';\n\ntype ResourceStatusRow = {\n date: Date;\n userName: string;\n statusTypeName: string;\n}\n\nexport interface IProps {\n requestClose?: Function;\n resourceId: number;\n resourceType: ResourceType;\n workId: number;\n}\n\nexport function ViewResourceHistory(props: IProps) {\n const { t } = useTranslation();\n\n const messages = useMessage();\n const [data, setData] = React.useState([]);\n\n const initialize = async () => {\n const filters = {\n resourceType: props.resourceType,\n resourceId: props.resourceId,\n }\n const resp = await search(props.workId, 'resources/resourceStatus.list', filters);\n messages.set(resp);\n\n if (resp.hasValue) {\n setData(resp.value);\n }\n }\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n return
\n {messages.renderIfError()}\n
\n <>\n {t(item.statusTypeName)}\n }\n content={item => {DateUtils.formatDateTimeFromUtc(item.date)} - {item.userName}}\n marker={}\n value={data}/>\n
\n\n {props.requestClose &&\n
\n \n
}\n
;\n}\n","import * as React from 'react';\n\nimport {\n BreadcrumbItem, Panel, useRemoteData, useTranslation, useToast,\n useLoading, useDialogs, Portal, RequirePermission\n} from '@components';\nimport {\n IActivityType, IConstants, IContractor, ILegalForm, IPropertyGroupType, IResourceStatusType, ISecurity, IWork,\n ResourceType\n} from '@models';\nimport { goToContractor, goToContractorAccessData, goToContractorRequirements, goToContractors } from '@components/routes';\nimport './EditContractor.scss';\nimport ForceValidationResourceContainer from '@containers/requirements/ForceValidationResourceContainer';\nimport { ViewResourceHistory } from '@components/requirements/ViewResourceHistory';\nimport { ModuleManager } from '@modules';\n\ntype GetContractorF = (workId: number, id: number) => Promise;\n\nexport interface IProps {\n propertyGroupTypes: IPropertyGroupType[];\n legalForms: ILegalForm[];\n activityTypes: IActivityType[];\n constants: IConstants;\n children?: any;\n getContractor: GetContractorF;\n work: IWork;\n modules: ModuleManager;\n contractor: IContractor;\n contractorId: number;\n security: ISecurity;\n saveContractor: Function;\n resourceStatusTypes: IResourceStatusType[];\n showRequirements?: boolean;\n}\n\n\nfunction EditContractorInner(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const toast = useToast();\n const dialogs = useDialogs();\n\n props.modules.injectComponents(\n 'contractor.edit',\n props,\n [props.contractorId]);\n\n return
\n goToContractors(props.work.id)} />\n\n \n\n \n {loading.render()}\n \n\n {toast.render()}\n\n {props.contractor &&\n
\n {props.children}\n\n
\n \n \n \n {props.contractor.name}\n
} className='buttons'>\n
\n
\n \n\n \n \n \n \n
\n \n {dialogs.render('force-validation', { title: t('Force resource validation'), className: 'g pd' }, () =>\n \n )}\n {dialogs.render('view-history', { title: t('View history'), className: 'g pd' }, () =>\n \n )}\n
\n
}\n \n}\n\nexport function EditContractor(props: IProps) {\n const data = useRemoteData(props.getContractor, {\n parameters: [props.work.id, props.contractorId]\n });\n\n return
\n {data.renderLoading()}\n {data.value && }\n
\n}\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as ContractorsStore from '../../store/contractors';\nimport { EditContractor } from '../../components/contractors/EditContractor';\nimport { isJobHasContractorPropertyGroupType } from '../../models';\nimport { ModuleManager } from '@modules';\n\nexport default connect(\n (state: ApplicationState, params: any) => ({\n contractorId: params.contractorId ?? parseInt(params.match?.params?.contractorid),\n workId: params.workId ?? parseInt(params.match?.params?.workid),\n ...state.identity,\n ...state.user,\n ...ContractorsStore.plainActions,\n modules: state.modules.moduleManager,\n constants: state.constants,\n propertyGroupTypes: state.user.propertyGroupTypes.filter(isJobHasContractorPropertyGroupType),\n resourceStatusTypes: state.user.resourceStatusTypes,\n }),\n ContractorsStore.actionCreators,\n)(EditContractor as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import { IMachinery, IPaginateOptions } from \"../../models\";\nimport { m, q } from './graphql';\nimport {formatProperty} from \"@store/actions/utils\";\n\nexport async function getMachineries(workId: number, opts: Partial = {}) {\n const paginateOpts = {\n page: 0,\n limit: 10,\n ...opts,\n };\n return q(`query GetMachineries($workId: Int!, $paginateOpts: PaginateOptionsGraphInputType!) {\n work(id: $workId) {\n paginateMachineries(options: $paginateOpts) {\n page, total, limit,\n data {\n id, name, contractorId, code, description, machineryTypeId,\n currentStatusType, currentStatusDate, forcedStatusUntilDate, isActive,\n prefixLicenseNumber, licenseNumber, suffixLicenseNumber,\n contractor {\n id, name, code\n },\n properties {\n id, propertyGroupTypeId, jobHasMachineryId, value\n }\n }\n }\n }\n }`, { workId, paginateOpts }, { returnPath: 'work.paginateMachineries' });\n}\n\nexport async function getMachinery(workId: number, id: number) {\n return q(`query GetMachinery($workId: Int!, $id: Int!) {\n work(id: $workId) {\n machinery(id: $id) {\n id, name, contractorId, code, description, machineryTypeId,\n machinerySubTypeId, currentStatusType, currentStatusDate,\n forcedStatusUntilDate, isActive, prefixLicenseNumber,\n licenseNumber, suffixLicenseNumber,\n contractor {\n id, name\n },\n properties {\n id, propertyGroupTypeId, machineryId, jobHasMachineryId, value\n },\n }\n }\n }`,\n { workId, id },\n { returnPath: 'work.machinery' });\n}\n\nexport async function saveMachinery(workId: number, rawData: IMachinery, createJobRelations: boolean = false) {\n const data = {\n ...rawData,\n properties: (rawData.properties ?? []).map(formatProperty(workId)),\n };\n return m(`\nmutation SaveMachinery($data: MachineryInputType!, $createJobRelations: Boolean) {\n saveMachinery(machinery: $data, createJobRelations: $createJobRelations) {\n isError, error, value, hasValue\n }\n}\n `, { data, createJobRelations }, { returnPath: 'saveMachinery' });\n}\n\nexport function removeMachinery(id: number, workId: number, remove: boolean = false) {\n return m(`\nmutation RemoveMachinery($id: Int!, $workId: Int!, $remove: Boolean = false) {\n removeMachinery(id: $id, workId: $workId, remove: $remove) {\n isError, error, value\n }\n}\n `, {id, workId, remove}, { returnPath: 'removeMachinery'});\n}\n\nexport function reactivateMachinery(workId: number, id: number) {\n return m(`\nmutation ReactivateMachinery($id: Int!, $workId: Int!) {\n reactivateMachinery(id: $id, workId: $workId) {\n isError, error, value\n }\n}\n `, {id, workId}, { returnPath: 'reactivateMachinery' });\n}\n","import { Machineries } from \"@components/work/accessControl/Machineries\";\nimport { Action, Reducer } from \"redux\";\nimport {\n} from '../models';\nimport * as MachineriesActions from './actions/machineries';\nimport * as ResourcesActions from './actions/resources';\nimport { actionCreators as N } from \"./notifications\";\n\nexport interface IMachineryState {\n}\n\n// types\nenum types {\n}\n\nexport type KnownAction = {type: undefined};\n\n// ACTIONS\nexport const plainActions = {\n getMachineries: MachineriesActions.getMachineries,\n getMachinery: MachineriesActions.getMachinery,\n saveMachinery: MachineriesActions.saveMachinery,\n removeMachinery: MachineriesActions.removeMachinery,\n reactivateMachinery: MachineriesActions.reactivateMachinery,\n}\n\nexport const actionCreators = {\n}\n\nexport const reducer: Reducer = (state: IMachineryState | undefined, incomingAction: Action): IMachineryState => {\n if (state === undefined) {\n return { };\n }\n\n const action = incomingAction as KnownAction;\n\n switch (action.type) {\n default:\n return state;\n }\n}","import * as React from 'react';\r\n\r\nimport { F, ValidationBuilder, useForm, useLoading, useMessage, useToast, useTranslation } from '@components';\r\nimport { IOption } from '@models';\r\nimport {\r\n IRequirement,\r\n IRequirementType,\r\n IRequirementTypeDocumentRestriction,\r\n RequirementTargetType\r\n} from '@models/requirements';\r\nimport { formatFileSize } from '@utils/file-utils';\r\nimport { fileSizeLimit } from '../../Constants';\r\n\r\nimport './UploadRequirements.scss';\r\n\r\ntype MeetsDependenciesF = (workId: number, requirementId: number, jobId?: number) => Promise>;\r\n\r\nexport interface IProps {\r\n fulfillRequirement: Function;\r\n jobId?: number;\r\n requestClose: (reload: boolean) => void;\r\n requirement: IRequirement;\r\n requirementMeetsDependencies: MeetsDependenciesF;\r\n requirementType: IRequirementType;\r\n targetTitle: string;\r\n}\r\n\r\nfunction UploadFreeDocument({ onChange }: { onChange: (f: File) => void }) {\r\n const { t } = useTranslation();\r\n const toast = useToast();\r\n\r\n const fileRef = React.useRef();\r\n\r\n // lanzamos el dialogo de seleccionar fichero directamente ?\r\n // React.useEffect(() => {\r\n // if (fileRef.current) {\r\n // fileRef.current.click();\r\n // }\r\n // }, []);\r\n\r\n const selectFile = (e: React.ChangeEvent) => {\r\n if ((e.target.files?.length ?? 0) > 0) {\r\n const f = e.target.files![e.target.files!.length - 1];\r\n\r\n if (f.size > fileSizeLimit) {\r\n toast.error(t('upload.filesize.limit') + ' : ' + formatFileSize(fileSizeLimit));\r\n return;\r\n }\r\n else {\r\n onChange(f);\r\n }\r\n }\r\n }\r\n\r\n return
\r\n \r\n {t('Select document')}\r\n {toast.render()}\r\n \r\n
\r\n}\r\n\r\nfunction UploadDocument({\r\n restriction,\r\n onChange\r\n}: {\r\n restriction: IRequirementTypeDocumentRestriction,\r\n onChange: (f: File) => void,\r\n}) {\r\n const toast = useToast();\r\n const { t } = useTranslation();\r\n\r\n const setFromEvent = (e: React.ChangeEvent) => {\r\n if ((e.target.files?.length ?? 0) > 0) {\r\n const f = e.target.files![e.target.files!.length - 1];\r\n let canUpload = true;\r\n\r\n if (f.size > fileSizeLimit) {\r\n canUpload = false;\r\n toast.error(t('upload.filesize.limit') + ' : ' + formatFileSize(fileSizeLimit));\r\n return;\r\n }\r\n\r\n if (restriction.mimeTypes) {\r\n const mimeTypes = restriction.mimeTypes.split(',').map(s => s.trim().toLowerCase());\r\n const regex = new RegExp(`.+\\.(${mimeTypes.join('|')})$`);\r\n canUpload = canUpload && regex.test(f.name.toLowerCase());\r\n }\r\n\r\n if (restriction.excludeMimeTypes) {\r\n const mimeTypes = restriction.excludeMimeTypes.split(',').map(s => s.trim().toLowerCase());\r\n const regex = new RegExp(`.+\\.(${mimeTypes.join('|')})$`);\r\n canUpload = canUpload && !regex.test(f.name);\r\n }\r\n\r\n if (canUpload) {\r\n onChange(f);\r\n }\r\n else {\r\n toast.error(t('File type not allowed'));\r\n }\r\n }\r\n }\r\n\r\n return
\r\n {toast.render()}\r\n \r\n {t('Select document')} : {restriction.title}\r\n \r\n
\r\n}\r\n\r\nfunction UploadDocumentsWithRestrictions({ documentRestrictions, onChange }: {\r\n documentRestrictions: IRequirementTypeDocumentRestriction[],\r\n onChange: (name: string, requirementId: number, file: File, allRequirementsFulfilled: boolean) => void,\r\n}) {\r\n const [restrictionWithDocuments, setRestrictionWithDocuments] = React.useState([]);\r\n\r\n const onChangeDocument = (r: IRequirementTypeDocumentRestriction) => {\r\n return (e: File) => {\r\n setRestrictionWithDocuments(s => s.concat([r.id!]));\r\n const allRequirementsFulfilled =\r\n documentRestrictions\r\n .map(d => d.id!)\r\n .filter(id => restrictionWithDocuments.includes(id) || r.id == id)\r\n .length == documentRestrictions?.length;\r\n\r\n onChange(e.name, r.id!, e, allRequirementsFulfilled);\r\n }\r\n }\r\n\r\n return
\r\n {documentRestrictions.map((r, i) =>\r\n )}\r\n
\r\n}\r\n\r\ntype RequirementFile = [string, number | undefined, File];\r\ntype IFulfillData = {\r\n expeditionDate?: Date;\r\n expirationDate?: Date;\r\n noFileRemarks?: string;\r\n remarks?: string;\r\n}\r\n\r\nexport function UploadRequirement(props: IProps) {\r\n const { t } = useTranslation();\r\n const loading = useLoading();\r\n const message = useMessage();\r\n const toast = useToast();\r\n\r\n const [canFulfill, setCanFulfill] = React.useState(false);\r\n const documentRestrictions = props.requirementType.documentRestrictions ?? [];\r\n const hasDocumentRestrictions = documentRestrictions.length > 0;\r\n\r\n const [files, setFiles] = React.useState([]);\r\n const [fulfilledRequirements, setFulfilledRequirements] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n checkDependencies();\r\n }, []);\r\n\r\n const checkDependencies = async () => {\r\n const meetsDependencies = await props.requirementMeetsDependencies(\r\n props.requirement.workId,\r\n props.requirement.id,\r\n props.jobId);\r\n if (!(meetsDependencies.hasValue && meetsDependencies.value)) {\r\n console.log(meetsDependencies.error);\r\n console.log(t(meetsDependencies.error ?? ''));\r\n message.setError(t(meetsDependencies.error ?? 'error'));\r\n }\r\n else {\r\n setCanFulfill(true);\r\n }\r\n }\r\n\r\n const expirationRequired = props.requirementType.expirationRequired == true;\r\n\r\n const form = useForm({\r\n initialValues: {},\r\n validateOnMount: true,\r\n validate: expirationRequired\r\n ? ValidationBuilder.new().notEmpty('expirationDate').lift()\r\n : undefined,\r\n });\r\n\r\n const hasExpiration = !expirationRequired\r\n || form.values.expirationDate != null;\r\n const canUpload = (hasDocumentRestrictions\r\n ? fulfilledRequirements\r\n : files.length > 0) && hasExpiration;\r\n\r\n const onFreeDocument = (file: File) => {\r\n setFiles([[file.name, undefined, file]]);\r\n setFulfilledRequirements(true);\r\n }\r\n\r\n const onDocumentWithRestrictions = (\r\n name: string,\r\n requirementId: number,\r\n file: File, allRequirementsFulfilled: boolean) => {\r\n setFiles(f =>\r\n f.find(r => r[0] === name)\r\n ? f.map(r => r[0] === name ? [name, r[1], file] : r)\r\n : f.concat([[name, requirementId, file]]));\r\n setFulfilledRequirements(allRequirementsFulfilled);\r\n }\r\n\r\n const uploadDocument = loading.wrap(async () => {\r\n const docs = files.map(f => ({\r\n name: f[2].name,\r\n resourceId: f[2],\r\n fileSize: f[2].size,\r\n requirementTypeDocumentRestrictionId: f[1],\r\n }));\r\n\r\n const requirement = {\r\n requirementId: props.requirement.id,\r\n documents: docs,\r\n workId: props.requirement.workId\r\n };\r\n\r\n const res = await props.fulfillRequirement(\r\n props.requirement.workId,\r\n props.requirement.id,\r\n { ...requirement, ...form.values }\r\n );\r\n\r\n message.set(res);\r\n\r\n if (res.hasValue) {\r\n props.requestClose(true);\r\n }\r\n });\r\n\r\n const requirementFileName = (r: RequirementFile) => {\r\n if (r.length > 0) {\r\n const [__, _, f] = r;\r\n return `${f.name} (${formatFileSize(f.size)})`;\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n const setFile = (f: File) => {\r\n if (!hasDocumentRestrictions) {\r\n onFreeDocument(f);\r\n }\r\n else {\r\n const requirementId = documentRestrictions[0].id!;\r\n const mimeTypes = (documentRestrictions[0].mimeTypes?.split(',') ?? []).map(t => t.trim().toLowerCase()).filter(t => t != '');\r\n const excludeMimeTypes = (documentRestrictions[0].excludeMimeTypes?.split(',') ?? []).map(t => t.trim().toLowerCase()).filter(t => t != '');\r\n let canUpload = true;\r\n\r\n if (f.size > fileSizeLimit) {\r\n canUpload = false;\r\n toast.error(t('upload.filesize.limit') + ' : ' + formatFileSize(fileSizeLimit));\r\n return;\r\n }\r\n\r\n if (mimeTypes.length > 0) {\r\n canUpload = mimeTypes.find(t => f.name.toLowerCase().includes(t)) != undefined;\r\n }\r\n if (excludeMimeTypes.length > 0) {\r\n canUpload = excludeMimeTypes.find(t => f.name.toLowerCase().includes(t)) == undefined;\r\n }\r\n\r\n if (canUpload) {\r\n const allRequirements = true;\r\n onDocumentWithRestrictions(\r\n f.name,\r\n requirementId,\r\n f,\r\n allRequirements);\r\n }\r\n else {\r\n toast.error(t('File type not allowed'));\r\n }\r\n }\r\n }\r\n\r\n const onDropDocument = (e: any) => {\r\n if (e.dataTransfer.items) {\r\n for (let i = 0; i < e.dataTransfer.items.length; i++) {\r\n if (e.dataTransfer.items[i].kind === 'file') {\r\n const file = e.dataTransfer.items[i].getAsFile();\r\n setFile(file);\r\n }\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < e.dataTransfer.files.length; i++) {\r\n setFile(e.dataTransfer.files[i])\r\n }\r\n }\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n\r\n const goToTemplate = (e: any) => {\r\n const url = props.requirementType.template;\r\n if (url?.startsWith('http') ?? false) {\r\n window.open(url, '_blank');\r\n }\r\n }\r\n\r\n const targetKind = props.requirementType.targetType === RequirementTargetType.Contractor\r\n ? t('requirements.target.contractor')\r\n : props.requirementType.targetType === RequirementTargetType.Machinery\r\n ? t('requirements.target.machinery')\r\n : props.requirementType.targetType === RequirementTargetType.Worker\r\n ? t('requirements.target.worker')\r\n : props.requirementType.targetType === RequirementTargetType.JobHasMachinery\r\n ? t('requirements.target.machinery')\r\n : props.requirementType.targetType === RequirementTargetType.JobHasWorker\r\n ? t('requirements.target.worker')\r\n : props.requirementType.targetType === RequirementTargetType.JobHasContractor\r\n ? t('requirements.target.contractor')\r\n : t('requirements.target');\r\n\r\n if (canFulfill) {\r\n return
\r\n {toast.render()}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {props.targetTitle}\r\n
\r\n
\r\n \r\n {props.requirementType.title}\r\n
\r\n
\r\n \r\n {props.requirementType.description}\r\n
\r\n
\r\n
\r\n \r\n \r\n {t('Criteria')}\r\n \r\n\r\n
\r\n \r\n {props.requirementType.criteria !== null && props.requirementType.criteria !== '' &&\r\n
}\r\n {(props.requirementType.criteria === null || props.requirementType.criteria === '') &&\r\n {t('requirements.criteria.empty')}}\r\n
\r\n
\r\n
\r\n \r\n \r\n {t('requirements.template')}\r\n \r\n\r\n
\r\n {props.requirementType.template !== null && props.requirementType.template !== '' &&\r\n \r\n \r\n {props.requirementType.template}\r\n \r\n }\r\n {(props.requirementType.template === null || props.requirementType.template === '') &&\r\n {t('requirements.template.empty')}}\r\n
\r\n
\r\n
\r\n \r\n \r\n {t('Tolerance')}\r\n \r\n
\r\n \r\n \r\n {props.requirementType.expirationThreshold} {t('Days')}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {form.calendar('expirationDate')}\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
e.preventDefault()}\r\n onDrop={onDropDocument}>\r\n
\r\n \r\n {t('requirements.file.upload-area-overwrite')}\r\n \r\n
\r\n\r\n {!hasDocumentRestrictions &&\r\n }\r\n {hasDocumentRestrictions &&\r\n }\r\n\r\n {files.length > 0 &&\r\n
\r\n {files.map((f, i) =>\r\n
\r\n {requirementFileName(f)}\r\n
)}\r\n
}\r\n
\r\n
\r\n {loading.renderBox()}\r\n
\r\n
\r\n {form.errorBox()}\r\n
\r\n \r\n uploadDocument()}>\r\n \r\n {t('Upload documentation')}\r\n \r\n
\r\n
;\r\n }\r\n else {\r\n return
\r\n {message.render()}\r\n
;\r\n }\r\n}\r\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as RequirementsStore from '../../store/requirements';\nimport { UploadRequirement } from '@components/requirements/UploadRequirement';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...state.constants,\n ...RequirementsStore.plainActions,\n }),\n {},\n)(UploadRequirement as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as RequirementsStore from '../../store/requirements';\nimport { ValidateRequirement } from '../../components/requirements/ValidateRequirement';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...state.constants,\n ...RequirementsStore.plainActions,\n moduleManager: state.modules.moduleManager,\n user: state.identity?.user,\n workId: state.work.work?.id,\n }),\n {},\n)(ValidateRequirement as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { IRequirement, IRequirementIncidence, IRequirementType, IRequirementValidationData } from '@models/requirements';\nimport { Message, R, useForm, useLoading, useMessage, useTranslation } from '@components';\n\nimport './ValidateRequirement.scss';\nimport { IOption, IUserIdentity, ModuleManager } from '@models';\nimport { RequirementDocumentInfo } from './RequirementDocumentInfo';\nimport dateUtils from '@utils/date-utils';\n\ntype RequirementCanBeValidatedF = (workId: number, requirementId: number) => Promise;\n\ntype ValidateF = (\n workId: number,\n requirementId: number,\n validate: boolean,\n data: IRequirementValidationData,\n) => Promise>;\n\ntype saveRequirementIncidenceT = (\n workId: number,\n data: IRequirementIncidence,\n fileResourceId: string|undefined,\n fileResourceName: string|undefined) => Promise>;\n\nexport interface IProps {\n requestClose: Function;\n requirement: IRequirement;\n requirementType: IRequirementType;\n requirementCanBeValidated: RequirementCanBeValidatedF;\n moduleManager: ModuleManager;\n showInfo?: boolean;\n validateRequirement: ValidateF;\n saveRequirementIncidence: saveRequirementIncidenceT;\n user: IUserIdentity;\n workId: number;\n}\n\ntype ValidateRequirementModuleProps = {\n disableDenyWithValidation?: boolean;\n}\n\nexport function ValidateRequirement(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading(true);\n const messages = useMessage();\n\n const [canBeValidated, setCanBeValidated] = React.useState(false);\n\n const initialize = loading.wrap(async () => {\n const canBeValidated = await props.requirementCanBeValidated(\n props.requirement.workId,\n props.requirement.id);\n setCanBeValidated(canBeValidated || props.user.roles.includes('gestor'));\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const form = useForm({\n initialValues: {\n remarks: '',\n expirationThreshold: props.requirementType.expirationThreshold,\n expirationDate: dateUtils.toUtc(props.requirement.expirationDate ?? undefined),\n },\n });\n\n const validate = loading.wrap(async (valid: boolean = true) => {\n // #275 Si se rechaza el requerimiento las observaciones son obligatorias\n if (!valid && !(form.values.remarks && form.values.remarks != '')) {\n messages.setError(t('requirements.incidence.remarks-mandatory'));\n return;\n }\n if(!valid){\n form.values.requirementId = props.requirement.id;\n form.values.remarks = form.values.remarks;\n form.values.createdById = props.user.id;\n form.values.creationDate = new Date();\n form.values.expirationDate = undefined;\n form.values.expirationThreshold = undefined;\n form.values.workId = undefined;\n const resp = await props.saveRequirementIncidence(props.requirement.workId, form.values, undefined, undefined);\n if (resp.hasValue && resp.value) {\n props.requestClose(true);\n }\n }\n else {\n const resp = await props.validateRequirement(\n props.requirement.workId,\n props.requirement.id,\n valid,\n form.values);\n messages.set(resp);\n if (resp.hasValue && resp.value) {\n props.requestClose(true);\n }\n }\n });\n\n const deleteDate = () => {\n form.setFieldValue('expirationDate', undefined);\n }\n\n const suggestions = (props.requirementType?.suggestions?.map(s => s.name) ?? []);\n\n const componentProperties = props\n .moduleManager\n .useComponentProperties('requirements.validate');\n\n // #1242\n // ciertas obras (ej. Azsa) pueden deshabilitar\n // la posibilidad de rechazar los requerimientos\n // desde el formulario de validacion\n const canBeDenied = canBeValidated\n && !(componentProperties?.disableDenyWithValidation ?? false);\n\n return
\n
\n
\n {canBeValidated && <>\n \n {form.autoCompleteTextArea(\n 'remarks',\n {autoFocus: true, suggestions, style: {minWidth: '400px', minHeight: '150px'}})}\n \n
\n \n {form.calendar('expirationDate')}\n \n \n
\n \n {form.input('expirationThreshold', {type: 'number'})}\n \n }\n
\n\n {props.showInfo\n && props.requirement.documents\n && props.requirement.documents?.length > 0\n &&\n }\n
\n\n {messages.render()}\n\n {!canBeValidated &&\n
\n \n
}\n\n
\n {loading.render()}\n \n {canBeDenied && \n }\n {canBeValidated &&\n }\n
\n
;\n}\n","import { connect } from \"react-redux\";\nimport { ApplicationState } from '../../store';\nimport * as ConstantsStore from '@store/constants';\nimport * as RequirementsStore from '@store/requirements';\nimport * as App from '@store/app';\n\nimport { AddRequirementIncidence } from '../../components/requirements/AddRequirementIncidence';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...RequirementsStore.plainActions,\n user: state.identity?.user,\n }),\n {},\n)(AddRequirementIncidence as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any","import * as React from 'react';\n\nimport { useForm, useLoading, useMessage, useTranslation, ValidationBuilder } from '@components';\nimport { IRequirement, IRequirementIncidence } from '@models/requirements';\nimport { IOption, IUserIdentity } from '@models';\nimport { pushTemporalResource } from '@store/actions/documents';\n\ntype saveRequirementIncidenceT = (\n workId: number,\n data: IRequirementIncidence,\n fileResourceId: string|undefined,\n fileResourceName: string|undefined) => Promise>;\n\nexport interface IProps {\n incidence?: IRequirementIncidence;\n requirement: IRequirement;\n saveRequirementIncidence: saveRequirementIncidenceT;\n onClose: Function;\n onSuccess: Function;\n user: IUserIdentity;\n}\n\nexport function AddRequirementIncidence(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const message = useMessage();\n const fileRef = React.useRef();\n const [selectedFile, setSelectedFile] = React.useState();\n\n const defaultIncidence: IRequirementIncidence = {\n requirementId: props.requirement.id,\n creationDate: new Date(),\n remarks: '',\n createdById: props.user.id,\n };\n\n const form = useForm({\n initialValues: props.incidence ?? defaultIncidence,\n validateOnMount: true,\n validate: ValidationBuilder.new()\n .notEmpty('remarks', 'requirements.incidence.remarks-mandatory')\n .lift()\n });\n\n const getFileResourceId = async (file: File|undefined) => {\n if (file) {\n const res = await pushTemporalResource(file);\n // TODO: controlar posibles errores enviando el fichero al servidor\n return res.value;\n }\n else {\n return undefined;\n }\n };\n\n const getFileResourceName = async (file: File|undefined) => {\n if(file) {\n return file.name;\n }\n else {\n return undefined;\n }\n };\n\n const doAdd = loading.wrap(async () => {\n const fileResourceId = await getFileResourceId(selectedFile);\n const fileResourceName = await getFileResourceName(selectedFile);\n const res = await props.saveRequirementIncidence(\n props.requirement.workId,\n form.values,\n fileResourceId,\n fileResourceName)\n message.set(res);\n if (res.hasValue) {\n props.onSuccess(form.values);\n }\n });\n\n const doSelectFile = () => {\n fileRef.current.click();\n }\n\n const onFileSelected = (event: any) => {\n const file = event.target.files[event.target.files.length - 1];\n console.log(file);\n setSelectedFile(file);\n }\n\n return
\n
\n {form.textarea('remarks', {rows: 10, autoFocus: true})}\n
\n {form.errorBox()}\n
\n {message.render()}\n \n {selectedFile && {selectedFile.name}\n \n }\n \n
\n \n \n
\n
\n}","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as ConstantsStore from '@store/constants';\nimport * as RequirementsStore from '@store/requirements';\nimport * as App from '@store/app';\n\nimport { AddRequirementNote } from '@components/requirements/AddRequirementNote';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...RequirementsStore.plainActions,\n user: state.identity?.user,\n }),\n {},\n )(AddRequirementNote as any) as any;","import * as React from 'react';\n\nimport { useForm, useLoading, useMessage, useTranslation, ValidationBuilder } from '@components';\nimport {\n IRequirement, IRequirementNote, IRequirementValidationData,\n} from '@models/requirements';\nimport { IOption, IUserIdentity } from '@models';\n\ntype saveRequirementNoteT = (workId: number, data: IRequirementNote) => Promise>;\ntype validateRequirementT = (\n workId: number,\n requirementId: number,\n validate: boolean,\n validationData: IRequirementValidationData\n) => Promise>;\n\nexport interface IProps {\n note?: IRequirementNote;\n requirement: IRequirement;\n saveRequirementNote: saveRequirementNoteT;\n validateRequirement: validateRequirementT;\n onClose: Function;\n onSuccess: Function;\n user: IUserIdentity;\n}\n\nexport function AddRequirementNote(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const message = useMessage();\n\n const defaultNote: IRequirementNote = {\n requirementId: props.requirement.id,\n creationDate: new Date(),\n remarks: '',\n createdById: props.user.id,\n };\n\n const form = useForm({\n initialValues: props.note ?? defaultNote,\n validateOnMount: true,\n validate: ValidationBuilder.new()\n .notEmpty('remarks')\n .lift()\n });\n\n const doAdd = loading.wrap(async () => {\n // const res = await props.saveRequirementNote(props.requirement.workId, form.values)\n const res = await props.validateRequirement(\n props.requirement.workId,\n props.requirement.id,\n true,\n {\n remarks: form.values.remarks,\n skipExpirationDate: true\n });\n message.set(res);\n if (res.hasValue) {\n props.onSuccess(form.values);\n }\n });\n\n return
\n
\n {form.textarea('remarks', {rows: 10, autoFocus: true})}\n
\n {form.errorBox()}\n
\n {message.render()}\n \n \n
\n
\n}\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as RequirementsStore from '@store/requirements';\nimport { ViewRequirementIncidences } from '@components/requirements/ViewRequirementIncidences';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...RequirementsStore.plainActions,\n }),\n {},\n)(ViewRequirementIncidences as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any","import * as React from 'react';\n\nimport { useDataTable, useRemoteData, useTranslation, useLoading } from '@components';\nimport { IRequirement, IRequirementIncidence } from '@models/requirements';\nimport DateUtils from '@utils/date-utils';\n\nimport './ViewRequirementIncidences.scss';\n\nexport interface IProps {\n getRequirementIncidences: Function;\n requirement: IRequirement;\n targetType: number;\n targetId: number;\n onClose: Function;\n}\n\nexport function ViewRequirementIncidences(props: IProps) {\n const { t } = useTranslation();\n\n const loading = useLoading();\n\n const remoteData = useRemoteData(props.getRequirementIncidences, {\n parameters: [props.requirement.workId, props.requirement.id, props.targetType, props.targetId],\n });\n\n const [lastVersion, setLastVersion] = React.useState<[number, number] | undefined>();\n\n React.useEffect(() => {\n const documents = props.requirement.documents ?? [];\n if (documents.length > 0 && (documents[0].document.versions?.length ?? 0) > 0) {\n const v = documents[0].document!.versions!.sort((a, b) => b.id - a.id)[0];\n setLastVersion([documents[0].document.id, v.id]);\n }\n }, [props.requirement]);\n\n const initialize = loading.wrap(async () => {\n await remoteData.query();\n });\n\n const incidences = (remoteData.value ?? [])\n .sort((a, b) => (b.creationDate as any).localeCompare(a.creationDate as any));\n\n const renderIncidence = (d: IRequirementIncidence) => {\n return \n }\n\n const renderDate = (d: IRequirementIncidence) => {\n const date = DateUtils.formatLocalDate(d.creationDate);\n const [day, time] = date.split(' ');\n return
\n {day}\n {time}\n
\n }\n\n const dataTable = useDataTable({\n columns: [\n {\n title: t('Date'),\n className: 'td-md center',\n render: renderDate,\n },\n { title: t('Incidence'), render: renderIncidence },\n {\n className: 'td-sm', render: (d: IRequirementIncidence) => {\n if (d.documentVersionId != null) {\n const [documentId, _] = lastVersion!;\n return downloadFile([documentId, d.documentVersionId!])} />\n }\n else {\n return null;\n }\n }\n }\n ],\n data: incidences,\n loading: remoteData.loading,\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const downloadFile = ([documentId, versionId]: [number, number]) => {\n const url = `/api/files/${props.requirement.workId}/document/${documentId}/version/${versionId}`;\n\n window.location.href = url;\n }\n\n return
\n
\n {dataTable()}\n
\n {lastVersion &&\n
\n \n
}\n
\n
\n}\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as RequirementsStore from '@store/requirements';\nimport { ViewRequirementNotes } from '@components/requirements/ViewRequirementNotes';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...RequirementsStore.plainActions,\n }),\n {},\n)(ViewRequirementNotes as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any","import * as React from 'react';\n\nimport { useDataTable, useRemoteData, useTranslation, useLoading } from '@components';\nimport { IRequirement, IRequirementNote, IRequirementStatus } from '@models/requirements';\nimport DateUtils from '@utils/date-utils';\nimport { flatten } from '@utils';\n\nexport interface IProps {\n getRequirement: Function;\n requirement: IRequirement;\n targetId: number;\n targetType: number;\n}\n\nexport function ViewRequirementNotes(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n\n const isCompleted = React.useRef(false);\n\n const data = React.useRef([]);\n\n const initialize = loading.wrap(async () => {\n loading.start();\n isCompleted.current = false;\n const c: IRequirement = await props.getRequirement(props.requirement.workId, props.targetType, props.targetId, props.requirement.id);\n data.current = c.status.filter(s => s.remarks != undefined);\n isCompleted.current = true;\n loading.stop();\n });\n\n const dataTable = useDataTable({\n columns: [\n { title: t('Date'), className: 'td-md', render: d => DateUtils.formatLocalDate(d.dateTime) },\n { title: t('Note'), render: d => d.remarks },\n ],\n data: data.current,\n loading: !isCompleted.current,\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n return
\n
\n
\n {loading.isLoading() && loading.render()}\n {!loading.isLoading() && dataTable()}\n
\n
\n
\n
\n}","import { IPaginateOptions, IWorker } from '@models';\nimport { q, m, getClient } from './graphql';\nimport { ensureType, formatProperty } from \"@store/actions/utils\";\nimport { pushTemporalResource } from './documents';\n\nexport async function getWorkers(workId: number, opts: Partial = {}) {\n const paginateOpts = {\n page: 0,\n limit: 10,\n ...opts,\n };\n return q(`query GetWorkers($workId: Int!, $paginateOpts: PaginateOptionsGraphInputType!) {\n work(id: $workId) {\n paginateWorkers(options: $paginateOpts) {\n page, total, limit,\n data {\n id, name, surname, code, workerDocumentTypeId, workerTypeId,\n currentStatusType, currentStatusDate, forcedStatusUntilDate, contractorId\n contractor {\n id, name\n },\n properties {\n id, jobHasWorkerId, propertyGroupTypeId, value\n },\n }\n }\n }\n }`, { workId, paginateOpts }, { returnPath: 'work.paginateWorkers' });\n}\n\nexport async function getWorker(workId: number, id: number) {\n return q(`query GetWorker($workId: Int!, $id: Int!) {\n work(id: $workId) {\n worker(id: $id) {\n id, name, surname, code, workerDocumentTypeId, workerTypeId,\n currentStatusType, currentStatusDate,\n workId,\n forcedStatusUntilDate, contractorId,\n isActive,\n remarks,\n phone,\n contractor {\n id, name\n },\n photo { id },\n properties {\n id, propertyGroupTypeId, workerId, jobHasWorkerId, value\n },\n }\n }\n }`,\n { workId, id },\n { returnPath: 'work.worker' });\n}\n\nexport interface ISaveWorkerOpts {\n createJobRelations: boolean,\n imageFile?: File,\n}\n\nconst defaultSaveWorkerOpts = {\n createJobRelations: false,\n}\n\nconst uploadImageFile = async (f: File | undefined) => {\n if (f) {\n const res = await pushTemporalResource(f);\n return res.hasValue ? res.value : null;\n }\n else {\n return null;\n }\n}\n\nexport async function saveWorker(workId: number, rawData: IWorker, options: ISaveWorkerOpts = defaultSaveWorkerOpts) {\n const data = ensureType({\n ...rawData,\n properties: (rawData.properties ?? []).map(formatProperty(workId)),\n }, {\n exclude: [\n 'currentStatusType', 'currentStatusDate', 'forcedStatusUntilDate',\n 'contractor', 'photo'\n ]\n });\n\n const imageResourceId = await uploadImageFile(options.imageFile);\n\n return await m(`\nmutation SaveWorker($data: WorkerInputType!, $createJobRelations: Boolean, $imageResource: String) {\n saveWorker(worker: $data, createJobRelations: $createJobRelations, imageResource: $imageResource) {\n isError, error, value, hasValue\n }\n}\n `,\n {\n data,\n createJobRelations: options.createJobRelations,\n imageResource: imageResourceId,\n },\n { returnPath: 'saveWorker' });\n}\n\nexport function removeWorker(id: number, workId: number, remove: boolean) {\n return m(`\nmutation RemoveWorker($id: Int!, $workId: Int!, $remove: Boolean!) {\n removeWorker(id: $id, workId: $workId, remove: $remove) {\n isError, error, value\n }\n}\n `, { id, workId, remove }, { returnPath: 'removeWorker' });\n}\n\nexport function reactivateWorker(workId: number, id: number) {\n return m(`\nmutation ReactivateWorker($id: Int!, $workId: Int!) {\n reactivateWorker(id: $id, workId: $workId) {\n isError, error, value\n }\n}\n `, { id, workId }, { returnPath: 'reactivateWorker' });\n}\n","import { Action, Reducer } from 'redux';\nimport {\n} from '../models';\nimport * as WorkerActions from './actions/workers';\nimport * as ResourcesActions from './actions/resources';\nimport { actionCreators as N } from './notifications';\n\nexport interface IWorkerState {\n}\n\n// types\nenum Types{\n}\n\nexport type KnownAction = {type: undefined};\n\nexport const plainActions = {\n getWorkers: WorkerActions.getWorkers,\n getWorker: WorkerActions.getWorker,\n saveWorker: WorkerActions.saveWorker,\n reactivateWorker: WorkerActions.reactivateWorker,\n removeWorker: WorkerActions.removeWorker,\n}\n\nexport const actionCreators = {\n};\n\nexport const reducer: Reducer = (state: IWorkerState | undefined, incomingAction: Action): IWorkerState => {\n if (state === undefined) {\n return { };\n }\n\n const action = incomingAction as KnownAction;\n\n switch (action.type) {\n default:\n return state;\n }\n};","import { connect } from \"react-redux\";\nimport { ApplicationState } from '../../store';\nimport * as RequirementsStore from '@store/requirements';\nimport * as WorkersStore from '@store/workers';\nimport * as MachineriesStore from '@store/machineries';\nimport { ResourcePhoto } from '../../resources/ResourcePhoto';\nimport { flatten } from '@utils/index';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...RequirementsStore.plainActions,\n ...WorkersStore.plainActions,\n ...MachineriesStore.plainActions,\n identity: state.identity?.user,\n appUsers: state.user.work?.users,\n requirementStatusTypes: state.user.requirementStatusTypes,\n requirementTypes: flatten(\n state\n .user\n .requirementGroups\n .map(g => g.requirementTypes ?? []))\n }),\n {},\n)(ResourcePhoto as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any","import * as React from 'react';\r\n\r\nimport { Avatar, ContextMenu, useDialogs, useRemoteData, useTranslation } from '@components';\r\nimport { IMachinery, IUserIdentity, IWork, IWorker } from '@models';\r\nimport { IRequirement, IRequirementStatus, IRequirementStatusType, IRequirementType, RequirementStatusTypes, RequirementTargetType } from '@models/requirements';\r\nimport AddRequirementIncidenceContainer from '@containers/requirements/AddRequirementIncidenceContainer';\r\nimport AddRequirementNoteContainer from '@containers/requirements/AddRequirementNoteContainer';\r\nimport UploadRequirement from '@containers/requirements/UploadRequirementContainer';\r\nimport { ViewRequirementHistory } from '@components/requirements/ViewRequirementHistory';\r\n\r\nexport interface IProps {\r\n identity: IUserIdentity;\r\n resourceId: number;\r\n targetType: number;\r\n targetTitle: string;\r\n work: IWork;\r\n appUsers: IUserIdentity[];\r\n resourcePictureRequirement: IRequirement;\r\n requirementStatusTypes: IRequirementStatusType[];\r\n requirementTypes: IRequirementType[];\r\n getRequirements: Function;\r\n getMachinery: Function;\r\n getWorker: Function;\r\n onRender?: Function;\r\n}\r\n\r\nexport function ResourcePhoto(props: IProps) {\r\n const { t } = useTranslation();\r\n const dialogs = useDialogs();\r\n const [resource, setResource] = React.useState();\r\n const [requirementStatus, setRequirementStatus] = React.useState();\r\n\r\n const initialize = async () => {\r\n if (props.targetType === RequirementTargetType.Machinery) {\r\n const machinery = await props.getMachinery(props.work.id, props.resourceId);\r\n setResource(machinery);\r\n }\r\n else if (props.targetType === RequirementTargetType.Worker) {\r\n const worker = await props.getWorker(props.work.id, props.resourceId);\r\n setResource(worker);\r\n }\r\n const requirement = await props.getRequirements(props.work.id, props.targetType, props.resourceId);\r\n const requirementStatus = requirement.find((r: IRequirement) => {\r\n const rt = props.requirementTypes.find(rt => rt.id == r.requirementTypeId);\r\n return rt?.isResourcePicture ?? false;\r\n })?.status;\r\n setRequirementStatus(requirementStatus.find((s: IRequirementStatus) => s.isCurrent));\r\n }\r\n\r\n const reRender = async () => {\r\n if (props.onRender) {\r\n await props.onRender();\r\n }\r\n initialize();\r\n renderPhoto();\r\n dialogs.clear();\r\n }\r\n\r\n React.useEffect(() => {\r\n initialize();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n initialize();\r\n renderPhoto();\r\n }, [props.resourcePictureRequirement]);\r\n\r\n const photoMenu = [\r\n { label: t('Report incidences'), command: () => { dialogs.show('add-incidence') }, icon: 'pi pi-exclamation-triangle' },\r\n { label: t('Add note'), command: () => { dialogs.show('add-note') }, icon: 'pi pi-comment' },\r\n { label: t('Upload picture'), command: () => { dialogs.show('upload-picture') }, icon: 'pi pi-upload' },\r\n { label: t('View history'), command: () => { dialogs.show('view-history') }, icon: 'pi pi-clock' },\r\n ];\r\n\r\n const pm = React.useRef();\r\n\r\n if (requirementStatus?.statusTypeId !== RequirementStatusTypes.PENDING || props.identity.roles.includes('contractor') || props.identity.roles.includes('gestor')) {\r\n photoMenu.splice(0, 2);\r\n }\r\n\r\n if (props.identity.policies.includes('terzi.pics')) {\r\n photoMenu.splice(2, 1);\r\n }\r\n\r\n const renderPhoto = () => {\r\n if (resource !== undefined) {\r\n const url = (`/api/files/${props.work.id}/document/${resource.photo?.id}?version=${new Date().getTime()}`);\r\n if (url && (requirementStatus?.statusTypeId == 2 || requirementStatus?.statusTypeId == 3) && resource.photo?.id != 0 && resource.photo?.id != null && resource.photo?.id != undefined) {\r\n return
pm.current.show(ev)}>\r\n {((requirementStatus?.statusTypeId == 2 || requirementStatus?.statusTypeId == 3) && resource.photo?.id != 0 && url != undefined) &&\r\n }\r\n
\r\n }\r\n else {\r\n return
pm.current.show(ev)}>\r\n \r\n
\r\n }\r\n }\r\n else {\r\n return
???
\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n renderPhoto();\r\n }, [requirementStatus, resource?.photo?.id]);\r\n\r\n const requirementType = props\r\n .requirementTypes\r\n .find(rt => rt.id === props.resourcePictureRequirement.requirementTypeId);\r\n\r\n return <>\r\n {dialogs.render('add-incidence', { title: t('Report incidence'), className: 'g', style: { minWidth: '50vw' } }, () =>\r\n )}\r\n\r\n {dialogs.render('add-note', { title: t('Add note'), className: 'g', style: { minWidth: '50vw' } }, () =>\r\n )}\r\n\r\n {dialogs.render('upload-picture', { title: t('Upload picture') }, () =>\r\n )}\r\n\r\n {dialogs.render('view-history', { title: t('View history') }, () =>\r\n )}\r\n\r\n \r\n {renderPhoto()}\r\n \r\n}\r\n","import * as React from 'react';\n\nimport { classNames, useDataTable, useSearch, useTranslation } from '@components';\nimport { IRequirement, RequirementStatusTypes } from '@models/requirements';\n\nimport './ViewRequirementValidations.scss';\nimport DateUtils from '@utils/date-utils';\nimport { IJob } from '@models';\n\nexport interface IProps {\n job?: IJob;\n requirement: IRequirement;\n workId: number;\n}\n\ntype ValidationRow = {\n validationHolderType: string;\n validationHolderName?: string;\n validatedState: string;\n validatedDate?: string | Date;\n optional?: boolean;\n departmentId?: number;\n jobImpliedRso?: boolean;\n}\n\nexport function ViewRequirementValidations(props: IProps) {\n const { t } = useTranslation();\n\n const data = useSearch({\n workId: props.workId,\n search: 'requirements/validations',\n filters: {\n requirementId: props.requirement.id,\n workId: props.workId,\n }\n });\n\n const currentStatus = props.requirement.status.find(s => s.isCurrent);\n const isValid = currentStatus?.statusTypeId == RequirementStatusTypes.VALIDATED;\n\n const validations: ValidationRow[] = data\n .value\n .filter(v => v.optional != true || v.validatedDate != undefined)\n .map(v => {\n // SHAMEFUL HACK:\n // si el estado del requerimiento es validado,\n // entonces el estado de la validación es el mismo (fix migracion)\n // y simulamos que todos los participantes han validado (en la anterior aplicacion\n // no existia el concepto de validacion múltiple)\n if (isValid && currentStatus && DateUtils.parseDate(currentStatus.dateTime)?.getFullYear() < 2024) {\n return {\n ...v,\n validatedDate: currentStatus?.dateTime,\n validatedState: 'requirement.validation.validated',\n };\n }\n else {\n return v;\n }\n });\n\n const renderState = (r: ValidationRow) => {\n if (r.validatedDate != undefined) {\n return
\n {t(r.validatedState)}\n \n {DateUtils.format(r.validatedDate)}\n
\n }\n else {\n return
{t(r.validatedState)}
\n }\n }\n\n const renderValidationHolderName = (r: ValidationRow) => {\n if (r.validationHolderName != undefined && r.validationHolderName != ' ') {\n return r.validationHolderName;\n }\n else if (r.jobImpliedRso && props.job != undefined) {\n const d = props.job?.departments.find(d => d.departmentId == r.departmentId);\n return d?.responsible?.name + ' ' + d?.responsible?.surname;\n }\n else {\n return '';\n }\n }\n\n const table = useDataTable({\n columns: [\n {\n className: 'center',\n field: 'validationHolderType',\n render: (n: ValidationRow) => t(n.validationHolderType),\n },\n {\n className: 'center',\n field: 'validationHolderName',\n render: (n: ValidationRow) => renderValidationHolderName(n),\n title: 'Name',\n },\n {\n className: 'td-state',\n title: 'State',\n render: renderState,\n },\n ],\n data: validations,\n });\n\n return
\n {data.renderLoading()}\n {table()}\n
\n}\n","import * as React from 'react';\r\n\r\nimport {\r\n Portal,\r\n classNames, R, SplitButton, TabPanel, TabView, Tag, Tooltip, useDialogs, useRemoteData,\r\n useTranslation, Panel, useSignalR, useConfirm, useLoading, usePermissions,\r\n} from '@components';\r\nimport UploadRequirement from '@containers/requirements/UploadRequirementContainer';\r\nimport ValidateRequirement from '@containers/requirements/ValidateRequirementContainer';\r\nimport AddRequirementIncidenceContainer from '@containers/requirements/AddRequirementIncidenceContainer';\r\nimport AddRequirementNoteContainer from '@containers/requirements/AddRequirementNoteContainer';\r\nimport { ViewRequirementHistory } from './ViewRequirementHistory';\r\nimport ValidateAllRequirements from '@containers/requirements/ValidateAllRequirementsContainer';\r\nimport RemoteHtml from '@components/custom/RemoteHtml';\r\nimport {\r\n IRequirement, IRequirementGroup, IRequirementHasDocument,\r\n IRequirementStatusType, IRequirementType,\r\n IRequirementIncidence,\r\n requirementCanBeValidated,\r\n requirementCanUpload,\r\n IRequirementNote,\r\n FreeRequirementType,\r\n RequirementTypeKind,\r\n RequirementStatusTypes,\r\n userCanValidateRequirement,\r\n IRequirementNotification, RequirementTargetType, RequirementTypeDependencyType,\r\n RequirementValidationType,\r\n} from '@models/requirements';\r\nimport { IContractor, ResourceType } from '@models/resources';\r\nimport * as C from '../../Constants';\r\nimport { flatten, formatFileSize } from '@utils';\r\nimport DateUtils from '@utils/date-utils';\r\n\r\nimport './EditRequirements.scss';\r\nimport ViewRequirementIncidencesContainer from '@containers/requirements/ViewRequirementIncidencesContainer';\r\nimport ViewRequirementNotesContainer from '@containers/requirements/ViewRequirementNotesContainer';\r\nimport { DocumentViewer, hasViewer } from '@components/viewers/DocumentViewer';\r\nimport { RequirementDocumentInfo } from './RequirementDocumentInfo';\r\nimport { IJob, IUserIdentity, ISecurity, IOption, IWork, ModuleManager } from '@models';\r\nimport ResourcePhotoContainer from '@containers/resources/ResourcePhotoContainer';\r\nimport { MenuItem } from 'primereact/menuitem';\r\nimport { ViewRequirementValidations } from './ViewRequirementValidations';\r\nimport dateUtils from '@utils/date-utils';\r\n\r\ntype PendingRequirementsCallback = (hasPendingRequirements: boolean) => void;\r\n\r\nexport interface IProps {\r\n getRequirements: (workId: number, targetType: number, targetId: number) => Promise;\r\n getRequirement: (workId: number, targetType: number, targetId: number, requirementId: number) => Promise;\r\n removeRequirementFile: (requirement: IRequirement) => Promise>;\r\n removeFreeRequirement: (requirement: IRequirement) => Promise>;\r\n hasAccessJobInformation?: boolean;\r\n jobId?: number;\r\n job?: IJob;\r\n onHasPendingRequirements?: PendingRequirementsCallback;\r\n readOnly?: boolean;\r\n requirementGroups: IRequirementGroup[];\r\n requirementStatusTypes: IRequirementStatusType[];\r\n requirementIncidence: IRequirementIncidence;\r\n requirementNote: IRequirementNote;\r\n security: ISecurity;\r\n siblingId?: number;\r\n siblingType?: number;\r\n siblingContractorId?: number;\r\n siblingJobHasContractorId?: number;\r\n targetId: number;\r\n targetTitle: string;\r\n targetType: number;\r\n work: IWork;\r\n workId: number;\r\n appUsers: IUserIdentity[];\r\n index: number;\r\n getContractorFromAppUser: Function;\r\n getJobHasWorker: Function;\r\n getJobHasMachinery: Function;\r\n getJobHasContractor: Function;\r\n getContractor: Function;\r\n getWorker: Function;\r\n getMachinery: Function;\r\n moduleManager: ModuleManager;\r\n skipMirrorDependencies?: boolean;\r\n ctx?: any;\r\n}\r\n\r\nenum RequirementMode {\r\n FreeRequirement,\r\n DirectRequirement,\r\n RequirementWithMirrorDependency,\r\n RequirementWithValidationDependency,\r\n IBODependency,\r\n}\r\n\r\ntype RequirementModeData = {\r\n mode: RequirementMode,\r\n meetsRequirements?: boolean,\r\n}\r\n\r\nfunction ViewRequirementDocument({ document, onClose, requirement, restrictionTitle }: {\r\n document: IRequirementHasDocument,\r\n onClose: Function,\r\n requirement: IRequirement,\r\n restrictionTitle?: string,\r\n}) {\r\n var sortedVersions = document.document.versions!.sort((a, b) => dateUtils.compareDates(dateUtils.fromUtc(b.dateTime), dateUtils.fromUtc(a.dateTime)));\r\n\r\n const lastVersion = sortedVersions[0];\r\n // const lastVersion = document.document;\r\n\r\n const { t } = useTranslation();\r\n const dialogs = useDialogs();\r\n const documentUrl = `/api/files/${requirement.workId}/document/${document.document.id}/version/${lastVersion.id}`;\r\n\r\n const openViewer = () => {\r\n window.open(`/work/${requirement.workId}/requirements/${requirement.id}/documents/${document.id}`);\r\n }\r\n\r\n return
\r\n
\r\n
\r\n {restrictionTitle && {restrictionTitle}}\r\n
\r\n \r\n \r\n {lastVersion.name}\r\n \r\n \r\n \r\n \r\n {lastVersion.mimeType}\r\n \r\n \r\n \r\n \r\n {formatFileSize(lastVersion.size)}\r\n \r\n \r\n \r\n \r\n {DateUtils.formatFromUtc(lastVersion.dateTime)}\r\n \r\n \r\n \r\n \r\n {document.createdBy}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n {dialogs.render('viewer', { maximized: true, title: t('View document') }, () =>\r\n \r\n )}\r\n\r\n
\r\n \r\n {hasViewer(document.document.mimeType) &&\r\n }\r\n \r\n \r\n {t('Download')}\r\n \r\n
\r\n
\r\n}\r\n\r\nfunction RequirementDocument({ document, index, requirement, requirementType }: {\r\n document: IRequirementHasDocument,\r\n index: number,\r\n requirement: IRequirement,\r\n requirementType: IRequirementType\r\n}) {\r\n const dialogs = useDialogs();\r\n const { t } = useTranslation();\r\n const restriction = requirementType.documentRestrictions?.find(r => r.id == document.documentRestrictionId);\r\n const restrictionTitle = restriction?.title;\r\n\r\n const tooltip = restrictionTitle\r\n ? `${restrictionTitle}: ${document.document.name}`\r\n : document.document.name;\r\n\r\n return \r\n \r\n\r\n {dialogs.render('show-document', { title: t('Show document') }, () =>\r\n dialogs.clear()} />)}\r\n \r\n}\r\n\r\nfunction RequirementDocumentsRow({ requirement, requirementType }: {\r\n requirement: IRequirement,\r\n requirementType: IRequirementType\r\n}) {\r\n return \r\n {requirement.documents?.map((r, i) =>\r\n )}\r\n ;\r\n}\r\n\r\nfunction RequirementRow({\r\n ctx,\r\n hasAccessJobInformation,\r\n jobId,\r\n job,\r\n index,\r\n onRequestReload, readOnly, requirement, requirementType, requirementGroup, requirementStatusTypes,\r\n requirementPair,\r\n removeFreeRequirement,\r\n removeRequirementFile,\r\n targetType, security, targetId, targetTitle, appUsers, work, getContractorFromAppUser,\r\n getJobHasWorker, getJobHasMachinery, getJobHasContractor, getContractor, getWorker, getMachinery, moduleManager,\r\n meetsRequirements,\r\n}: {\r\n ctx: any,\r\n index: number,\r\n hasAccessJobInformation?: boolean,\r\n jobId?: number,\r\n job?: IJob,\r\n onRequestReload: Function,\r\n readOnly?: boolean,\r\n removeFreeRequirement?: Function,\r\n removeRequirementFile: Function,\r\n requirement: IRequirement,\r\n requirementType: IRequirementType,\r\n requirementGroup: IRequirementGroup,\r\n requirementStatusTypes: IRequirementStatusType[],\r\n requirementIncidence: IRequirementIncidence,\r\n requirementPair?: RequirementPair[],\r\n security: ISecurity,\r\n targetTitle: string,\r\n targetType: number,\r\n targetId: number,\r\n appUsers: IUserIdentity[],\r\n work: IWork,\r\n getContractorFromAppUser: Function,\r\n getJobHasWorker: Function,\r\n getJobHasMachinery: Function,\r\n getJobHasContractor: Function,\r\n getContractor: Function,\r\n getWorker: Function,\r\n getMachinery: Function,\r\n moduleManager: ModuleManager,\r\n meetsRequirements: boolean,\r\n}) {\r\n const { t } = useTranslation();\r\n\r\n const loading = useLoading();\r\n const removeFile = loading.wrap(async () => {\r\n await removeRequirementFile(requirement);\r\n onRequestReload();\r\n });\r\n const performRemoveFreeRequirement = loading.wrap(async () => {\r\n await removeFreeRequirement?.(requirement);\r\n onRequestReload();\r\n });\r\n\r\n const dialogs = useDialogs();\r\n const actionsBtn = React.useRef({});\r\n const [selfContractor, setSelfContractor] = React.useState(undefined);\r\n const [resourceContractorId, setResourceContractorId] = React.useState(undefined);\r\n const confirmRemove = useConfirm({\r\n message: t('Are you sure to delete the file ?'),\r\n accept: removeFile,\r\n target: () => actionsBtn.current.container,\r\n });\r\n const confirmRemoveFreeRequirement = useConfirm({\r\n message: t('requirements.remove-free-requirement.confirm'),\r\n accept: performRemoveFreeRequirement,\r\n target: () => actionsBtn.current.container,\r\n });\r\n\r\n if (work.id != 21) {\r\n const initialize = async () => {\r\n const contractor = await getContractorFromAppUser(work.id);\r\n setSelfContractor(contractor);\r\n let resource = undefined;\r\n if (requirementType.targetType == RequirementTargetType.JobHasMachinery || (jobId != undefined && requirementType.targetType == RequirementTargetType.Machinery)) {\r\n resource = await getJobHasMachinery(work.id, jobId, targetId);\r\n setResourceContractorId(resource.machinery.contractorId);\r\n }\r\n else if (requirementType.targetType == RequirementTargetType.JobHasWorker || (jobId != undefined && requirementType.targetType == RequirementTargetType.Worker)) {\r\n resource = await getJobHasWorker(work.id, jobId, targetId);\r\n setResourceContractorId(resource.worker.contractorId);\r\n }\r\n else if (requirementType.targetType == RequirementTargetType.JobHasContractor || (jobId != undefined && requirementType.targetType == RequirementTargetType.Contractor)) {\r\n resource = await getJobHasContractor(work.id, jobId, targetId);\r\n setResourceContractorId(resource.contractorId);\r\n }\r\n else if (requirementType.targetType == RequirementTargetType.Worker) {\r\n resource = await getWorker(work.id, targetId);\r\n setResourceContractorId(resource.contractorId);\r\n }\r\n else if (requirementType.targetType == RequirementTargetType.Machinery) {\r\n resource = await getMachinery(work.id, targetId);\r\n setResourceContractorId(resource.contractorId);\r\n }\r\n else if (requirementType.targetType == RequirementTargetType.Contractor) {\r\n resource = await getContractor(work.id, targetId);\r\n setResourceContractorId(resource.id);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n initialize();\r\n }, []);\r\n }\r\n\r\n const currentStatus = requirement.status.find(s => s.isCurrent);\r\n const currentStatusType = currentStatus?.statusTypeId;\r\n const statusType = requirementStatusTypes.find(s => s.id == currentStatus?.statusTypeId);\r\n\r\n // Si la validacion es ita y esta validado no dejamos cargar documentos\r\n // #249: Transportistas\r\n const preCanUpload = work.id == 19 ? (!work.settingsObj?.mainContractorCanFulfillSubs ? selfContractor ? resourceContractorId == selfContractor?.id : !readOnly && (security.isGestor() || (security.hasPermission('requirements.upload')) ||\r\n (!readOnly && requirementCanUpload(requirement, targetType, security, {\r\n hasAccessJobInformation,\r\n requirementType,\r\n })))\r\n && !(requirementType.validationTypeId == RequirementValidationType.ITA\r\n && targetType != RequirementTargetType.JobHasContractor\r\n && targetType != RequirementTargetType.Contractor\r\n && currentStatus?.statusTypeId == RequirementStatusTypes.VALIDATED) : true) : !readOnly && (security.isGestor() || (security.hasPermission('requirements.upload')) ||\r\n (!readOnly && requirementCanUpload(requirement, targetType, security, {\r\n hasAccessJobInformation,\r\n requirementType,\r\n })));\r\n\r\n const haveIncidences =\r\n (currentStatus?.statusTypeId == 4 && currentStatus?.remarks && currentStatus?.remarks != '')\r\n || requirement.hasIncidences;\r\n const haveNotes = !haveIncidences && currentStatus?.remarks && currentStatus?.remarks != '';\r\n const mainDepartment = job?.departments?.find(d => d.isMain);\r\n const canValidateContext = {\r\n job,\r\n mainDepartment,\r\n };\r\n\r\n const isJobRequirement = (requirement: IRequirement) =>\r\n targetType == RequirementTargetType.JobHasDepartment\r\n || targetType == RequirementTargetType.Job\r\n || targetType == RequirementTargetType.JobHasContractor\r\n || targetType == RequirementTargetType.JobHasWorker\r\n || targetType == RequirementTargetType.JobHasMachinery;\r\n\r\n const permissionCtx = {\r\n job: job,\r\n security: security,\r\n requirement: requirement,\r\n requirementType: requirementType,\r\n canUpload: preCanUpload,\r\n resourceContractorId: resourceContractorId,\r\n ...ctx,\r\n };\r\n\r\n // validaciones multiples\r\n const [_showValidations, setShowValidations] = React.useState(false);\r\n const showValidations = () => {\r\n // solo mostramos los validadores si el tipo de validacion = REQUIRE_ALL\r\n const allHolders = requirementType\r\n .validationHolders?.filter(h => h.optional != true)?.length ?? 0;\r\n if (requirementType.validationTypeId == RequirementValidationType.REQUIRE_ALL) {\r\n setShowValidations(allHolders > 1);\r\n }\r\n }\r\n const hideValidations = () => setShowValidations(false);\r\n\r\n const editRequirementsProps = {\r\n security,\r\n moduleManager,\r\n work,\r\n };\r\n\r\n const canReportIncidencesDefaultPermission = (requirementCanBeValidated(requirement)\r\n && userCanValidateRequirement(requirementType, security, canValidateContext)\r\n ) || security.isGestor();\r\n\r\n const canRemoveFreeRequirementDefaultPermission = !readOnly && (security.isGestor()\r\n || security.hasPermission('requirements.remove-free-requirement')\r\n || (security.isWorker() && requirement.status.length == 1\r\n && requirement.status[0].statusTypeId == RequirementStatusTypes.PENDING)\r\n ) && !security.isContractor();\r\n\r\n const canUploadDefaultPermission = isJobRequirement(requirement)\r\n ? 'job.canUploadRequirements'\r\n : 'canUploadRequirements';\r\n\r\n const canRemoveDefaultPermission = canUploadDefaultPermission && !security.isContractor();\r\n\r\n const canAddObservationsDefaultPermission = isJobRequirement(requirement)\r\n ? 'job.requirements.can-add-observations'\r\n : 'requirements.can-add-observations';\r\n\r\n const canValidateDefaultPermission = (requirementCanBeValidated(requirement)\r\n && userCanValidateRequirement(requirementType, security, canValidateContext)) || security.isGestor();\r\n\r\n const perms = usePermissions(\r\n editRequirementsProps, {\r\n ctx: permissionCtx,\r\n debug: false,\r\n dependencies: resourceContractorId\r\n }, {\r\n canReportIncidences: {\r\n name: isJobRequirement(requirement)\r\n ? 'job.requirements.create-incidence'\r\n : 'requirements.create-incidence',\r\n default: canReportIncidencesDefaultPermission,\r\n },\r\n canRemove: {\r\n name: isJobRequirement(requirement)\r\n ? 'job.requirements.can-remove'\r\n : 'requirements.can-remove',\r\n default: canRemoveDefaultPermission,\r\n },\r\n canRemoveFreeRequirement: {\r\n name: isJobRequirement(requirement)\r\n ? 'job.requirements.can-remove-free-requirement'\r\n : 'requirements.can-remove-free-requirement',\r\n default: canRemoveFreeRequirementDefaultPermission,\r\n },\r\n canUpload: {\r\n name: isJobRequirement(requirement)\r\n ? 'job.canUploadRequirements'\r\n : 'canUploadRequirements',\r\n default: canUploadDefaultPermission,\r\n },\r\n canAddObservations: {\r\n name: 'requirements.can-add-observations',\r\n default: canAddObservationsDefaultPermission,\r\n },\r\n canDownload: {\r\n name: 'requirement.download',\r\n default: true,\r\n },\r\n canValidate: {\r\n name: 'requirements.validate',\r\n default: canValidateDefaultPermission,\r\n },\r\n });\r\n\r\n const canUpload = perms.get('canUpload');\r\n const canRemoveFreeRequirement = perms.get('canRemoveFreeRequirement');\r\n const canRemove = perms.get('canRemove');\r\n const canAddObservations = perms.get('canAddObservations');\r\n const canReportIncidences = perms.get('canReportIncidences');\r\n const canDownload = perms.get('canDownload');\r\n const canValidate = perms.get('canValidate');\r\n\r\n // posibles acciones a ejecutar sobre un requerimiento\r\n let actions: MenuItem[] = [\r\n {\r\n label: t('View history'),\r\n icon: 'pi pi-clock',\r\n command: dialogs.showFromEvent('show-history'),\r\n },\r\n security.isGestorOrWorker() && canReportIncidences\r\n ? {\r\n label: t('Report incidences'),\r\n icon: 'pi pi-exclamation-triangle',\r\n command: dialogs.showFromEvent('add-incidence'),\r\n }\r\n : undefined,\r\n (security.isGestorOrWorker() && canAddObservations && security.hasPermission('requirements.note'))\r\n ? {\r\n label: t('Add observations'),\r\n icon: 'pi pi-comments',\r\n command: dialogs.showFromEvent('add-note'),\r\n }\r\n : undefined,\r\n { separator: true },\r\n security.isGestorOrWorker() && canValidate\r\n ? {\r\n label: t('Validate'),\r\n icon: 'pi pi-check-square',\r\n command: dialogs.showFromEvent('show-validate'),\r\n disabled: !canValidate\r\n }\r\n : undefined,\r\n (requirement.documents && requirement.documents.length > 0 && canRemove)\r\n ? {\r\n label: t('Remove file'),\r\n icon: 'pi pi-trash',\r\n command: confirmRemove,\r\n }\r\n : undefined,\r\n (requirement.requirementTypeId == FreeRequirementType && canRemoveFreeRequirement)\r\n ? {\r\n label: t('Remove requirement'),\r\n icon: 'pi pi-trash',\r\n command: confirmRemoveFreeRequirement\r\n }\r\n : undefined,\r\n ].filter(a => a != undefined)\r\n .map(a => a!)\r\n .filter(s => s.disabled != true);\r\n\r\n const onRequestClose = (reload: boolean = false) => {\r\n if (reload) {\r\n onRequestReload();\r\n }\r\n\r\n dialogs.clear();\r\n }\r\n\r\n const calculateActions = () => {\r\n if (job != undefined) {\r\n const actionsContext = {\r\n identity: security,\r\n job: job,\r\n actions: actions,\r\n requirementType: requirementType,\r\n };\r\n\r\n const filterActions = moduleManager.filterDependency('requirement.implied.rso.actions', actionsContext);\r\n\r\n return actions.filter(filterActions);\r\n } else {\r\n return actions;\r\n }\r\n }\r\n\r\n const onValidate = (reload: boolean = false) => {\r\n dialogs.clear();\r\n if (reload) {\r\n onRequestReload();\r\n }\r\n }\r\n\r\n const isOnDate = (requirement.expirationDate != null\r\n && DateUtils.dateIsLessOrEqual(\r\n DateUtils.parseDate(requirement.expirationDate),\r\n new Date()));\r\n\r\n\r\n const isExpired = (requirement.status.find(s => s.isCurrent)?.statusTypeId == RequirementStatusTypes.NOT_VALIDATED || requirement.status.find(s => s.isCurrent)?.statusTypeId == RequirementStatusTypes.NOT_LOADED) && requirement.isExpired;\r\n\r\n const onNoteAdded = () => {\r\n dialogs.clear();\r\n onRequestReload();\r\n }\r\n\r\n const isResourcePicture = requirementType?.isResourcePicture;\r\n\r\n const uploadRequirementsTitle = requirementType.targetType === RequirementTargetType.Contractor\r\n ? t('requirements.upload.contractor')\r\n : requirementType.targetType === RequirementTargetType.Worker\r\n ? t('requirements.upload.worker')\r\n : requirementType.targetType === RequirementTargetType.Machinery\r\n ? t('requirements.upload.machinery')\r\n : requirementType.targetType === RequirementTargetType.Job\r\n ? t('requirements.upload.job')\r\n : requirementType.targetType === RequirementTargetType.JobHasContractor\r\n ? t('requirements.upload.contractor')\r\n : requirementType.targetType === RequirementTargetType.JobHasWorker\r\n ? t('requirements.upload.worker')\r\n : requirementType.targetType === RequirementTargetType.JobHasMachinery\r\n ? t('requirements.upload.machinery')\r\n : t('Upload documents');\r\n\r\n if (!isResourcePicture) {\r\n return
\r\n {(requirementType.kindId === RequirementTypeKind.Mandatory\r\n || requirement.mandatory)\r\n && }\r\n\r\n {(requirementType.kindId === RequirementTypeKind.Optional\r\n && !requirement.mandatory)\r\n && }\r\n\r\n {C.isDebug && {requirement.id}}\r\n\r\n {requirementType.description &&\r\n }\r\n\r\n \r\n {requirementType.title}\r\n \r\n \r\n\r\n {loading.render()}\r\n\r\n {requirement.expirationDate &&\r\n (currentStatusType == RequirementStatusTypes.PENDING) &&\r\n \r\n \r\n {DateUtils.formatFromUtc(requirement.expirationDate)}\r\n }\r\n\r\n {requirement.expirationDate &&\r\n (currentStatusType == RequirementStatusTypes.VALIDATED) &&\r\n \r\n \r\n {DateUtils.formatFromUtc(requirement.expirationDate)}\r\n }\r\n\r\n {requirement.documents\r\n && requirement.documents.length > 0\r\n && requirement.documents[0].document.hasActiveVersion\r\n && canDownload\r\n && }\r\n\r\n {haveIncidences && \r\n \r\n }\r\n\r\n {haveNotes && \r\n \r\n }\r\n\r\n {canUpload && meetsRequirements && \r\n \r\n }\r\n\r\n {dialogs.render('view-incidences', { title: t('View incidences'), className: 'no-padding' }, () =>\r\n \r\n )}\r\n\r\n {dialogs.render('view-notes', { title: t('View notes'), className: 'g pd' }, () =>\r\n \r\n )}\r\n\r\n {isExpired && \r\n \r\n {requirement.expirationDate}\r\n }\r\n\r\n\r\n {dialogs.render('add-incidence', { title: t('Report incidence'), className: 'g', style: { minWidth: '50vw' } }, () =>\r\n )}\r\n\r\n {dialogs.render('add-note', { title: t('Add note'), className: 'g', style: { minWidth: '50vw' } }, () =>\r\n )}\r\n\r\n
\r\n {_showValidations &&\r\n }\r\n\r\n {requirement.inProgress &&\r\n \r\n \r\n }\r\n\r\n {!requirement.inProgress &&\r\n \r\n }\r\n\r\n \r\n
\r\n\r\n {dialogs.render('upload-documents', { title: uploadRequirementsTitle }, () =>\r\n )}\r\n\r\n {dialogs.render('show-history', { title: t('View history'), className: 'g' }, () =>\r\n )}\r\n\r\n {dialogs.render('show-validate', { title: t('Validate requirement'), className: 'g pd' }, () =>\r\n )}\r\n
\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction RequirementGroup({\r\n ctx,\r\n hasAccessJobInformation,\r\n jobId,\r\n job,\r\n group, onRequestReload, readOnly,\r\n removeRequirementFile,\r\n requirements, requirementStatusTypes,\r\n security, requirementIncidence, targetType, targetId, targetTitle, appUsers, work,\r\n getContractorFromAppUser, getJobHasMachinery, getJobHasWorker, getJobHasContractor, getContractor, getWorker, getMachinery,\r\n moduleManager,\r\n skipMirrorDependencies,\r\n}: {\r\n ctx?: any,\r\n hasAccessJobInformation?: boolean,\r\n jobId?: number,\r\n job?: IJob,\r\n group: IRequirementGroup,\r\n onRequestReload: Function,\r\n readOnly?: boolean,\r\n removeRequirementFile: Function,\r\n requirements: RequirementPair[],\r\n requirementStatusTypes: IRequirementStatusType[],\r\n requirementIncidence: IRequirementIncidence,\r\n security: ISecurity,\r\n targetTitle: string,\r\n targetType: number,\r\n targetId: number,\r\n appUsers: IUserIdentity[],\r\n work: IWork,\r\n getContractorFromAppUser: Function,\r\n getJobHasMachinery: Function,\r\n getJobHasWorker: Function,\r\n getJobHasContractor: Function,\r\n getContractor: Function,\r\n getWorker: Function,\r\n getMachinery: Function,\r\n moduleManager: ModuleManager,\r\n skipMirrorDependencies?: boolean,\r\n}) {\r\n return
\r\n {requirements\r\n .filter(([r, rt, mode]) => !requirementHasDependency(r)\r\n || mode.mode === RequirementMode.RequirementWithValidationDependency\r\n || skipMirrorDependencies)\r\n .sort(([a, at], [b, bt]) => (at.orderValue ?? 1000) - (bt.orderValue ?? 1000))\r\n .map(([r, rt, mode], key) =>\r\n )}\r\n
;\r\n}\r\n\r\ntype RequirementPair = [IRequirement, IRequirementType, RequirementModeData];\r\n\r\ntype RequirementGroups = {\r\n [requirementGroupId: number]: RequirementPair[];\r\n}\r\n\r\nconst getRequirementDependency = (r: any) => {\r\n if (r.requirementType) {\r\n const deps: any[] = r.requirementType.dependencies ?? [];\r\n return deps\r\n .find(d => d.dependencyType === RequirementTypeDependencyType.RequirementMustHaveBeenValidated);\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\n\r\nconst requirementHasDependency = (r: any) => {\r\n if (r.requirementType) {\r\n const deps: any[] = r.requirementType.dependencies ?? [];\r\n\r\n return deps\r\n .find(d => d.dependencyType === RequirementTypeDependencyType.RequirementMustHaveBeenValidated\r\n && d.propagate) != undefined;\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\n\r\nconst isMirrorRequirement = (r: IRequirement) => {\r\n const dependencies = r.requirementType?.dependencies ?? [];\r\n return dependencies\r\n .filter(d => d.propagate ?? false).length > 0;\r\n}\r\n\r\nconst generalResources = [\r\n ResourceType.Contractor,\r\n ResourceType.Machinery,\r\n ResourceType.Worker,\r\n];\r\n\r\nlet _prevActiveIndex = 0;\r\n\r\nfunction associateRequirementTypes(groups: IRequirementGroup[]) {\r\n const allRequirementTypes = flatten(groups.map(g => g.requirementTypes ?? []));\r\n return (requirements: IRequirement[]) => {\r\n return requirements.map(r => {\r\n return {\r\n ...r,\r\n requirementType: allRequirementTypes.find(t => t.id === r.requirementTypeId),\r\n };\r\n });\r\n };\r\n}\r\n\r\nfunction EditRequirementsImpl(props: IProps) {\r\n const { t } = useTranslation();\r\n const [groups, setGroups] = React.useState([]);\r\n const requirements = useRemoteData(props.getRequirements, {\r\n parameters: [props.workId, props.targetType, props.targetId],\r\n disabled: props.targetId == undefined,\r\n map: associateRequirementTypes(props.requirementGroups),\r\n });\r\n\r\n const [activeIndex, _setActiveIndex] = React.useState(0);\r\n\r\n const setActiveIndex = (i: number) => {\r\n _prevActiveIndex = i;\r\n _setActiveIndex(i);\r\n }\r\n\r\n const siblingRequirements = useRemoteData(props.getRequirements, {\r\n parameters: [props.workId, props.siblingType, props.siblingId],\r\n disabled: props.siblingId == undefined,\r\n map: associateRequirementTypes(props.requirementGroups),\r\n });\r\n const parentSiblingRequirements = useRemoteData(props.getRequirements, {\r\n parameters: [props.workId, RequirementTargetType.JobHasContractor, props.siblingJobHasContractorId],\r\n disabled: props.siblingJobHasContractorId == undefined,\r\n map: associateRequirementTypes(props.requirementGroups),\r\n });\r\n\r\n const [requirementsGroups, setRequirementsGroups] = React.useState({});\r\n const [freeRequirements, setFreeRequirements] = React.useState([]);\r\n const [allRequirementTypes, setAllRequirementTypes] = React.useState([]);\r\n const dialogs = useDialogs();\r\n\r\n const _ = useSignalR({\r\n method: 'RequirementNotification',\r\n onMessage: r => {\r\n const shouldReload = r.workId === props.workId\r\n && (r.resourceId === props.targetId);\r\n // || (generalResources.indexOf(r.resourceType) >= 0));\r\n if (shouldReload) {\r\n reload();\r\n }\r\n }\r\n });\r\n\r\n const reload = async () => {\r\n if (props.targetId) {\r\n await requirements.query();\r\n }\r\n if (props.siblingId) {\r\n await siblingRequirements.query();\r\n }\r\n if (props.siblingJobHasContractorId) {\r\n await parentSiblingRequirements.query();\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n setGroups(props\r\n .requirementGroups\r\n .sort((a, b) => (a.orderValue ?? 0) - (b.orderValue ?? 0)));\r\n setAllRequirementTypes(flatten(props\r\n .requirementGroups\r\n .map(g => g.requirementTypes ?? [])));\r\n }, [props.requirementGroups]);\r\n\r\n const loadSiblingRequirements = (res: RequirementGroups) => {\r\n if (!requirements.value || !siblingRequirements.value || props.skipMirrorDependencies) {\r\n return;\r\n }\r\n const mirrorDependencies =\r\n requirements\r\n .value\r\n .filter(r => requirementHasDependency(r));\r\n\r\n const siblings = [...siblingRequirements.value ?? []];\r\n const parentSiblings = [...parentSiblingRequirements.value ?? []];\r\n\r\n for (const r of mirrorDependencies) {\r\n const requirementType = allRequirementTypes.find(t => t.id === r.requirementTypeId);\r\n if (requirementType) {\r\n const groupId = requirementType.requirementGroupId;\r\n const dep = getRequirementDependency(r);\r\n if (dep === undefined) {\r\n continue;\r\n }\r\n\r\n const sourceReq = siblings\r\n .find(s => s.requirementTypeId == dep.dependsOnRequirementId);\r\n\r\n if (!res[groupId]) {\r\n res[groupId] = [];\r\n }\r\n\r\n if (sourceReq && res[groupId]) {\r\n const sourceRequirementTypeOriginal = allRequirementTypes.find(t => t.id === sourceReq.requirementTypeId)!;\r\n const sourceRequirementType = { ...sourceRequirementTypeOriginal };\r\n sourceRequirementType.kindId = requirementType.kindId;\r\n res[groupId].push([\r\n sourceReq,\r\n sourceRequirementType,\r\n {\r\n mode: RequirementMode.RequirementWithMirrorDependency,\r\n }\r\n ]);\r\n }\r\n }\r\n }\r\n\r\n const reqsWithDependencies = requirements\r\n .value\r\n .filter(r => (r?.requirementType?.dependencies?.length ?? 0) > 0 && isMirrorRequirement(r));\r\n\r\n for (const r of reqsWithDependencies) {\r\n const requirementType = allRequirementTypes\r\n .find(t => t.id === r.requirementTypeId);\r\n if (requirementType) {\r\n const groupId = requirementType.requirementGroupId;\r\n const dep = requirementType!.dependencies![0];\r\n if (dep === undefined) {\r\n continue;\r\n }\r\n\r\n const sourceReq = parentSiblings\r\n .find(s => s.requirementTypeId == dep.dependsOnRequirementId);\r\n if (!res[groupId]) {\r\n res[groupId] = [];\r\n }\r\n\r\n if (dep.dependencyType == RequirementTypeDependencyType.IBO) {\r\n res[groupId].push([\r\n r,\r\n requirementType,\r\n {\r\n mode: RequirementMode.IBODependency,\r\n }]);\r\n }\r\n else if (sourceReq\r\n && res[groupId]\r\n && dep.dependencyType == RequirementTypeDependencyType.RequirementMustHaveBeenValidated) {\r\n const currentStatus = sourceReq.status.find(rs => rs.isCurrent);\r\n const isValidated = currentStatus?.statusTypeId == RequirementStatusTypes.VALIDATED;\r\n\r\n res[groupId].push([\r\n r,\r\n requirementType,\r\n {\r\n mode: RequirementMode.RequirementWithValidationDependency,\r\n meetsRequirements: isValidated,\r\n }]);\r\n }\r\n }\r\n }\r\n setRequirementsGroups(res);\r\n }\r\n\r\n React.useEffect(() => {\r\n const res: RequirementGroups = {};\r\n let freeR: IRequirement[] = [];\r\n\r\n if (requirements.value) {\r\n freeR = requirements\r\n .value\r\n .filter(r => r.requirementTypeId == FreeRequirementType);\r\n setFreeRequirements(freeR);\r\n\r\n const directRequirements = requirements\r\n .value\r\n .filter(r => !isMirrorRequirement(r) || props.skipMirrorDependencies);\r\n\r\n for (const r of directRequirements) {\r\n const requirementType = allRequirementTypes.find(t => t.id === r.requirementTypeId);\r\n const isFree = r.requirementTypeId == FreeRequirementType;\r\n\r\n if (requirementType) {\r\n const groupId = requirementType.requirementGroupId;\r\n const mode = isFree ? RequirementMode.FreeRequirement : RequirementMode.DirectRequirement;\r\n if (!res[groupId]) {\r\n res[groupId] = [[r, requirementType, {\r\n mode\r\n }]];\r\n }\r\n else {\r\n res[groupId].push([\r\n r,\r\n requirementType,\r\n {\r\n mode,\r\n }]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n setRequirementsGroups(res);\r\n loadSiblingRequirements(res);\r\n\r\n // tenemos los requerimientos cargados\r\n // si tenemos un callback para notificar los requerimientos pendientes lo llamamos\r\n if (props.onHasPendingRequirements) {\r\n const allRequirements: IRequirement[] =\r\n flatten(Object.values(res).map(g => g[0] as IRequirement[])).concat(freeR);\r\n const hasPendingRequirement = allRequirements.find(requirementIsPending);\r\n props.onHasPendingRequirements(hasPendingRequirement != undefined);\r\n }\r\n }, [\r\n requirements.value, props.requirementGroups, allRequirementTypes,\r\n siblingRequirements.value, parentSiblingRequirements.value,\r\n ]);\r\n\r\n React.useEffect(() => {\r\n // tenemos los requerimientos cargados\r\n // si tenemos un callback para notificar los requerimientos pendientes lo llamamos\r\n if (props.onHasPendingRequirements) {\r\n const allRequirements: IRequirement[] = flatten(\r\n Object.values(requirementsGroups)\r\n ).map(g => g[0] as IRequirement).concat(freeRequirements);\r\n const hasPendingRequirement = anyPending(allRequirements ?? []);\r\n props.onHasPendingRequirements(hasPendingRequirement);\r\n }\r\n }, [freeRequirements]);\r\n\r\n const requirementIsPending = (r: IRequirement) => {\r\n const currentStatus = r.status?.find(s => s.isCurrent);\r\n\r\n return currentStatus?.statusTypeId == RequirementStatusTypes.PENDING;\r\n }\r\n\r\n const anyPending = (allRequirements: IRequirement[]) => {\r\n const statuses = flatten(allRequirements.map(r => r.status ?? []));\r\n\r\n if (statuses == undefined || statuses.length == 0) {\r\n return false;\r\n }\r\n\r\n const anyPending = statuses.some(s => s.isCurrent && s.statusTypeId == RequirementStatusTypes.PENDING);\r\n\r\n return anyPending;\r\n }\r\n\r\n const canValidateDocuments = () => {\r\n return props.security.isGestorOrWorker() &&\r\n (requirements.value ?? []).find(requirementIsPending) != undefined;\r\n }\r\n\r\n const canValidateAllDocuments = () => {\r\n return props.security.isGestor() &&\r\n (requirements.value ?? []).find(requirementIsPending) != undefined;\r\n }\r\n\r\n const freeRequirementGroup = {\r\n id: FreeRequirementType,\r\n isActive: true,\r\n name: '',\r\n title: '',\r\n workId: props.workId,\r\n };\r\n\r\n const freeRequirementType = {\r\n id: FreeRequirementType,\r\n name: '',\r\n title: '',\r\n requirementGroupId: FreeRequirementType,\r\n workId: props.workId,\r\n targetType: props.targetType,\r\n kindId: RequirementTypeKind.Optional,\r\n isActive: true,\r\n };\r\n\r\n const freeComponents = [];\r\n\r\n if (freeRequirements.length > 0) {\r\n freeComponents.push(\r\n {freeRequirements.map((r, index) =>\r\n )}\r\n
\r\n \r\n
\r\n
);\r\n }\r\n\r\n React.useEffect(() => {\r\n renderPhoto();\r\n }, [requirements.value != undefined ? requirements.value.find(r => r.requirementType?.isResourcePicture)?.status : null]);\r\n\r\n const isEmpty = groups\r\n .find(g => requirementsGroups[g.id!]?.length > 0) == undefined && freeRequirements.length <= 0;\r\n\r\n const renderPhoto = () => {\r\n if (requirements.value != undefined) {\r\n {\r\n return requirements.value.find(r => r.requirementType?.isResourcePicture) != undefined && \r\n r.requirementType?.isResourcePicture)} />\r\n \r\n }\r\n }\r\n }\r\n\r\n const legend = (currentGroupTab: IRequirementGroup) => {\r\n if (currentGroupTab == undefined) {\r\n return null;\r\n }\r\n\r\n if (currentGroupTab.legend != '' && currentGroupTab.legend != undefined) {\r\n return
\r\n
\r\n {t('legend.header')}\r\n
\r\n
\r\n
\r\n }\r\n let url = '';\r\n\r\n if (props.workId == 21) {\r\n url = 'Requirements/' + props.workId + '/Legend.html'\r\n }\r\n\r\n if (url != '') {\r\n return
\r\n
\r\n \r\n
\r\n
\r\n }\r\n }\r\n\r\n if (isEmpty) {\r\n return null;\r\n }\r\n else {\r\n const currentGroups = groups.filter(g => requirementsGroups[g.id!]);\r\n return
\r\n {requirements.renderLoading()}\r\n\r\n {dialogs.render('validate-all', { maximized: true, title: t('Validate') }, () =>\r\n \r\n )}\r\n\r\n {canValidateAllDocuments() &&\r\n \r\n \r\n \r\n \r\n }\r\n\r\n {renderPhoto()}\r\n\r\n setActiveIndex(e.index)}>\r\n {currentGroups.map((g) => {\r\n const reqs = requirementsGroups[g.id!] ?? [];\r\n\r\n if (reqs.length > 0) {\r\n return \r\n \r\n {legend(currentGroups[activeIndex])}\r\n ;\r\n }\r\n else {\r\n return null;\r\n }\r\n }).filter(r => r != null)}\r\n\r\n {freeComponents}\r\n \r\n
\r\n }\r\n}\r\n\r\nexport const EditRequirements = React.memo(EditRequirementsImpl, (prev, next) => {\r\n return prev.work.id === next.work.id\r\n && prev.targetType == next.targetType\r\n && prev.targetId == next.targetId\r\n && prev.ctx == next.ctx;\r\n});\r\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as RequirementsStore from '../../store/requirements';\nimport { EditRequirements } from '../../components/requirements/EditRequirements';\nimport * as ContractorsStore from '../../store/contractors';\nimport * as JobsStore from '../../store/jobs';\nimport * as WorkersStore from '../../store/workers';\nimport * as MachineriesStore from '../../store/machineries';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...state.constants,\n ...RequirementsStore.plainActions,\n ...ContractorsStore.plainActions,\n ...JobsStore.plainActions,\n ...WorkersStore.plainActions,\n ...MachineriesStore.plainActions,\n appUsers: state.user.work?.users,\n requirementGroups: state.user.requirementGroups,\n requirementStatusTypes: state.user.requirementStatusTypes,\n jobId: state.jobs.selectedJob?.id,\n moduleManager: state.modules.moduleManager,\n }),\n {},\n)(EditRequirements as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport EditRequirements from '@containers/requirements/EditRequirementsContainer';\nimport { RequirementTargetType } from '@models/requirements';\n\nexport interface IProps {\n machineryId: number;\n machineryName: string;\n workId: number;\n}\n\nexport function MachineryRequirements(props: IProps) {\n return \n}","import * as React from 'react';\n\nimport {\n IContractor, ISecurity,\n} from '@models';\nimport { getContractorFromAppUser } from '@store/actions/contractors';\n\nexport default function useContractorFromAppUser(workId: number, security: ISecurity) {\n const [selfContractorId, setSelfContractorId] = React.useState();\n\n React.useEffect(() => {\n if (security.isContractor()) {\n getContractorFromAppUser(workId)\n .then((u: IContractor) => setSelfContractorId(u?.id));\n }\n }, [workId]);\n\n return selfContractorId;\n}\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as MachineriesStore from '@store/machineries';\nimport { EditMachineryForm } from '@components/machineries/EditMachineryForm';\nimport { isMachineryPropertyGroupType } from '@models';\n\nexport default connect(\n (state: ApplicationState, props: any) => ({\n workId: props.workId ?? parseInt(props.match.params.workid),\n machineryId: props.machineryId ?? parseInt(props.match.params.machineryId),\n ...state.identity,\n ...state.user,\n ...MachineriesStore.plainActions,\n moduleManager: state.modules.moduleManager,\n resourceStatusTypes: state.user.resourceStatusTypes,\n propertyGroupTypes: state.user.propertyGroupTypes.filter(isMachineryPropertyGroupType),\n }),\n MachineriesStore.actionCreators,\n)(EditMachineryForm as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport {\n G, useToast, Portal, useForm, useLoading, useTranslation,\n ValidationBuilder, useNumberState, useWorkFormSettings,\n} from '@components';\nimport { DynamicProperties } from '@components/user/DynamicProperties';\nimport {\n IPropertyGroupType, PropertyGroupObjectType, ISecurity,\n IWork, ResourceType, IFieldValidation, ModuleManager,\n} from '@models';\n\nimport './EditMachinery.scss';\nimport useContractorFromAppUser from '@components/custom/useContractorFromAppUser';\nimport { IMachinery, IMachinerySubType, IMachineryType } from '@models/resources';\nimport { delay, redirectTo } from '@utils';\n\ntype getMachineryF = (workId: number, id: number) => Promise;\n\nexport interface IProps {\n propertyGroupTypes: IPropertyGroupType[];\n getMachinery: getMachineryF;\n work: IWork;\n machinery: IMachinery;\n machineryId: number;\n reactivateMachinery: Function;\n security: ISecurity;\n saveMachinery: Function;\n machineryTypes: IMachineryType[];\n machinerySubTypes: IMachinerySubType[];\n moduleManager: ModuleManager;\n}\n\nexport interface IMachinerySubTypeWithDisabling extends IMachinerySubType {\n disabled?: boolean;\n}\n\nconst validateMachineryF = (fieldValidations: IFieldValidation[] | undefined, custom: any[]) =>\n ValidationBuilder\n .new()\n .withFieldValidations(ResourceType.Machinery, fieldValidations)\n .customValidations(custom)\n .lift();\n\nexport function EditMachineryForm(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const toast = useToast();\n const [subTypes, setSubTypes] = React.useState([]);\n const [selectedMachineryTypeId, setSelectedMachineryTypeId] = React.useState(0);\n\n const selectedSubType = useNumberState();\n\n const GRUA_AUTOPROPULSADA = 104;\n const CAMION_PLUMA = 105;\n const TURISMO_FURGONETA_Y_CAMIONES = 106;\n const MAQUINARIA_SIN_MATRICULA = 110;\n const MAQUINARIA_CON_MATRICULA = 109;\n const PLATAFORMA_ELEVADORA = 103;\n const EQUIPOS_DE_TRABAJO = 111;\n\n const settings = useWorkFormSettings({ work: props.work, scope: 'machinery' });\n\n const selfContractor = useContractorFromAppUser(props.work.id, props.security);\n\n const saveMachinery = loading.wrap(async (req: IMachinery) => {\n const resp = await props.saveMachinery(props.work.id, req);\n\n if (resp.hasValue) {\n toast.show(t('Machinery saved successfully'));\n if (props.work.id != 21) {\n await delay(2000);\n redirectTo(`/work/${props.work.id}/machineries`);\n }\n return { ok: true };\n }\n else {\n return { ok: false, message: resp.error };\n }\n });\n\n const doSave = (..._: any) => {\n saveMachinery(form.values);\n }\n\n const canSave = props.security.hasPermission('machinery.edit')\n || props.machinery.contractorId === selfContractor;\n\n const customValidations = [\n {\n name: 'licenseNumber',\n msg: 'licenseNumber is required',\n validation: (m: IMachinery) => props.moduleManager.validateData('machinery.licenseNumber', m),\n }\n ];\n\n const validateMachinery = validateMachineryF(props.work.validations, customValidations);\n\n const form = useForm({\n readonly: !canSave,\n initialValues: {\n id: props.machineryId,\n workId: props.work.id,\n name: props.machinery.name,\n code: props.machinery.code,\n description: props.machinery.description,\n machineryTypeId: props.machinery.machineryTypeId,\n machinerySubTypeId: props.machinery.machinerySubTypeId,\n isActive: props.machinery.isActive,\n contractorId: props.machinery.contractorId,\n prefixLicenseNumber: props.machinery.prefixLicenseNumber,\n licenseNumber: props.machinery.licenseNumber,\n suffixLicenseNumber: props.machinery.suffixLicenseNumber,\n properties: props.machinery.properties,\n },\n validate: validateMachinery,\n onSubmit: (data: IMachinery) => {\n return saveMachinery(data);\n }\n });\n\n React.useEffect(() => {\n selectedSubType.set(undefined);\n if (form.values.machineryTypeId) {\n const mt = props.machineryTypes.find(mt => mt.id == form.values.machineryTypeId);\n if (mt?.subTypes != undefined) {\n const st: IMachinerySubTypeWithDisabling[] = mt.subTypes;\n if (st.some(st => st.name == \"Autocarro\")) {\n st.find(st => st.name == \"Autocarro\")!.disabled = true;\n }\n }\n\n if (form.values.machineryTypeId) {\n const mt = props.machineryTypes.find(mt => mt.id == form.values.machineryTypeId);\n setSubTypes(mt?.subTypes ?? []);\n setSelectedMachineryTypeId(form.values.machineryTypeId);\n }\n else {\n setSubTypes([]);\n }\n }\n }, [form.values.machineryTypeId]);\n\n return
\n\n \n {loading.render()}\n \n\n {toast.render()}\n\n {props.machinery &&\n
\n
\n
\n {settings.show('name') &&\n \n {form.input('name', { autoFocus: true })}\n }\n {(settings.show('code') && props.work.id !== 23 || (props.work.id === 23 && [MAQUINARIA_SIN_MATRICULA, PLATAFORMA_ELEVADORA, EQUIPOS_DE_TRABAJO].includes(selectedMachineryTypeId))) &&\n \n {form.input('code')}\n }\n {(props.work.id == 21 && settings.show('description')) &&\n \n {form.textarea('description')}\n }\n \n {form.select('machineryTypeId', props.machineryTypes)}\n \n {subTypes.length > 0 &&\n \n {form.select('machinerySubTypeId', subTypes)}\n }\n {(props.work.id !== 23 || (props.work.id === 23 && [GRUA_AUTOPROPULSADA, CAMION_PLUMA, TURISMO_FURGONETA_Y_CAMIONES, MAQUINARIA_CON_MATRICULA].includes(selectedMachineryTypeId))) &&\n \n {props.work.machinerySettings?.onlyLicenseNumber == false &&\n form.inputs(\n ['prefixLicenseNumber', 'licenseNumber', 'suffixLicenseNumber'],\n {\n 'prefixLicenseNumber': { placeholder: t('Letter'), className: 'flat', containerStyle: { width: '40%' } },\n 'licenseNumber': { placeholder: t('Number'), containerClassName: '', className: 'flat' },\n 'suffixLicenseNumber': { placeholder: t('Letter'), className: 'flat-left', containerStyle: { width: '40%' } },\n }\n )}\n {props.work.machinerySettings?.subTypeMandatory == true &&\n form.input('licenseNumber')\n }\n }\n\n
\n form.setFieldValue('properties', v)}\n propertyGroupTypes={props.propertyGroupTypes} />\n
\n\n
\n\n
\n \n {canSave &&\n \n {t('Save')}\n }\n
\n
\n
\n
}\n
\n}\n","import * as React from 'react';\nimport { Route } from 'react-router';\n\nimport { IMachinery } from '@models';\nimport { DataLoader, useTranslation } from '@components';\nimport { MachineryRequirements } from '@components/machineries/MachineryRequirements';\nimport EditMachineryFormContainer from '@containers/machineries/EditMachineryFormContainer';\nimport { getIntParams } from '@utils';\n\nimport { getMachinery } from '@store/actions/machineries';\n\nexport interface IProps {\n children?: any;\n}\n\nconst WrappedMachineryRequirements = (props: any) => {\n const { t } = useTranslation();\n const { machineryid, workid } = getIntParams(props.match.params);\n\n return getMachinery(workid, machineryid)}>\n {(machinery: IMachinery) =>
\n
\n {t('Machinery requirements')}\n
\n
\n \n
\n
}\n
\n}\n\nconst WrappedMachineryForm = (props: any) => {\n const { machineryid, workid } = getIntParams(props.match.params);\n return getMachinery(workid, machineryid)}>\n {m => }\n \n}\n\nexport function MachineryRoutes(props: IProps) {\n return <>\n \n \n ;\n}","import * as React from 'react';\n\nimport {\n BreadcrumbItem,\n Panel,\n Portal,\n useDialogs,\n useLoading,\n useRemoteData,\n useToast,\n useTranslation,\n useSearch,\n useConfirm,\n} from '@components';\nimport {\n IContractor,\n IMachinery,\n IMachinerySubType,\n IMachineryType,\n IPropertyGroupType,\n ISecurity,\n IWork,\n ResourceType\n} from '@models';\nimport { redirectTo } from '@utils';\nimport './EditMachinery.scss';\nimport ForceValidationResourceContainer from '@containers/requirements/ForceValidationResourceContainer';\nimport { goToMachineryRequirements, goToMachinery, goToMachineries } from \"@components/routes\";\nimport { MachineryRoutes } from './MachineryRoutes';\n\ntype getMachineryF = (workId: number, id: number) => Promise;\n\nexport interface IProps {\n propertyGroupTypes: IPropertyGroupType[];\n getMachinery: getMachineryF;\n work: IWork;\n machinery: IMachinery;\n machineryId: number;\n reactivateMachinery: Function;\n security: ISecurity;\n saveMachinery: Function;\n machineryTypes: IMachineryType[];\n machinerySubTypes: IMachinerySubType[];\n}\n\n\nfunction EditMachineryInner(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const dialogs = useDialogs();\n const toast = useToast();\n\n const doReactivateMachinery = loading.wrap(async () => {\n await props.reactivateMachinery(props.work.id, props.machinery.id);\n goToMachineries(props.work.id);\n });\n\n const confirmActivate = useConfirm({\n message: t('resource.activate.machinery.confirm'),\n accept: (_: any) => doReactivateMachinery(),\n });\n\n const contractorData = useSearch({\n workId: props.work.id,\n search: 'machineries/contractor.get',\n filters: {\n contractorId: props.machinery.contractorId\n }\n });\n const contractor = contractorData.value && contractorData.value.length > 0\n ? contractorData.value[0]\n : undefined;\n\n const displayName = props.machinery?.name != ''\n ? props.machinery.name\n : props.machinery?.code != ''\n ? props.machinery.code\n : `${props.machinery.prefixLicenseNumber}${props.machinery.licenseNumber}${props.machinery.suffixLicenseNumber}`;\n\n return
\n redirectTo(`/work/${props.work.id}/machineries`)} />\n\n \n\n \n {loading.render()}\n \n\n {toast.render()}\n\n {props.machinery &&\n
\n \n\n
\n {contractor &&
\n
\n \n {t('Contractor')}\n
\n {contractor.name}\n
}\n\n \n \n \n {displayName}\n
} className='buttons'>\n
\n \n \n {props.security.isGestorOrContractor() && props.machinery.isActive === false &&\n }\n
\n \n {dialogs.render('force-validation', { title: t('Force resource validation'), className: 'g pd' }, () =>\n \n )}\n
\n
}\n
\n}\n\nexport function EditMachinery(props: IProps) {\n const data = useRemoteData(props.getMachinery, {\n parameters: [props.work.id, props.machineryId]\n });\n\n return
\n {data.renderLoading()}\n {data.value && }\n
\n}\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as MachineriesStore from '../../store/machineries';\nimport { isMachineryPropertyGroupType } from '@models';\nimport { EditMachinery } from '@components/machineries/EditMachinery';\n\nexport default connect(\n (state: ApplicationState, props: any) => ({\n workId: props.workId ?? parseInt(props.match.params.workid),\n machineryId: props.machineryId ?? parseInt(props.match.params.machineryid),\n ...state.identity,\n ...state.user,\n ...MachineriesStore.plainActions,\n propertyGroupTypes: state.user.propertyGroupTypes.filter(isMachineryPropertyGroupType),\n resourceStatusTypes: state.user.resourceStatusTypes,\n }),\n MachineriesStore.actionCreators,\n)(EditMachinery as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any","import * as React from 'react';\n\nimport EditRequirements from '@containers/requirements/EditRequirementsContainer';\nimport { RequirementTargetType } from '@models/requirements';\n\nexport interface IProps {\n workerId: number;\n workerName: string;\n workId: number;\n}\n\nexport function WorkerRequirements(props: IProps) {\n return \n}","import * as React from 'react';\r\n\r\nimport {\r\n G, useToast, Portal, useForm, useLoading, useTranslation,\r\n ValidationBuilder, useSearch, SignalManager\r\n} from '@components';\r\nimport { DynamicProperties } from '@components/user/DynamicProperties';\r\nimport {\r\n IWorker, IPropertyGroupType, PropertyGroupObjectType, ISecurity,\r\n IWork, ResourceType, IResourceStatusType, IFieldValidation,\r\n IWorkerSettings,\r\n} from '@models';\r\n\r\nimport { delay, flatten, redirectTo } from '@utils';\r\n\r\nimport './EditWorker.scss';\r\nimport useContractorFromAppUser from '@components/custom/useContractorFromAppUser';\r\nimport { ModuleManager } from '@models';\r\nimport { IWorkerType, IWorkerDocumentType, IContractor } from '@models/resources';\r\nimport { useWorkFormSettings } from '@components/custom/useWorkFormSettings';\r\nimport { IRequirement, IRequirementGroup, RequirementTargetType } from '@models/requirements';\r\nimport ResourcePhotoContainer from '@containers/resources/ResourcePhotoContainer';\r\n\r\ntype GetWorkerF = (workId: number, id: number) => Promise;\r\n\r\nexport interface IProps {\r\n propertyGroupTypes: IPropertyGroupType[];\r\n getWorker: GetWorkerF;\r\n hideActions?: boolean;\r\n moduleManager: ModuleManager;\r\n work: IWork;\r\n worker: IWorker;\r\n workerId: number;\r\n security: ISecurity;\r\n saveWorker: Function;\r\n reactivateWorker: Function;\r\n workerTypes: IWorkerType[];\r\n workerDocumentTypes: IWorkerDocumentType[];\r\n resourceStatusTypes: IResourceStatusType[];\r\n requirementGroups: IRequirementGroup[];\r\n getRequirements: Function;\r\n getRequirement: Function;\r\n}\r\n\r\nconst validateWorkerF = (fieldValidations: IFieldValidation[] | undefined, workerSettings: IWorkerSettings | undefined = undefined) =>\r\n ValidationBuilder\r\n .new()\r\n .notEmpty('name')\r\n .notEmpty('surname')\r\n .notEmptyIf(workerSettings?.workerTypeIsMandatory, 'workerTypeId')\r\n .withFieldValidations(ResourceType.Worker, fieldValidations)\r\n .lift();\r\n\r\nexport function EditWorkerForm(props: IProps) {\r\n const { t } = useTranslation();\r\n const loading = useLoading();\r\n const toast = useToast();\r\n\r\n const [selectedFile, setSelectedFile] = React.useState();\r\n\r\n const [pictureRequirement, setPictureRequirement] = React.useState();\r\n\r\n const settings = useWorkFormSettings({ work: props.work, scope: 'worker' });\r\n\r\n const contractorData = useSearch({\r\n workId: props.work.id,\r\n search: 'workers/contractor.get',\r\n filters: {\r\n contractorId: props.worker.contractorId,\r\n }\r\n });\r\n\r\n const initialize = async () => {\r\n const requirementTypes = flatten(props.requirementGroups.map(r => r.requirementTypes ?? []));\r\n const requirements: IRequirement[] = await props.getRequirements(props.work.id, RequirementTargetType.Worker, props.workerId);\r\n\r\n const requirement = requirements.find(r => {\r\n const rt = requirementTypes.find(rt => rt.id == r.requirementTypeId);\r\n return rt?.isResourcePicture;\r\n });\r\n setPictureRequirement(requirement);\r\n };\r\n\r\n const reload = async () => {\r\n if (pictureRequirement !== undefined) {\r\n const auxReq: IRequirement = await props.getRequirement(props.work.id, RequirementTargetType.Worker, props.work.id, pictureRequirement.id);\r\n if (auxReq.status.find(r => r.isCurrent) != pictureRequirement.status.find(r => r.isCurrent)) {\r\n setPictureRequirement(auxReq);\r\n }\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n initialize();\r\n }, []);\r\n\r\n const selfContractor = useContractorFromAppUser(props.work.id, props.security);\r\n\r\n const contractor = contractorData.value && contractorData.value.length > 0\r\n ? contractorData.value[0]\r\n : undefined;\r\n\r\n const saveWorker = loading.wrap(async (req: IWorker) => {\r\n const resp = await props.saveWorker(props.work.id, req, { imageFile: selectedFile });\r\n\r\n if (resp.hasValue) {\r\n toast.show(t('Worker saved successfully'));\r\n if (props.work.id != 21) {\r\n await delay(2000);\r\n redirectTo(`/work/${props.work.id}/workers`);\r\n }\r\n return { ok: true };\r\n }\r\n else {\r\n toast.show(resp.error, { severity: 'error' });\r\n return { ok: false, message: resp.error };\r\n }\r\n });\r\n\r\n const doSave = (..._: any) => {\r\n saveWorker(form.values);\r\n }\r\n\r\n const canSave = () => {\r\n if (props.security.isContractor() && props.work.id == 23) {\r\n return false;\r\n }\r\n else if (props.security.hasPermission('workers.save')) {\r\n return true;\r\n } else {\r\n if (props.worker.contractorId === selfContractor) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n const validateWorker = validateWorkerF(props.work.validations, props.work.workerSettings);\r\n\r\n const form = useForm({\r\n initialValues: {\r\n id: props.workerId,\r\n workId: props.work.id,\r\n name: props.worker.name,\r\n surname: props.worker.surname,\r\n code: props.worker.code,\r\n properties: props.worker.properties,\r\n isActive: props.worker.isActive == true,\r\n contractorId: props.worker.contractorId,\r\n workerTypeId: props.worker.workerTypeId,\r\n workerDocumentTypeId: props.worker.workerDocumentTypeId,\r\n },\r\n readonly: !canSave(),\r\n validate: validateWorker,\r\n onSubmit: (data: IWorker) => {\r\n return saveWorker(data);\r\n }\r\n });\r\n\r\n const renderAvatar = () => {\r\n if (pictureRequirement) {\r\n return \r\n \r\n \r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n const sm = SignalManager.create(props.work.settingsObj?.signals, 'worker');\r\n sm.current.setValues(form.values, { contractor });\r\n\r\n const filterDocumentTypes = props.moduleManager\r\n .filterDependency('worker.documentTypes', {\r\n contractor\r\n });\r\n\r\n const documentTypes = props.workerDocumentTypes\r\n .filter(filterDocumentTypes);\r\n\r\n return
\r\n \r\n {loading.render()}\r\n \r\n\r\n {toast.render()}\r\n\r\n {props.worker &&\r\n
\r\n
\r\n
\r\n \r\n {form.input('name', { autoFocus: true })}\r\n \r\n \r\n {form.input('surname')}\r\n \r\n \r\n {form.select('workerDocumentTypeId', { options: documentTypes })}\r\n \r\n \r\n {form.input('code')}\r\n \r\n {settings.show('workerTypeId') &&\r\n \r\n {form.select('workerTypeId', { options: props.workerTypes })}\r\n }\r\n
\r\n form.setFieldValue('properties', v)}\r\n isInternal={props.worker.contractorId == undefined}\r\n objectType={PropertyGroupObjectType.JobHasWorker}\r\n propertyGroupTypes={props.propertyGroupTypes} />\r\n
\r\n\r\n {renderAvatar()}\r\n\r\n
\r\n\r\n
\r\n \r\n {canSave() &&\r\n \r\n {t('Save')}\r\n }\r\n
\r\n
\r\n
\r\n
}\r\n
\r\n}\r\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as WorkersStore from '@store/workers';\nimport { EditWorkerForm } from '@components/workers/EditWorkerForm';\nimport { isContractorWorkerPropertyGroupType } from '@models';\nimport * as RequirementsStore from '@store/requirements';\n\nexport default connect(\n (state: ApplicationState, props: any) => ({\n workId: props.workId ?? parseInt(props.match.params.workid),\n workerId: props.workerId ?? parseInt(props.match.params.workerid),\n ...state.identity,\n ...state.user,\n ...WorkersStore.plainActions,\n propertyGroupTypes: state.user.propertyGroupTypes.filter(isContractorWorkerPropertyGroupType),\n resourceStatusTypes: state.user.resourceStatusTypes,\n ...RequirementsStore.plainActions\n }),\n WorkersStore.actionCreators,\n)(EditWorkerForm as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\nimport { Route } from 'react-router';\n\nimport { DataLoader, useTranslation } from '@components';\nimport { WorkerRequirements } from '@components/workers/WorkerRequirements';\nimport EditWorkerFormContainer from '@containers/workers/EditWorkerFormContainer';\nimport { IWorker } from '@models';\nimport { getIntParams } from '@utils';\n\nimport { getWorker } from '@store/actions/workers';\n\nexport interface IProps {\n children?: any;\n clearWorkerForm: Function;\n worker: IWorker;\n}\n\nconst WrappedWorkerRequirements = (props: any) => {\n const { t } = useTranslation();\n const { workerid, workid } = getIntParams(props.match.params);\n\n return getWorker(workid, workerid)}>\n {w =>
\n
\n {t('Worker requirements')}\n
\n
\n \n
\n
}\n
\n}\n\nconst WrappedWorkerForm = (props: any) => {\n const { t } = useTranslation();\n const { workerid, workid } = getIntParams(props.match.params);\n\n return getWorker(workid, workerid)}>\n {w =>
\n
\n \n
\n
}\n
\n}\n\nexport function WorkerRoutes(props: IProps) {\n return <>\n \n \n ;\n}\n","import * as React from 'react';\r\n\r\nimport {\r\n BreadcrumbItem, useToast, Panel, Portal, useLoading, useTranslation, useRemoteData,\r\n useDialogs, useSearch, useConfirm,\r\n} from '@components';\r\nimport {\r\n IWorker, IPropertyGroupType, ISecurity,\r\n IWork, ResourceType, IResourceStatusType,\r\n ModuleManager,\r\n} from '@models';\r\n\r\nimport './EditWorker.scss';\r\nimport ForceValidationResourceContainer from '@containers/requirements/ForceValidationResourceContainer';\r\nimport { ViewResourceHistory } from '@components/requirements/ViewResourceHistory';\r\nimport { IWorkerType, IWorkerDocumentType, IContractor } from '@models/resources';\r\nimport { WorkerRoutes } from './WorkerRoutes';\r\nimport { goToWorker, goToWorkers, goToWorkerRequirements } from '@components/routes';\r\nimport { EditWorkerForm } from './EditWorkerForm';\r\nimport { IRequirementGroup } from '@models/requirements';\r\n\r\ntype GetWorkerF = (workId: number, id: number) => Promise;\r\n\r\nexport interface IProps {\r\n propertyGroupTypes: IPropertyGroupType[];\r\n getWorker: GetWorkerF;\r\n hideActions?: boolean;\r\n moduleManager: ModuleManager;\r\n work: IWork;\r\n worker: IWorker;\r\n workerId: number;\r\n security: ISecurity;\r\n saveWorker: Function;\r\n reactivateWorker: Function;\r\n workerTypes: IWorkerType[];\r\n workerDocumentTypes: IWorkerDocumentType[];\r\n resourceStatusTypes: IResourceStatusType[];\r\n requirementGroups: IRequirementGroup[];\r\n getRequirements: Function;\r\n getRequirement: Function;\r\n}\r\n\r\nenum FormType {\r\n Data = 1,\r\n None = 2,\r\n}\r\n\r\nfunction EditWorkerInner(props: IProps) {\r\n const { t } = useTranslation();\r\n const loading = useLoading();\r\n const [formType, setFormType] = React.useState(FormType.Data);\r\n const toast = useToast();\r\n const dialogs = useDialogs();\r\n\r\n const doReactivateWorker = loading.wrap(async () => {\r\n await props.reactivateWorker(props.work.id, props.worker.id);\r\n goToWorkers(props.work.id);\r\n });\r\n\r\n const confirmActivate = useConfirm({\r\n message: t('resource.activate.worker.confirm'),\r\n accept: (_: any) => doReactivateWorker(),\r\n });\r\n\r\n const contractorData = useSearch({\r\n workId: props.work.id,\r\n search: 'workers/contractor.get',\r\n filters: {\r\n contractorId: props.worker.contractorId,\r\n }\r\n });\r\n\r\n const contractor = contractorData.value && contractorData.value.length > 0\r\n ? contractorData.value[0]\r\n : undefined;\r\n\r\n React.useEffect(() => {\r\n if (window.location.href.indexOf('requirements') == -1) {\r\n setFormType(FormType.Data);\r\n }\r\n else {\r\n setFormType(FormType.None);\r\n }\r\n }, [window.location.href]);\r\n\r\n const clearWorkerForm = () => setFormType(FormType.None);\r\n const loadRequirements = (w: IWorker) => {\r\n clearWorkerForm();\r\n goToWorkerRequirements(props.work.id, w.id);\r\n }\r\n\r\n const loadData = (w: IWorker) => {\r\n setFormType(FormType.Data);\r\n goToWorker(props.work.id, w.id);\r\n }\r\n\r\n return
\r\n goToWorkers(props.work.id)} />\r\n\r\n {\r\n setFormType(FormType.Data);\r\n goToWorker(props.work.id, props.worker.id);\r\n }} />\r\n\r\n \r\n {loading.render()}\r\n \r\n\r\n {toast.render()}\r\n\r\n {props.worker &&\r\n
\r\n {formType === FormType.None &&\r\n }\r\n {formType == FormType.Data &&\r\n }\r\n\r\n
\r\n {contractor &&
\r\n
\r\n \r\n {t('Contractor')}\r\n
\r\n {contractor.name}\r\n
}\r\n\r\n \r\n \r\n \r\n {props.worker?.name + \" \" + props.worker?.surname}\r\n
} className='buttons'>\r\n
\r\n \r\n \r\n {props.security.isGestorOrContractor() && props.worker.isActive === false &&\r\n }\r\n {props.moduleManager.renderComponent('worker.main.actions', props, () => null)}\r\n
\r\n \r\n {dialogs.render('force-validation', { title: t('Force resource validation'), className: 'g pd' }, () =>\r\n \r\n )}\r\n {dialogs.render('view-history', { title: t('View history'), className: 'g pd' }, () =>\r\n \r\n )}\r\n
\r\n
}\r\n
\r\n}\r\n\r\nexport function EditWorker(props: IProps) {\r\n const data = useRemoteData(props.getWorker, {\r\n parameters: [props.work.id, props.workerId]\r\n });\r\n\r\n return
\r\n {data.renderLoading()}\r\n {data.value && }\r\n
\r\n}\r\n","import * as React from 'react';\r\n\r\nimport { connect } from 'react-redux';\r\nimport { ApplicationState } from '../../store';\r\nimport * as WorkersStore from '@store/workers';\r\nimport { EditWorker } from '@components/workers/EditWorker';\r\nimport { isContractorWorkerPropertyGroupType } from '@models';\r\nimport * as RequirementsStore from '@store/requirements';\r\n\r\nexport default connect(\r\n (state: ApplicationState, props: any) => ({\r\n workId: props.workId ?? parseInt(props.match.params.workid),\r\n workerId: props.workerId ?? parseInt(props.match.params.workerid),\r\n ...state.identity,\r\n ...state.user,\r\n ...WorkersStore.plainActions,\r\n ...RequirementsStore.plainActions,\r\n moduleManager: state.modules.moduleManager,\r\n requirementGroups: state.user.requirementGroups,\r\n propertyGroupTypes: state.user.propertyGroupTypes.filter(isContractorWorkerPropertyGroupType),\r\n resourceStatusTypes: state.user.resourceStatusTypes,\r\n }),\r\n WorkersStore.actionCreators,\r\n)(EditWorker as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n","import * as React from 'react';\nimport { connect } from 'react-redux';\n\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\n\nimport { JobAuthorizeForm } from '@components/jobs/JobAuthorizeForm';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...JobsStore.plainActions,\n }),\n JobsStore.actionCreators,\n)(JobAuthorizeForm as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { R, ValidationBuilder, useForm, useLoading, useMessage, useTranslation } from '@components';\nimport { IJob, IOption, JobStatusType } from '@models';\n\ntype SaveT = (workId: number, jobId: number, statusTypeId: number, remarks: string) => Promise>;\n\nexport interface IProps {\n job: IJob;\n onCancel: Function;\n onSuccess: Function;\n saveJobStatus: SaveT;\n workId: number;\n}\n\ntype Authorization = {\n jobId: number,\n remarks: string,\n statusTypeId: JobStatusType,\n}\n\nexport function JobAuthorizeForm(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const msg = useMessage();\n\n const form = useForm({\n initialValues: {\n jobId: props.job.id,\n remarks: '',\n statusTypeId: JobStatusType.AUTHORIZED,\n },\n validate: ValidationBuilder\n .new()\n .notEmpty('remarks')\n .lift()\n });\n\n const doSave = loading.wrap(async () => {\n const res = await props.saveJobStatus(\n props.workId,\n form.values.jobId,\n form.values.statusTypeId,\n form.values.remarks);\n\n msg.set(res);\n\n if (res.hasValue) {\n props.onSuccess();\n }\n });\n\n return
\n
\n {/* \n {form.textarea('remarks', { containerStyle: {width: '100%'}, autoFocus: true , rows: 7 })}\n */}\n
\n
\n {msg.renderIfError()}\n {loading.render()}\n {props.onCancel &&\n }\n {props.onSuccess &&\n }\n
\n
\n}","import * as React from 'react';\nimport { connect } from 'react-redux';\n\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\n\nimport { JobRevokeForm } from '@components/jobs/JobRevokeForm';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...JobsStore.plainActions,\n }),\n JobsStore.actionCreators,\n)(JobRevokeForm as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any","import * as React from 'react';\n\nimport { R, ValidationBuilder, useForm, useLoading, useMessage, useTranslation } from '@components';\nimport { IJob, IOption, JobStatusType } from '@models';\n\ntype SaveT = (workId: number, jobId: number, statusTypeId: number, remarks: string) => Promise>;\n\nexport interface IProps {\n job: IJob;\n onCancel: Function;\n onSuccess: Function;\n saveJobStatus: SaveT;\n workId: number;\n}\n\ntype Authorization = {\n jobId: number,\n remarks: string;\n statusTypeId: JobStatusType,\n}\n\nexport function JobRevokeForm(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const msg = useMessage();\n\n const form = useForm({\n initialValues: {\n jobId: props.job.id,\n remarks: '',\n statusTypeId: JobStatusType.INFORMATION_LOADED,\n },\n validate: ValidationBuilder\n .new()\n .notEmpty('remarks')\n .lift()\n });\n\n const doSave = loading.wrap(async () => {\n const res = await props.saveJobStatus(\n props.workId,\n form.values.jobId,\n form.values.statusTypeId,\n form.values.remarks);\n\n msg.set(res);\n\n if (res.hasValue) {\n props.onSuccess();\n }\n });\n\n return
\n
\n {/* \n {form.textarea('remarks', { containerStyle: { width: '100%' }, className: 'e', autoFocus: true, rows: 7})}\n */}\n
\n
\n {msg.renderIfError()}\n {loading.render()}\n {props.onCancel &&\n }\n {props.onSuccess &&\n }\n
\n
\n}","import * as React from 'react';\r\n\r\nimport { R, ValidationBuilder, useForm, useLoading, useMessage, useTranslation } from '@components';\r\nimport { IJob, IOption, JobStatusType, ModuleManager, ISecurity } from '@models';\r\n\r\ntype SaveT = (workId: number, jobId: number, statusTypeId: number, remarks: string) => Promise>;\r\n\r\nexport interface IProps {\r\n job: IJob;\r\n onCancel: Function;\r\n onSuccess: Function;\r\n saveJobStatus: SaveT;\r\n workId: number;\r\n moduleManager: ModuleManager;\r\n security: ISecurity;\r\n}\r\n\r\ntype Authorization = {\r\n jobId: number,\r\n remarks: string;\r\n statusTypeId: JobStatusType,\r\n}\r\n\r\nexport function JobFinalizeFormImpl(props: IProps) {\r\n const { t } = useTranslation();\r\n const loading = useLoading();\r\n const msg = useMessage();\r\n\r\n const form = useForm({\r\n initialValues: {\r\n jobId: props.job.id,\r\n remarks: '',\r\n statusTypeId: JobStatusType.FINALIZED,\r\n },\r\n validate: ValidationBuilder\r\n .new()\r\n .notEmpty('remarks')\r\n .lift()\r\n });\r\n\r\n const doSave = loading.wrap(async () => {\r\n const res = await props.saveJobStatus(\r\n props.workId,\r\n form.values.jobId,\r\n form.values.statusTypeId,\r\n form.values.remarks);\r\n\r\n msg.set(res);\r\n\r\n if (res.hasValue) {\r\n props.onSuccess();\r\n }\r\n });\r\n\r\n return
\r\n
\r\n
\r\n
\r\n {msg.renderIfError()}\r\n {loading.render()}\r\n {props.onCancel &&\r\n }\r\n {props.onSuccess &&\r\n }\r\n
\r\n
\r\n}\r\n\r\nexport function JobFinalizeForm(props: IProps) {\r\n\r\n const ctx = {\r\n\r\n }\r\n\r\n const res = props\r\n .moduleManager\r\n .renderComponent('JobFinalizeForm', { ...props, ctx }, JobFinalizeFormImpl);\r\n\r\n return res;\r\n}","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nimport { ApplicationState } from '../../store';\r\nimport * as JobsStore from '../../store/jobs';\r\n\r\nimport { JobFinalizeForm } from '@components/jobs/JobFinalizeForm';\r\n\r\nexport default connect(\r\n (state: ApplicationState) => ({\r\n ...JobsStore.plainActions,\r\n moduleManager: state.modules.moduleManager,\r\n ...state.identity,\r\n ...state.user,\r\n }),\r\n JobsStore.actionCreators,\r\n)(JobFinalizeForm as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any","import * as React from 'react';\nimport { connect } from 'react-redux';\n\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\n\nimport { JobReactivateForm } from '@components/jobs/JobReactivateForm';\n\nexport default connect(\n (state:ApplicationState) => ({\n ...JobsStore.plainActions,\n }),\n JobsStore.actionCreators,\n)(JobReactivateForm as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any","import * as React from 'react';\n\nimport { R, ValidationBuilder, useForm, useLoading, useMessage, useTranslation, useSearch, useSearchFirst } from '@components';\nimport { IJob, IJobStatus, IOption, JobStatusType } from '@models';\nimport { m } from '@store/actions/graphql';\n\ntype SaveT = (workId: number, jobId: number, statusTypeId: number, remarks: string) => Promise>;\n\nexport interface IProps {\n job: IJob;\n onCancel: Function;\n onSuccess: Function;\n saveJobStatus: SaveT;\n workId: number;\n}\n\ntype Authorization = {\n jobId: number,\n remarks?: string;\n statusTypeId: JobStatusType,\n}\n\nexport function JobReactivateForm(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const msg = useMessage();\n\n const lastStatusSearch = useSearchFirst({\n workId: props.workId,\n search: 'jobs/lastJobStatus',\n filters: {\n jobId: props.job.id\n },\n });\n\n const lastStatus = lastStatusSearch.value;\n\n const form = useForm({\n initialValues: {\n jobId: props.job.id,\n remarks: '',\n statusTypeId: lastStatus?.jobStatusTypeId!,\n }\n });\n\n React.useEffect(() => {\n if (lastStatusSearch.value) {\n form.setFieldValue('statusTypeId', lastStatusSearch.value.jobStatusTypeId);\n }\n }, [ lastStatusSearch.value ]);\n\n const doSave = loading.wrap(async () => {\n const res = await props.saveJobStatus(\n props.workId,\n form.values.jobId,\n form.values.statusTypeId,\n form.values.remarks);\n\n msg.set(res);\n\n if (res.hasValue) {\n props.onSuccess();\n }\n });\n\n return
\n
\n {msg.renderIfError()}\n {loading.render()}\n {props.onCancel &&\n }\n {props.onSuccess &&\n }\n
\n
\n}","import * as React from 'react';\nimport { connect } from 'react-redux';\n\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\n\nimport { JobStatus } from '@components/jobs/JobStatus';\n\nexport default connect(\n (state: ApplicationState) => ({\n users: state.user.work?.users ?? [],\n ...JobsStore.plainActions,\n }),\n JobsStore.actionCreators,\n)(JobStatus as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { OverlayPanel, useTranslation, useMemoized, useRemoteData, useResolveName } from '@components';\nimport DateUtils from '@utils/date-utils';\nimport { IJob, IJobSettings, IJobStatus, IUserIdentity, JobStatusType, jobStatusTypes } from '@models';\n\nimport './JobStatus.scss';\n\ntype GetJobStatusT = (workId: number, jobId: number) => Promise;\n\nexport interface IProps {\n getJobStatus: GetJobStatusT;\n job: IJob;\n jobStatus?: IJobStatus | IJobStatus[];\n users: IUserIdentity[];\n workId: number;\n jobSettings?: IJobSettings;\n}\n\nfunction jobStatusIsArray(j: any): j is IJobStatus[] {\n return j && j.length;\n}\n\nexport function JobStatus(props: IProps) {\n const { t } = useTranslation();\n const panelRef = React.useRef();\n const status = useRemoteData(props.getJobStatus, {\n lazy: true,\n parameters: [props.workId, props.job.id]\n });\n\n const [currentStatus, setCurrentStatus] = React.useState();\n\n const resolveStatusType = useResolveName(jobStatusTypes);\n const resolveUserName = useMemoized((id: number) => {\n return props.users.find(u => u.id === id)?.userName;\n }, [props.users]);\n\n React.useEffect(() => {\n const jobStatus = props.jobStatus && jobStatusIsArray(props.jobStatus)\n ? props.jobStatus\n : props.jobStatus\n ? [props.jobStatus]\n : undefined;\n const allStatus = status.value ?? jobStatus ?? [];\n if (allStatus) {\n setCurrentStatus(allStatus.find(s => s.isCurrent));\n }\n else {\n setCurrentStatus(undefined);\n }\n }, [status.value, props.jobStatus]);\n\n const showHistory = (e: any) => {\n panelRef.current.toggle(e);\n }\n\n const allStatus = status.value ?? [props.jobStatus] ?? [];\n\n const loadAllStatus = async () => {\n if (!status.hasValues()) {\n await status.query();\n }\n }\n\n const statusDefaultName = (props.jobSettings?.skipInformationLoadedState ?? false)\n && currentStatus?.jobStatusTypeId == JobStatusType.AUTHORIZED\n ? t('job.status.inprogress')\n : resolveStatusType(currentStatus?.jobStatusTypeId);\n\n const azsa = currentStatus?.jobStatusTypeId == JobStatusType.AUTHORIZED\n ? t('job.status.authorized')\n : currentStatus?.jobStatusTypeId == JobStatusType.INFORMATION_LOADED\n ? t('job.status.informationLoaded')\n : statusDefaultName;\n\n // TODO: Remove this key\n const statusName = props.workId != 23 ? statusDefaultName : azsa;\n\n return
\n {status.renderLoading()}\n\n {currentStatus != undefined && <>\n
\n {statusName}\n
\n\n \n \n \n {allStatus.map((c, i: number) =>\n \n \n \n {resolveUserName(c.userId)}\n \n \n {DateUtils.format(c.dateTime)}\n \n \n {resolveStatusType(c.jobStatusTypeId)}\n \n )}\n \n \n \n }\n
\n}\n","import * as React from 'react';\n\nimport { Portal, RequirePermission, RequireRole, TogglePanel, useDialogs, useLoading, useRemoteData, useTranslation } from '@components';\nimport JobAuthorizeForm from '@containers/jobs/JobAuthorizeFormContainer';\nimport JobRevokeForm from '@containers/jobs/JobRevokeFormContainer';\nimport JobFinalizeForm from '@containers/jobs/JobFinalizeFormContainer';\nimport JobReactivateForm from '@containers/jobs/JobReactivateFormContainer';\nimport { IContractor, IJob, IJobHasContractor, IJobSettings, IJobStatus, ISecurity, IWork, JobStatusType, ModuleManager } from '@models';\nimport { goToJobAddContractor, goToJobInformationLoadedControl } from '../routes';\nimport { redirectTo } from '@utils';\n\nimport JobStatus from '@containers/jobs/JobStatusContainer';\n\nimport './JobPanelActions.scss';\nimport { getJobHasContractorFromAppUser, getJobHasContractorFromId } from '@store/actions/contractors';\nimport { IRequirement, RequirementStatusTypes, RequirementTargetType } from '@models/requirements';\n\nexport interface IProps {\n children?: any;\n job: IJob;\n jobSettings?: IJobSettings;\n jobStatus: IJobStatus[];\n reload: Function;\n security: ISecurity;\n clearSelectedContractor: Function;\n selectedJobHasContractor?: IJobHasContractor;\n selectedContractor: IContractor | undefined;\n workId: number;\n getContractorFromAppUser: Function;\n work: IWork;\n getRequirements: Function;\n moduleManager: ModuleManager;\n}\n\nconst loadRequirements = (workId: number, jobId: number) => {\n redirectTo(`/work/${workId}/jobs/${jobId}/requirements`);\n}\n\nfunction JobPanelActionsImpl(props: IProps) {\n const { t } = useTranslation();\n const [currentState, setCurrentState] = React.useState();\n const [selfContractor, setSelfContractor] = React.useState();\n const isNotified = React.useRef(false);\n const anyPending = React.useRef(false);\n const [canAddSubContractorState, setCanAddSubContractorState] = React.useState(true);\n\n React.useEffect(() => {\n if (props.jobStatus) {\n const c = props.jobStatus.find(s => s.isCurrent);\n setCurrentState(c);\n }\n }, [props.jobStatus]);\n\n const dialogs = useDialogs();\n\n const reloadJob = () => {\n dialogs.clear();\n props.reload();\n }\n\n const goToAddSubContractor = async () => {\n const currentJobHasContractor = await getJobHasContractorFromAppUser(props.workId, props.job.id);\n goToJobAddContractor(props.workId, props.job.id, currentJobHasContractor.id);\n }\n\n const mainDepartment = props.job.departments\n .find(r => r.isMain == true);\n\n const canSave = (policies: string = '') => {\n\n if (props.security.isGestor()) {\n return true;\n }\n\n if (policies != '' && props.security.hasPermission(policies)) {\n return true;\n }\n\n if (props.work.settingsObj?.mainContractorCanFulfillSubs && props.security.isContractor()) {\n return true;\n } else if (selfContractor) {\n return true;\n }\n\n\n return false;\n }\n\n\n React.useEffect(() => {\n const ctx = {\n job: props.job,\n security: props.security,\n workId: props.work.id,\n jobHasContractor: props.selectedJobHasContractor,\n contractor: props.selectedContractor,\n selfContractorId: props.selectedJobHasContractor?.id,\n selfJobHasContractorId: props.selectedJobHasContractor?.id,\n };\n\n props.moduleManager\n .hasPermission('job.subcontractors.add', ctx)\n .then((canAddSubContractor: boolean) => {\n setCanAddSubContractorState(canAddSubContractor);\n });\n\n }, [selfContractor]);\n\n const canFinalize = props.security.hasPermission('job.finalize')\n || props.security.hasWorker(mainDepartment?.responsibleId)\n || props.security.hasPolicy('consejero')\n || props.security.isGestor();\n\n const initialize = async () => {\n const contractor = await props.getContractorFromAppUser(props.workId);\n setSelfContractor(contractor);\n\n const allRequirements: IRequirement[] = await props.getRequirements(props.workId, RequirementTargetType.JobHasDepartment, mainDepartment?.id,);\n\n allRequirements.forEach((c: IRequirement) => {\n c.status.forEach(s => {\n if (s.isCurrent) {\n if (s.statusTypeId == RequirementStatusTypes.PENDING) {\n anyPending.current = true;\n }\n }\n });\n });\n }\n\n const setCurrentJobStatus = () => {\n const currentStatus = props.jobStatus.find(j => j.isCurrent);\n isNotified.current = currentStatus?.jobStatusTypeId == JobStatusType.INFORMATION_LOADED;\n };\n\n const canAuthorizeImpl = () => {\n if ((props.security.hasPolicy('consejero') && currentState?.jobStatusTypeId === JobStatusType.INFORMATION_LOADED)) {\n return true;\n } else if (props.security.isGestor()) {\n return true;\n }\n else if (props.security.hasPermission('job.authorize') && currentState?.jobStatusTypeId === JobStatusType.INFORMATION_LOADED) {\n return true;\n }\n return false;\n }\n\n const ctx = {\n job: props.job,\n jobState: currentState,\n security: props.security,\n };\n\n const canAuthorize = props.moduleManager.requirePermissionMemo(\n 'job.authorize',\n ctx,\n canAuthorizeImpl(),\n [currentState]);\n\n const canRevoke = () => (currentState?.jobStatusTypeId === JobStatusType.AUTHORIZED &&\n props.security.hasPolicy('consejero')) ||\n props.security.isGestor() ||\n props.security.hasPermission('job.revoke');\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n React.useEffect(() => {\n setCurrentJobStatus();\n }, [props.jobStatus]);\n\n const downloadJobInformation = () => {\n const url = `/api/${props.workId}/jobs/${props.job.id}/requirements/download`;\n window.location.href = url;\n }\n\n return
\n {dialogs.render('authorize', {\n title: t('job.authorize'), className: 'g pd', style: { minWidth: '30vw' }\n }, () =>\n )}\n\n {dialogs.render('revoke', {\n title: t('job.revoke'), className: 'g pd', style: { minWidth: '30vw' }\n }, () =>\n )}\n\n {dialogs.render('finalize', {\n title: t('job.finalize'), className: 'g pd', style: { minWidth: '30vw' }\n }, () =>\n )}\n\n {dialogs.render('reactivate', {\n title: t('job.reactivate'), className: 'g pd', style: { minWidth: '30vw' }\n }, () =>\n )}\n\n
\n\n
\n {props.security.isContractor() && (isNotified.current && !anyPending.current) &&\n \n }\n {!props.security.isContractor() &&\n \n \n }\n \n \n
\n {(canAuthorize)\n // #555: La carga de requisitos solo se puede hacer si el estado del trabajo es \"Información Cargada\"\n // * Esta condición estaba provocando que se muestre el botón\n // || props.security.hasPermission('job.authorize'))\n &&\n }\n {canRevoke() &&\n }\n {currentState?.jobStatusTypeId != JobStatusType.FINALIZED &&\n canFinalize &&\n }\n {currentState?.jobStatusTypeId == JobStatusType.FINALIZED &&\n canFinalize &&\n }\n \n
\n
\n\n
redirectTo(`/work/${props.workId}/jobs/${props.job.id}/data`)}>\n \n {t('View job data')}\n
\n\n
loadRequirements(props.workId, props.job.id)}>\n \n {t('Documentation')}\n
\n
\n\n
\n
\n \n {t('Contractors')}\n
\n \n
\n {/** CONTRATISTAS **/}\n {true &&\n }\n {(canSave('jobs.contractors.add')) &&\n }\n {(canSave('job.contractors.invite') || props.security.isContractor()) &&\n // \n redirectTo(`/work/${props.workId}/jobs/${props.job.id}/contractor-invite`)}>\n \n {t('Invite contractor')}\n }\n {/* */}\n {canSave() &&\n \n \n }\n {true &&\n }\n {(canSave() || props.security.isContractor()) &&\n \n \n }\n
\n
\n \n
\n {/** CONTRATISTAS **/}\n {true &&\n }\n {(((canSave() || props.security.isContractor()) && canAddSubContractorState)) &&\n \n \n }\n {((canSave('job.contractors.invite') || props.security.isContractor()) && canAddSubContractorState) &&\n redirectTo(`/work/${props.workId}/jobs/${props.job.id}/contractor-invite`)}>\n \n {t('Invite contractor')}\n }\n {true &&\n }\n
\n
\n
\n\n {props.selectedJobHasContractor != undefined &&\n
\n {props.selectedJobHasContractor?.contractor?.name}\n
}\n\n {/**\n * WORKERS\n * **/}\n {props.selectedJobHasContractor != undefined &&\n
\n
\n \n {t('Workers')}\n
\n
\n \n {(canSave('jobHasWorker.add') || (props.work.settingsObj?.mainContractorCanFulfillSubs && props.security.isContractor())) &&\n }\n
\n
}\n {props.selectedJobHasContractor == undefined &&\n
\n
\n \n {t('Workers')}\n
\n
\n \n {((canSave('jobHasWorker.add') && !props.security.isContractor()) || props.security.isContractor()) &&\n }\n
\n
}\n\n {/** MAQUINARIA **/}\n {props.selectedJobHasContractor != undefined &&\n
\n
\n \n {t('Machineries')}\n
\n
\n \n {canSave('jobs.machineries.add') || (props.security.isContractor() && props.work.settingsObj?.mainContractorCanFulfillSubs == true) &&\n }\n
\n
}\n {props.selectedJobHasContractor == undefined &&\n
\n
\n \n {t('Machineries')}\n
\n
\n \n {/* {(canSave('jobs.machineries.new.add') && !props.security.isContractor()) && */}\n {/* \n \n */}\n {/* } */}\n {canSave('jobs.machineries.add') &&\n }\n
\n
}\n\n {/*{props.children}*/}\n\n
\n}\n\nexport function JobPanelActions(props: IProps) {\n\n const ctx = {\n JobAuthorizeForm: JobAuthorizeForm,\n JobRevokeForm: JobRevokeForm,\n JobFinalizeForm: JobFinalizeForm,\n JobReactivateForm: JobReactivateForm,\n JobStatus: JobStatus,\n goToJobAddContractor: goToJobAddContractor,\n goToJobInformationLoadedControl: goToJobInformationLoadedControl,\n getJobHasContractorFromAppUser: getJobHasContractorFromAppUser,\n getJobHasContractorFromId: getJobHasContractorFromId,\n getRequirements: props.getRequirements,\n RequirePermission: RequirePermission,\n RequireRole: RequireRole,\n TogglePanel: TogglePanel,\n useDialogs: useDialogs,\n useLoading: useLoading,\n useRemoteData: useRemoteData,\n Portal: Portal,\n RequirementStatusTypes: RequirementStatusTypes,\n RequirementTargetType: RequirementTargetType,\n }\n\n const res = props\n .moduleManager\n .renderComponent('JobPanelActions', { ...props, ctx }, JobPanelActionsImpl);\n\n\n\n return res;\n}\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport { JobHasResourceRequirements } from '@components/jobs/JobHasResourceRequirements';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...JobsStore.plainActions,\n ...state.identity,\n ...state.user,\n workSettings: state.user.work?.settingsObj,\n }),\n JobsStore.actionCreators,\n)(JobHasResourceRequirements as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport {\n Portal, RequirePermission, useRemoteData, useTranslation,\n} from '@components';\nimport useContractorFromAppUser from '@components/custom/useContractorFromAppUser';\nimport {\n goToJobResourceCreateRequirement,\n} from '@components/routes';\nimport EditRequirements from '@containers/requirements/EditRequirementsContainer';\nimport { ISecurity, IWorkSettings } from '@models';\nimport { RequirementStatusTypes, RequirementTargetType } from '@models/requirements';\nimport { IJob, IJobHasContractor, IJobLog, JobLogType } from '@models/jobs';\nimport * as WorkerActions from '@store/actions/workers';\nimport { search } from '@store/actions/search';\n\ntype GetJobLogsT = (workId: number, jobId: number) => Promise;\n\nexport interface IProps {\n jobId: number;\n job: IJob;\n selectContractor: Function;\n getJobLogs: GetJobLogsT;\n resourceId: number;\n resourceType: number;\n resourceTitle: string;\n siblingId?: number;\n siblingType?: number;\n siblingContractorId?: number;\n siblingJobHasContractorId?: number;\n security: ISecurity;\n workId: number;\n workSettings: IWorkSettings;\n}\n\nexport function JobHasResourceRequirements(props: IProps) {\n const { t } = useTranslation();\n\n const jobLogs = useRemoteData(props.getJobLogs, {\n parameters: [props.workId, props.jobId]\n });\n\n // const [readOnly, setReadOnly] = React.useState(true);\n const [hasAccessJobInformation, setHasAccessJobInformation] = React.useState(false);\n const [resourceContractor, setResourceContractor] = React.useState();\n\n const selfContractorId = useContractorFromAppUser(props.workId, props.security);\n\n const findJobHasContractor = async (resourceType: number, resourceId: number) => {\n if (resourceType == RequirementTargetType.JobHasWorker) {\n const jobHasWorker = await search(\n props.workId,\n 'jobs/job_has_worker', {\n filters: {\n jobId: props.jobId,\n jobHasWorkerId: resourceId,\n },\n normalizeKeys: true,\n });\n const jobHasContractorId = jobHasWorker.value?.[0]?.jobHasContractorId;\n const jobHasC = props\n .job\n .contractors\n .find(c => c.id == jobHasContractorId);\n setResourceContractor(jobHasC);\n }\n else if (resourceType == RequirementTargetType.JobHasMachinery) {\n const jobHasM = await search(\n props.workId,\n 'jobs/job_has_machinery', {\n filters: {\n jobId: props.jobId,\n jobHasMachineryId: resourceId,\n },\n normalizeKeys: true,\n });\n const jobHasContractorId = jobHasM.value?.[0]?.jobHasContractorId;\n const jobHasC = props\n .job\n .contractors\n .find(c => c.id == jobHasContractorId);\n setResourceContractor(jobHasC);\n }\n }\n\n React.useEffect(() => {\n findJobHasContractor(props.resourceType, props.resourceId);\n }, [ props.resourceType, props.resourceId ]);\n\n React.useEffect(() => {\n if (jobLogs.value) {\n const jobStatus = props.job?.currentStatus?.jobStatusTypeId;\n const logs = jobLogs.value;\n const haveReadInformation = logs\n .find(l =>\n l.userId == props.security.user?.id\n && l.jobLogType == JobLogType.ACCESS_JOB_INFORMATION);\n\n setHasAccessJobInformation(haveReadInformation != null);\n }\n }, [jobLogs.value]);\n\n const createRequirement = () => {\n goToJobResourceCreateRequirement(\n props.workId,\n props.jobId,\n props.resourceType,\n props.resourceId,\n RequirementStatusTypes.NOT_LOADED);\n }\n\n const resourceIsContractor = props.resourceType == RequirementTargetType.JobHasContractor;\n\n const contractor = resourceIsContractor\n ? props.job.contractors.find(c => c.id == props.resourceId)?.contractor\n : undefined;\n\n const mainDepartment = props.job.departments\n .find(r => r.isMain == true);\n\n const canSave = (props.security.hasPermission('jobs.edit')\n || props.security.hasWorker(mainDepartment?.responsibleId));\n\n const canAddWorker = canSave || props.security.isContractor();\n\n const [isReadonly, setIsReadonly] = React.useState(true);\n\n const setContractorReadonly = () => {\n const isR = props.security.isContractor() && props.workSettings?.mainContractorCanFulfillSubs != true\n ? !(selfContractorId == props.siblingId)\n : false;\n setIsReadonly(isR);\n }\n\n const setWorkerReadonly = async () => {\n if (props.security.isContractor()) {\n const worker = await WorkerActions.getWorker(props.workId, props.siblingId ?? 0);\n const isR = props.security.isContractor() && props.workSettings?.mainContractorCanFulfillSubs != true\n ? !(selfContractorId == worker.contractorId)\n : false;\n setIsReadonly(false);\n }\n else {\n setIsReadonly(false);\n }\n }\n\n const setMachineryReadonly = async () => {\n // if (props.security.isContractor()) {\n // const machinery = await MachineryActions.getMachinery(props.workId, props.siblingId ?? 0);\n // const isR = props.security.isContractor() && props.workSettings?.mainContractorCanFulfillSubs != true\n // ? !(selfContractorId == machinery.contractorId)\n // : false;\n setIsReadonly(false);\n // }\n // else {\n setIsReadonly(false);\n // }\n }\n\n React.useEffect(() => {\n if (props.resourceType == RequirementTargetType.JobHasContractor) {\n setContractorReadonly();\n }\n else if (props.resourceType == RequirementTargetType.JobHasWorker) {\n setWorkerReadonly();\n }\n else if (props.resourceType == RequirementTargetType.JobHasMachinery) {\n setMachineryReadonly();\n }\n else {\n setIsReadonly(false);\n }\n }, [props.resourceType, props.resourceId, selfContractorId]);\n\n const permsCtx = {\n jobHasContractor: resourceContractor,\n };\n\n return <>\n {jobLogs.renderLoading()}\n \n \n \n \n \n\n \n ;\n}\n","import * as React from 'react';\n\nimport { TabPanel, useSearch, useTranslation } from '@components';\nimport useContractorFromAppUser from '@components/custom/useContractorFromAppUser';\nimport EditRequirements from '@containers/requirements/EditRequirementsContainer';\nimport { IJob, IJobHasContractor, ISecurity } from '@models';\nimport { RequirementTargetType } from '@models/requirements';\n\nexport interface IProps {\n contractors: IJobHasContractor[];\n job: IJob;\n jobId: number;\n security: ISecurity;\n workId: number;\n selectedJobHasContractor?: IJobHasContractor;\n}\n\ntype IParentRow = {\n parentJobHasContractorId: number,\n parentHierarchyLevel: number,\n parentContractorName: string,\n parentContractorId: number,\n}\n\nexport function getTabs(props: IProps) {\n const { t } = useTranslation();\n const contractorId = useContractorFromAppUser(props.workId, props.security);\n\n const [contractor, setContractor] = React.useState();\n\n const parents = useSearch({\n workId: props.workId,\n search: 'jobs/subcontractors_hierarchy',\n normalizeKeys: true,\n filters: {\n jobId: props.jobId,\n workId: props.workId,\n jobHasContractorId: props.selectedJobHasContractor?.id ?? 0,\n },\n });\n\n React.useEffect(() => {\n const mc = props.contractors.find(c => c.contractorId == contractorId);\n if (props.selectedJobHasContractor != undefined) {\n setContractor(props.selectedJobHasContractor);\n parents.doSearch();\n }\n else if (mc && props.selectedJobHasContractor == null) {\n setContractor(mc);\n }\n }, [contractorId, props.contractors, props.selectedJobHasContractor]);\n\n const tabHeader = (p: IParentRow, id: number) => {\n return (opts: any) =>\n \n \n {p.parentHierarchyLevel}\n {p.parentContractorName}\n \n ;\n }\n\n if (parents.value) {\n return parents.value.map((p, id) =>\n \n \n );\n }\n else if (contractor) {\n return [\n \n ];\n }\n else {\n return [];\n }\n}\n\nexport function JobRequirementsSubContractor(props: IProps) {\n return <>\n {getTabs(props)}\n ;\n}\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport * as User from '../../store/user';\nimport { JobRequirements } from '@components/jobs/JobRequirements';\n\nexport default connect(\n (state: ApplicationState, ownProps: any) => ({\n ...state.identity,\n ...state.user,\n job: state.jobs.selectedJob,\n ...state.jobs,\n ...User.plainActions,\n ...JobsStore.plainActions,\n moduleManager: state.modules.moduleManager,\n }),\n JobsStore.actionCreators,\n)(JobRequirements as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport {\n BreadcrumbItem, Portal, RequireRole, useRemoteData, useTranslation,\n TabPanel, TabView,\n} from '@components';\nimport {\n IJob, IJobHasDepartment, IJobHasContractor, IJobStatus, ISecurity, IWork,\n IWorkSettings,\n ModuleManager,\n} from '@models';\nimport EditRequirements from '@containers/requirements/EditRequirementsContainer';\nimport { RequirementTargetType } from '@models/requirements';\nimport { getTabs } from './JobRequirementsSubContractor';\n\nimport './JobRequirements.scss';\nimport { goToJobCreateRequirement, goToJobNotifyInformationLoaded } from \"@components/routes\";\n\nexport interface IProps {\n getJobDepartments: Function;\n getJobStatus: Function;\n job: IJob;\n jobId: number;\n moduleManager: ModuleManager;\n workId: number;\n work: IWork;\n security: ISecurity;\n selectedJobHasContractor?: IJobHasContractor;\n}\n\n// controlamos que un target tenga algun requerimiento pendiente\ntype TargetReqPending = {\n [key: number]: boolean;\n}\n\n// #762: Si el usuario es un subcontratista asociado al trabajo\n// se muestran primero los requerimientos de su contratista padre\nexport function JobRequirements(props: IProps) {\n const { t } = useTranslation();\n\n const status = useRemoteData(props.getJobStatus, {\n parameters: [props.workId, props.jobId]\n });\n\n const workSettings: IWorkSettings | undefined = props.work.settingsObj;\n\n const [currentStatus, setCurrentStatus] = React.useState(undefined);\n\n // constrolamos por targetId los requerimientos pendientes\n const [targetReqPending, setTargetReqPending] = React.useState({});\n\n const allowAlwaysNotifyInformationLoaded = workSettings?.allowAlwaysNotifyInformationLoaded ?? false;\n const reqPending = Object.values(targetReqPending).find(r => r);\n\n React.useEffect(() => {\n const current = (status.value ?? []).find(s => s.isCurrent);\n setCurrentStatus(current);\n }, [status.value]);\n\n const departments = useRemoteData(\n props.getJobDepartments,\n {\n parameters: [props.workId, props.jobId]\n });\n\n const mainDepartment = props.job?.departments?.find(r => r.isMain == true);\n\n const [canSave, setCanSave] = React.useState(false);\n const [canNotify, setCanNotify] = React.useState(false);\n\n const permCtx = {\n security: props.security,\n job: props.job,\n };\n\n const calculateCanSave = async () => {\n const p = props.security.hasPermission('job.requirements.create')\n || props.security.hasWorker(mainDepartment?.responsibleId);\n const res = await props.moduleManager.requirePermission(\n 'job.requirements.create',\n permCtx,\n p);\n\n const resN = await props.moduleManager.requirePermission(\n 'job.notify-information-loaded',\n permCtx,\n false);\n setCanSave(res ?? false);\n setCanNotify(resN ?? false);\n }\n\n React.useEffect(() => {\n calculateCanSave();\n }, [props.security, props.job]);\n\n const canSaveRequirements = props.security.hasPermission('job.requirements.upload')\n || props.security.hasWorker(mainDepartment?.responsibleId);\n\n const createRequirement = () => {\n goToJobCreateRequirement(props.workId, props.jobId);\n }\n\n const notifyInformationLoaded = () => {\n goToJobNotifyInformationLoaded(props.workId, props.jobId);\n }\n\n const contractorTabs = props.security.isContractor()\n ? getTabs({\n contractors: props.job.contractors,\n selectedJobHasContractor: props.selectedJobHasContractor,\n workId: props.workId,\n jobId: props.jobId,\n job: props.job,\n security: props.security,\n })\n : null;\n\n return
\n \n {departments.renderLoading()}\n\n \n \n {canSave &&\n }\n\n {(reqPending || allowAlwaysNotifyInformationLoaded)\n && ((props.security.isGestor()\n || props.security.hasPolicy('consejero'))\n || canSave\n || canNotify)\n && (props.security.hasPermission('job.notify-information-loaded') || canNotify) &&\n }\n \n \n\n
\n {props.security.isContractor() && <>\n \n \n {departments.value?.length === 0 &&\n
\n \n \n {t('job.departments.empty')}\n \n
}\n
\n {departments.value && departments.value.map((dep, i) =>\n <>\n {props.workId !== 23 &&
\n {t('Department')}:\n {dep.department?.name}\n \n
}\n setTargetReqPending({ ...targetReqPending, [dep.id ?? 0]: value })}\n targetId={dep.id!}\n targetTitle={dep.department?.name}\n targetType={RequirementTargetType.JobHasDepartment}\n workId={props.workId} />\n )}\n setTargetReqPending({ ...targetReqPending, [props.jobId]: value })}\n job={props.job}\n targetId={props.jobId}\n targetTitle={t('Job Requirements')}\n targetType={RequirementTargetType.Job}\n workId={props.workId} />\n
\n
\n null}>\n {/** Si somos un subcontratista accedemos primero a los requerimientos del contratista principal **/}\n {contractorTabs}\n
\n }\n {!props.security.isContractor() && <>\n {departments.value?.length === 0 &&\n
\n \n \n {t('job.departments.empty')}\n \n
}\n {departments.value && departments.value.map((dep, i) =>\n <>\n {props.workId !== 23 &&
\n {t('Department')}:\n {dep.department?.name}\n \n
}\n setTargetReqPending({ ...targetReqPending, [dep.id ?? 0]: value })}\n targetId={dep.id!}\n targetTitle={dep.department?.name}\n targetType={RequirementTargetType.JobHasDepartment}\n workId={props.workId} />\n )}\n setTargetReqPending({ ...targetReqPending, [props.jobId]: value })}\n job={props.job}\n targetId={props.jobId}\n targetTitle={t('Job Requirements')}\n targetType={RequirementTargetType.Job}\n workId={props.workId} />\n }\n
\n
\n}\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\n\nimport { Loading } from '../../components';\n\nconst Loader = (props: any) => {\n const [loading, setLoading] = React.useState(true);\n\n React.useEffect(() => {\n const jobId = props.jobId ?? parseFloat(props.match.params.jobid);\n if (!props.job || props.job.id != jobId) {\n setLoading(true);\n props.loadJob(props.work?.id, jobId);\n }\n else if (props.job?.id == jobId) {\n setLoading(false);\n }\n }, [props.id, props.work, props.job]);\n\n if (loading) {\n return ;\n }\n else {\n return React.cloneElement(props.children, { job: props.job });\n }\n}\n\nexport default connect(\n (state: ApplicationState) => ({\n work: state.user.work,\n job: state.jobs.selectedJob,\n }),\n JobsStore.actionCreators,\n)(Loader as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { BreadcrumbItem, RequireRole, G, useForm, useToast, useTranslation, ValidationBuilder } from '@components';\nimport { IContractorInvitation, IJob, ISecurity, IWork, NotificationType } from '@models';\nimport { useLoading } from '@utils/hooks';\nimport './CreateContractorInvitation.scss';\nimport dateUtils from '@utils/date-utils';\nimport { redirectTo } from '@utils';\n\nexport interface IProps {\n createContractorInvitation: Function;\n job?: IJob;\n onCancel?: Function;\n work: IWork;\n security: ISecurity;\n success: Function;\n onCreate?: Function;\n}\n\nexport const validateInvitation = (workId: number, jobId?: number, isGestorOrWorker?: boolean) => {\n if (workId == 19 && jobId != null) {\n return ValidationBuilder.new()\n .notEmpty('email')\n .email('email')\n .notEmpty('name')\n .notEmpty('startDate')\n .notEmpty('jobsDescription')\n .notEmptyIf(isGestorOrWorker, 'shipmentNumber')\n .lift()\n }\n else if(workId != 19 && jobId != null){\n return ValidationBuilder.new()\n .notEmpty('email')\n .email('email')\n .notEmpty('name')\n .notEmpty('startDate')\n .notEmpty('jobsDescription')\n .lift()\n }else{\n return ValidationBuilder.new()\n .notEmpty('email')\n .email('email')\n .notEmpty('name')\n .lift()\n }\n}\n\n\nexport function CreateContractorInvitation(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const toast = useToast();\n const workId = props.work.id;\n const jobId = props.job?.id;\n\n const form = useForm({\n initialValues: {\n workId: workId,\n jobId: props.job?.id,\n email: '',\n name: '',\n subject: t('ContractorInvitation.default.subject'),\n message: props.work.id != 23 ? t('ContractorInvitation.default.message') : t('ContractorInvitation.Azsa.message'),\n },\n validate: validateInvitation(workId, jobId, props.security.isGestorOrWorker()),\n validateOnMount: true,\n });\n\n const today = new Date();\n\n const doSendInvitation = loading.wrap(async (..._: any) => {\n const resp = await props.createContractorInvitation(props.work.id, form.values);\n if (resp?.value && jobId != null) {\n props.success({\n message: t('Contractor invitation send successfully'),\n ctx: 'global',\n action: 'create',\n });\n props.onCreate?.();\n redirectTo(`/work/${workId}/jobs/${jobId}/contractors`);\n }\n else if (resp?.value && jobId == null) {\n props.success({\n message: t('Contractor invitation send successfully'),\n ctx: 'global',\n action: 'create',\n });\n props.onCreate?.();\n }\n else {\n toast.error(t('Can not send contractor invitation'));\n }\n });\n\n const formIsValid = () => {\n if (props.job != null) {\n if ((dateUtils.compareDates(dateUtils.parseDate(form.values.startDate), dateUtils.parseDate(props.job!.startDate)) >= 0) &&\n (dateUtils.compareDates(dateUtils.parseDate(form.values.startDate), dateUtils.parseDate(props.job!.endDate!)) < 0) &&\n (dateUtils.dateISTodayOrFuture(dateUtils.parseDate(form.values.startDate)))) {\n return true;\n } else {\n return false;\n }\n } else {\n return true;\n }\n }\n\n React.useEffect(() => {\n formIsValid();\n }, [form.values.startDate]);\n\n console.log('isInvalid', !form.values.email || form.isInvalid() || loading.isLoading() || !formIsValid());\n console.log('form.isInvalid()', form.isInvalid());\n console.log('loading.isLoading()', loading.isLoading());\n console.log('!formIsValid()', !formIsValid());\n console.log('form.values.email', form.values.email);\n\n\n return
\n \n\n {toast.render()}\n\n
\n \n {form.input('name')}\n \n \n {form.input('email', { type: 'email' })}\n \n { (workId != 23 || jobId != null) &&\n \n {form.textarea('message', {readOnly: workId != 21? true : false })}\n }\n {(jobId != null) && <>\n \n
\n {form.input('startDate', { type: 'date' })}\n {form.values.startDate && !(dateUtils.compareDates(dateUtils.parseDate(form.values.startDate), dateUtils.parseDate(props.job!.startDate)) >= 0) &&\n {t('job.error.jobStartDate') + `: ${dateUtils.formatFromUtc(dateUtils.toUtc(props.job!.startDate))}`} ||\n (form.values.startDate && !(dateUtils.compareDates(dateUtils.parseDate(form.values.startDate), dateUtils.parseDate(props.job!.endDate!)) < 0)) &&\n {t('job.error.endDate') + `: ${dateUtils.formatFromUtc(dateUtils.toUtc(props.job!.endDate!))}`} ||\n form.values.startDate && !(dateUtils.dateISTodayOrFuture(dateUtils.parseDate(form.values.startDate))) &&\n {t('job.error.startDate') + `: ${dateUtils.formatFromUtc(today)}`}}\n
\n
\n \n {form.textarea('jobsDescription')}\n \n {props.work.id != 21 &&\n \n \n {form.textarea('shipmentNumber')}\n \n \n }\n }\n \n {form.errorBox()}\n \n
\n
\n {loading.render()}\n \n {t('Send invitation')}\n \n
\n
\n
\n}\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as ContractorsStore from '../../store/contractors';\nimport { CreateContractorInvitation } from '../../components/contractors/CreateContractorInvitation';\nimport * as NotificationsStore from '../../store/notifications';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...ContractorsStore.plainActions,\n work: state.user.work,\n }),\n {...ContractorsStore.actionCreators,\n ...NotificationsStore.actionCreators,\n }\n)(CreateContractorInvitation as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport {\n F, Toast,\n onNotification, useForm, useLoading, useTranslation, useWorkFormSettings,\n ValidationBuilder,\n} from '@components';\nimport { DynamicProperties } from '../user/DynamicProperties';\nimport ManageJobDepartmentsContainer from '@containers/jobs/ManageJobDepartmentsContainer';\nimport {\n IActivityType, IContractType, IDepartment, IJob, IPreventiveResource,\n IWork, IWorkShift, IWorkspace, INotification, NotificationType,\n IPropertyGroupType, PropertyGroupObjectType, IPropertyGroup, ISecurity, JobEncodingType, ModuleManager,\n} from '@models';\nimport { goToJobs } from '@components/routes';\n\nimport './JobData.scss';\nimport dateUtils from '@utils/date-utils';\n\nexport interface IProps {\n activityTypes: IActivityType[];\n contractTypes: IContractType[];\n departments: IDepartment[];\n job: IJob;\n notifications: INotification[];\n propertyGroupTypes: IPropertyGroupType[];\n onCancel: Function;\n onSuccess: Function;\n onChange: Function;\n saveJob: Function;\n security: ISecurity;\n work: IWork;\n workShifts: IWorkShift[];\n workspaces: IWorkspace[];\n preventiveResources: IPreventiveResource[];\n moduleManager: ModuleManager;\n}\n\ninterface IValidateJobOpts {\n validateWorkspaces?: boolean;\n}\n\nexport const validateJob = (data: IJob, validateOptions: IValidateJobOpts = {}, validateCode: boolean = false) => {\n const builder = ValidationBuilder\n .create(data)\n .notEmpty('workspaceId', 'Workspace is required')\n .notEmpty('name', 'Name is required')\n .notEmpty('startDate', 'Date is required')\n .notEmpty('endDate', 'Date is required')\n .notEmpty('description', 'Description is required');\n\n if (validateCode) {\n builder.notEmpty('code', 'Code is required');\n }\n\n return builder.build();\n}\n\nexport const isValid = (data: IJob) => {\n return Object.keys(validateJob(data)).length == 0;\n}\n\nfunction JobDataImpl(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading(false);\n const toast = React.useRef();\n\n const settings = useWorkFormSettings({ work: props.work, scope: 'job' });\n\n const codeIsManual = props.work.settingsObj?.jobEncodingType == JobEncodingType.Manual;\n\n onNotification({ type: NotificationType.SUCCESS }, props.notifications, (n: INotification) => {\n toast.current.show({\n severity: 'success',\n summary: t('Job saved successfully'),\n });\n });\n\n const saveJob = loading.wrap(async (req: IJob) => {\n await props.saveJob(props.work.id, req);\n });\n\n const mainDepartment = props.job.departments\n .find(r => r.isMain == true);\n\n const canSave = props.security.hasPermission('jobs.edit')\n || props.security.hasWorker(mainDepartment?.responsibleId) || props.security.isGestor();\n\n const isReadonly = props.security.isContractor() || !canSave;\n\n const jobPropertiesCreate = (props.security.hasPermission('job.properties') || !isReadonly);\n\n const propsReadonly = props.security.isContractor() || props.security.hasPolicy('editProps');\n\n const form = useForm({\n validateOnMount: true,\n initialValues: {\n id: props.job?.id ?? 0,\n name: props.job?.name ?? '',\n code: props.job?.code ?? '',\n workId: props.work.id,\n workspaceId: props.job.workspaceId,\n activityTypeId: props.job.activityTypeId,\n workShiftId: props.job.workShiftId,\n departments: props.job.departments,\n contractTypeId: props.job.contractTypeId,\n contractors: props.job.contractors,\n machineries: props.job.machineries,\n properties: props.job.properties ?? [],\n description: props.job?.description,\n startDate: props.job?.startDate,\n endDate: props.job?.endDate,\n remarks: props.job?.remarks,\n preventiveResourceId: props.job.preventiveResourceId,\n isActive: props.job.isActive == true,\n },\n readonly: isReadonly,\n validate: (data: IJob) => {\n return validateJob(data, { validateWorkspaces: props.workspaces.length > 0 }, codeIsManual)\n },\n onSubmit: (data: IJob) => {\n props.onSuccess({\n id: data.id,\n name: data.name,\n code: data.code,\n workspaceId: data.workspaceId,\n workId: data.workId,\n activityTypeId: data.activityTypeId,\n workShiftId: data.workShiftId,\n contractTypeId: data.contractTypeId,\n startDate: data.startDate,\n endDate: data.endDate,\n remarks: data.remarks,\n description: data.description,\n properties: data.properties,\n isActive: data.isActive,\n });\n return { ok: true };\n },\n onChange: props.onChange,\n });\n\n const cancel = (e: any) => {\n e.preventDefault();\n e.stopPropagation();\n\n goToJobs(props.work.id);\n }\n\n const formIsValid = () => {\n // #701: Comprobamos que al modificar la fecha, la fecha de inicio/fin no sea anterior a la fecha ya establecida y que la fecha de inicio no sea posterior a la fecha de fin\n if (dateUtils.compareDates(dateUtils.parseDate(form.values.endDate), dateUtils.parseDate(form.values.startDate)) >= 0 &&\n dateUtils.compareDates(dateUtils.parseDate(form.values.endDate), dateUtils.parseDate(props.job.endDate!)) >= 0 &&\n dateUtils.compareDates(dateUtils.parseDate(form.values.startDate), dateUtils.parseDate(props.job.startDate!)) >= 0) {\n\n return true;\n\n } else {\n\n return false;\n }\n }\n\n return \n\n \n\n
\n
\n \n
\n {form.select('workspaceId', {\n options: props.workspaces,\n containerClassName: 'e'\n })}\n \n {codeIsManual &&\n form.input('code')}\n {!codeIsManual && <>\n {props.job?.code && form.span('code')}\n }\n \n
\n
\n \n {form.input('name', { autoFocus: true })}\n \n \n \n \n {settings.show('description') &&\n \n {form.textarea('description')}\n }\n {settings.show('workShiftId') &&\n \n {form.select('workShiftId', {\n options: props.workShifts\n })}\n }\n \n
\n {form.input('startDate', { type: 'date', style: { width: '150px' } })}\n \n {form.input('endDate', { type: 'date', style: { width: '150px' } })}\n \n
\n
\n {(dateUtils.compareDates(dateUtils.parseDate(form.values.endDate), dateUtils.parseDate(form.values.startDate)) < 0) &&\n {t('job.error.endDate')}}\n {(dateUtils.compareDates(dateUtils.parseDate(form.values.endDate), dateUtils.parseDate(props.job.endDate!)) < 0) &&\n {t('job.error.endDate.beforeActualEndDate')}}\n {(dateUtils.compareDates(dateUtils.parseDate(form.values.startDate), dateUtils.parseDate(props.job.startDate!)) < 0) &&\n {t('job.error.startDate.beforeActualStartDate')}}\n {props.work.id !== 23 ?\n
\n {settings.show('activityTypeId') &&\n \n {form.select('activityTypeId', {\n options: props.activityTypes\n })}\n }\n {settings.show('contractTypeId') &&\n \n {form.select('contractTypeId', {\n options: props.contractTypes\n })}\n }\n
:\n <>\n {settings.show('activityTypeId') &&\n \n {form.select('activityTypeId', {\n options: props.activityTypes\n })}\n }\n {settings.show('contractTypeId') &&\n \n {form.select('contractTypeId', {\n options: props.contractTypes\n })}\n }\n \n }\n {settings.show('preventiveResourceId') &&\n \n {form.select('preventiveResourceId', {\n options: props.preventiveResources\n })}\n }\n \n {form.textarea('remarks')}\n \n
\n
\n
\n pg.objectType == PropertyGroupObjectType.Job)}\n onChange={(v: IPropertyGroup[]) => form.setFieldValue('properties', v)} />\n
\n
\n
\n
\n {form.errorBox()}\n
\n
\n \n {(!isReadonly || jobPropertiesCreate) &&\n
\n \n {t('Cancel')}\n \n {canSave &&\n saveJob(form.values)}>\n {t('Save')}\n }\n
\n }\n
\n ;\n}\n\nexport function JobData(props: IProps) {\n return props\n .moduleManager\n .renderComponent('JobData', props, JobDataImpl);\n}\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport { JobData } from '../../components/jobs/JobData';\n\nexport default connect(\n (state: ApplicationState) => ({\n notifications:\n state.notifications.notifications\n .filter(n => n.ctx == 'jobs.save'),\n ...state.user,\n ...state.identity,\n ...JobsStore.plainActions,\n moduleManager: state.modules.moduleManager,\n }),\n JobsStore.actionCreators,\n)(JobData as any) as any;","import * as React from 'react';\n\nimport {\n Accordion, AccordionTab, BreadcrumbItem, Chip, F,\n useDataTable, useForm, useLoading, useSearch, useStringState, useTranslation,\n useWorkFormSettings,\n ValidationBuilder\n} from '@components';\nimport {\n IJob, IWork, IContractor, IPropertyGroup, PropertyGroupObjectType, IPropertyGroupType,\n IJobHasContractor,\n ISecurity,\n ISubContractorRequest\n} from '@models';\nimport { DynamicProperties } from '../user/DynamicProperties';\nimport dateUtils from '@utils/date-utils';\nimport { ModuleManager } from '@modules';\n\nexport interface IProps {\n job: IJob;\n modules: ModuleManager;\n parentContractor: IJobHasContractor;\n propertyGroupTypes: IPropertyGroupType[];\n onCancel: Function;\n onSuccess: Function;\n saveJobHasContractor: Function;\n saveSubContractorRequest: Function;\n searchContractors: Function;\n security: ISecurity;\n work: IWork;\n getJobContractors: Function;\n}\n\nexport const validateContractor = (data: Partial, work: IWork) => {\n return ValidationBuilder.create(data)\n .notEmptyIf(work.contractorSettings?.jhcStartDateMandatory == true,'startDate', 'Date is required')\n .notEmptyIf(work.contractorSettings?.jhcDescriptionMandatory == true,'jobsDescription')\n .build();\n}\n\nconst isValid = (data: Partial, work: IWork) => {\n return Object.keys(validateContractor(data, work)).length == 0;\n}\n\nexport function JobAddContractor(props: IProps) {\n const { t } = useTranslation();\n const currentSearchTerm = useStringState();\n const loading = useLoading(false);\n\n const [activeIndex, setActiveIndex] = React.useState(0);\n const [contractors, setContractors] = React.useState([]);\n const [selectedContractor, setSelectedContractor] = React.useState();\n\n const doSearch = loading.wrap(async (term: string|undefined) => {\n const data = await props.searchContractors(props.work.id, term ?? '');\n const jobContractors: IJobHasContractor[] = await props.getJobContractors(props.work.id, props.job.id);\n for (const d of data) {\n if (jobContractors.some((jc: IJobHasContractor) => jc.contractorId == d.id)) {\n const foundContractor = jobContractors.find((jc: IJobHasContractor) => jc.contractorId == d.id);\n if (props.parentContractor == undefined && foundContractor?.parentId == undefined) {\n data.splice(data.indexOf(d), 1);\n }\n else if (props.parentContractor?.id == foundContractor?.parentId) {\n data.splice(data.indexOf(d), 1);\n }\n }\n }\n data.sort((a: IContractor, b: IContractor) => a.name.localeCompare(b.name));\n setContractors(data);\n });\n\n React.useEffect(() => {\n doSearch(currentSearchTerm.value);\n }, [currentSearchTerm.value]);\n\n React.useEffect(() => {\n setActiveIndex(selectedContractor ? 1 : 0);\n }, [selectedContractor]);\n\n //TODO: CHECK SAVE SUBCONTRACTOR ?\n\n const saveSubContractorRequest = loading.wrap(async (data: Partial) => {\n const inputData: ISubContractorRequest = {\n workId: props.work.id,\n jobId: props.job?.id,\n jobsDescription: data.jobsDescription!,\n shipmentNumber: data.shipmentNumber!,\n jobHasContractorId: data.parentId!,\n sourceContractorId: props.parentContractor?.id,\n targetContractorId: data.contractorId!,\n properties: data.properties,\n };\n const resp = await props.saveSubContractorRequest(props.work.id, inputData);\n\n if (resp.hasValue) {\n props.onSuccess('Contractor requested successfully');\n return { ok: true };\n }\n else {\n return { ok: false, message: t(resp.error) };\n }\n });\n\n const settings = useWorkFormSettings({work: props.work, scope: 'contractor'});\n\n const saveNewContractor = loading.wrap(async (data: Partial) => {\n if (data.startDate == null)\n {\n data.startDate = new Date;\n }\n const resp = await props.saveJobHasContractor(props.work.id, data);\n\n if (resp.hasValue) {\n props.onSuccess('Contractor requested successfully');\n return { ok: true };\n }\n else {\n return { ok: false, message: t(resp.error) };\n }\n });\n\n const form = useForm>({\n initialValues: {\n jobId: props.job.id,\n parentId: props.parentContractor?.id,\n properties: [],\n },\n validateOnMount: true,\n validate: (data: Partial) => {\n return validateContractor(data, props.work);\n },\n onSubmit: (data: Partial) => {\n data.contractorId = selectedContractor?.id;\n\n if (props.security.isContractor()) {\n return saveSubContractorRequest(data);\n }\n else {\n return saveNewContractor(data);\n }\n },\n });\n\n const contractorsTable = useDataTable({\n columns: [\n 'code',\n 'name',\n ...props.modules.injectDataColumns('jobHasContractors.add.list', {workId: props.work.id}),\n ],\n actions: [\n {text: 'Select', headerStyle: {width: '116px'}, className: 'alt slim', onClick: setSelectedContractor},\n ],\n data: contractors,\n className: 'center-column'\n });\n\n const noShipmentNumber = settings.show('shipmentNumber') && props.parentContractor == undefined;\n\n return <>\n {!props.parentContractor &&\n }\n\n {props.parentContractor &&\n \n {t('Add sub contractor')}\n \n }\n\n setActiveIndex(e.index)}>\n \n
\n
\n \n {loading.render()}\n
\n {contractorsTable()}\n
\n
\n \n {selectedContractor &&\n \n
\n
\n \n \n {selectedContractor?.name}\n \n \n \n \n {form.input('startDate', { type: 'date'})}\n \n \n {form.textarea('jobsDescription')}\n \n {/** Solo mostramos el numero de pedido en los contratistas\n * principales\n */}\n {noShipmentNumber &&\n \n {form.textarea('shipmentNumber')}\n }\n
\n\n
\n form.setFieldValue('properties', properties)} />\n
\n
\n
\n\n
\n {form.errorBox()}\n
\n {(props.work.contractorSettings?.jhcStartDateMandatory == true) &&\n
\n {!(dateUtils.compareDates(dateUtils.parseDate(form.values.startDate), dateUtils.parseDate(props.job.startDate as any)) >= 0) &&\n \n {t('La fecha no puede ser anterior a la fecha de inicio de contrato')}\n ||\n !(dateUtils.dateISTodayOrFuture(dateUtils.parseDate(form.values.startDate))) &&\n \n {t('La fecha no puede ser anterior a la del día de hoy')}\n ||\n !(dateUtils.compareDates(dateUtils.parseDate(form.values.startDate), dateUtils.parseDate(props.job.endDate as any)) < 0) &&\n \n {t('La fecha no puede ser mayor a la fecha de fin de contrato')}\n \n }\n
\n }\n
\n \n {loading.render()}\n
\n props.onCancel()}>\n {t('Cancel')}\n \n {props.work.contractorSettings?.jhcStartDateMandatory == true &&\n = 0) ||\n !(dateUtils.compareDates(dateUtils.parseDate(form.values.startDate), dateUtils.parseDate(props.job.endDate as any)) < 0) ||\n !(dateUtils.dateISTodayOrFuture(dateUtils.parseDate(form.values.startDate))))\n }\n type='submit'\n className='primary'>\n {t('Create')}\n \n }\n {props.work.contractorSettings?.jhcStartDateMandatory == false &&\n \n {t('Create')}\n \n }\n
\n
\n }\n
\n \n ;\n}\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as ContractorsStore from '../../store/contractors';\nimport * as JobsStore from '../../store/jobs';\nimport { JobAddContractor } from '../../components/jobs/JobAddContractor';\nimport { isJobHasContractorPropertyGroupType } from '../../models';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...JobsStore.plainActions,\n ...ContractorsStore.plainActions,\n security: state.identity?.security,\n modules: state.modules.moduleManager,\n propertyGroupTypes: state.user.work?.propertyGroupTypes?.filter(isJobHasContractorPropertyGroupType),\n }),\n JobsStore.actionCreators,\n)(JobAddContractor as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { Tag, useOverlay, useResolveName, useTranslation } from '@components';\nimport { ResourceType } from '@models';\nimport { resourceStatusTypes } from '@models/resources';\nimport { ViewResourceHistory } from \"@components/requirements/ViewResourceHistory\";\n\nexport interface IProps {\n currentStatusType: number;\n resourceId: number;\n resourceType: ResourceType;\n workId: number;\n showResourceType?: boolean;\n}\n\nexport function ResourceStatus(props: IProps) {\n\n const { t } = useTranslation();\n\n const history = useOverlay({\n className: 'sm pd',\n style: { minWidth: '300px' },\n render: () =>\n ,\n });\n\n const resolveStatusType = useResolveName(resourceStatusTypes, { translate: true });\n\n return
\n
\n \n
\n {history.render()}\n
;\n}\n","import * as React from 'react';\n\nimport EditRequirements from '@containers/requirements/EditRequirementsContainer';\nimport { DynamicProperties } from '@components/user/DynamicProperties';\nimport {\n FieldsBox,\n G,\n Panel,\n Portal,\n RequirePermission,\n useDialogs,\n useForm,\n useLoading,\n useRemoteData,\n useResolveCountryAndRegion,\n useResolveName,\n useToast,\n useTranslation,\n} from '@components';\nimport {\n IActivityType,\n IConstants,\n IJob,\n IJobHasContractor,\n ILegalForm,\n IPropertyGroup,\n IPropertyGroupType,\n IWork,\n PropertyGroupObjectType,\n ResourceType\n} from '@models';\nimport { RequirementTargetType } from '@models/requirements';\nimport ForceValidationResourceContainer from '@containers/requirements/ForceValidationResourceContainer';\nimport { ViewResourceHistory } from '@components/requirements/ViewResourceHistory';\nimport { redirectTo } from '@utils';\nimport { ResourceStatus } from '@components/common/ResourceStatus';\n\nexport interface IProps {\n activityTypes: IActivityType[];\n constants: IConstants;\n contractor: IJobHasContractor;\n getJobHasContractor: (workId: number, jobId: number, relationId: number) => Promise,\n job: IJob;\n legalForms: ILegalForm[];\n onCancel: Function;\n saveJobHasContractor: Function;\n propertyGroupTypes: IPropertyGroupType[];\n work: IWork;\n}\n\ntype FormData = Partial;\n\nenum FormType {\n Data = 0,\n AccessData = 1,\n Requirements = 2,\n}\n\nexport function EditJobHasContractor(props: IProps) {\n const loading = useLoading();\n const { t } = useTranslation();\n const toast = useToast();\n\n const jobHasContractor = useRemoteData(\n props.getJobHasContractor, {\n parameters: [props.work.id, props.job.id, props.contractor.id]\n });\n\n const [formType, setFormType] = React.useState(FormType.Data);\n\n const dialogs = useDialogs();\n const activityType = useResolveName(props.activityTypes);\n const legalForm = useResolveName(props.legalForms);\n const countryRegion = useResolveCountryAndRegion(props.constants.countries);\n\n const save = loading.wrap(async (req: FormData) => {\n const resp = await props.saveJobHasContractor(props.work.id, req);\n if (resp.hasValue) {\n toast.show(t('Contractor saved successfully'));\n return { ok: true };\n }\n else {\n return { ok: false, message: resp.error };\n }\n });\n\n const doSave = (..._: any) => {\n save(form.values);\n }\n\n const form = useForm({\n initialValues: {\n id: props.contractor.id,\n jobId: props.job.id,\n startDate: props.contractor.startDate,\n jobsDescription: props.contractor.jobsDescription,\n contractorId: props.contractor.contractorId,\n contactName: props.contractor.contactName,\n contactSurname: props.contractor.contactSurname,\n contactEmail: props.contractor.contactEmail,\n contactPhone: props.contractor.contactPhone,\n shipmentNumber: props.contractor.shipmentNumber,\n properties: props.contractor.properties ?? [],\n },\n onSubmit: function(data: FormData) {\n return save(data);\n }\n });\n\n const showRequirements = () => {\n redirectTo(`/work/${props.work.id}/jobs/${props.job.id}/contractor/${props.contractor.id}/requirements`);\n }\n\n return
\n \n \n
\n \n \n \n
\n {props.contractor.contractor.name}\n
}>\n
\n \n \n \n \n \n
\n \n \n\n \n
    \n
  • {props.contractor.contractor.name}
  • \n
\n
\n {dialogs.render('force-validation', { title: t('Force resource validation'), className: 'g pd' }, () =>\n \n )}\n {dialogs.render('view-history', { title: t('View history'), className: 'g pd' }, () =>\n \n )}\n\n {jobHasContractor.renderLoading()}\n\n {toast.render()}\n\n {formType == FormType.Data && <>\n
\n {t('Edit contractor')}\n
\n
\n
\n \n {props.contractor.contractor.name}\n \n \n {props.contractor.contractor.code}\n \n \n {legalForm(props.contractor.contractor.legalFormId)}\n \n \n {activityType(props.contractor.contractor.activityTypeId)}\n \n \n {form.input('jobsDescription')}\n \n \n {form.input('startDate', { type: 'date' })}\n \n \n {form.input('shipmentNumber')}\n \n \n
\n
\n \n \n {props.contractor.contractor.address}\n \n \n {countryRegion(props.contractor.contractor)}\n \n \n {props.contractor.contractor.postalCode}\n \n \n\n \n \n {form.input('contactName')}\n \n \n {form.input('contactSurname')}\n \n \n {form.input('contactEmail')}\n \n \n {form.input('contactPhone')}\n \n \n
\n
\n\n
\n form.setFieldValue('properties', v)} />\n
\n
\n
\n
\n \n
\n props.onCancel()}>\n {t('Cancel')}\n \n \n {t('Save')}\n \n
\n
\n }\n\n {formType == FormType.Requirements &&
\n {jobHasContractor.value &&\n }\n
}\n
\n}\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport { EditJobHasContractor } from '../../components/jobs/EditJobHasContractor';\nimport { hasPermission } from '../../utils/security';\nimport { isJobHasContractorPropertyGroupType } from '../../models';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...JobsStore.plainActions,\n activityTypes: state.user.activityTypes,\n constants: state.constants,\n propertyGroupTypes: state.user.propertyGroupTypes\n .filter(isJobHasContractorPropertyGroupType),\n hasPermission: (p: string) => hasPermission(p, {\n user: state.identity?.user,\n work: state.user.work,\n explicit: true,\n }),\n legalForms: state.user.legalForms,\n resourceStatusTypes: state.user.resourceStatusTypes,\n }),\n JobsStore.actionCreators,\n)(EditJobHasContractor as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport { EditJobHasContractorFields } from '../../components/jobs/EditJobHasContractorFields';\nimport { hasPermission } from '../../utils/security';\nimport { isJobHasContractorPropertyGroupType } from '../../models';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...JobsStore.plainActions,\n activityTypes: state.user.activityTypes,\n constants: state.constants,\n propertyGroupTypes: state.user.propertyGroupTypes\n .filter(isJobHasContractorPropertyGroupType),\n hasPermission: (p: string) => hasPermission(p, {\n user: state.identity?.user,\n work: state.user.work,\n explicit: true,\n }),\n legalForms: state.user.legalForms,\n resourceStatusTypes: state.user.resourceStatusTypes,\n }),\n JobsStore.actionCreators,\n)(EditJobHasContractorFields as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { useForm, useLoading, useMessage, useTranslation } from '@components';\nimport { IJob, IJobHasContractor } from '@models';\nimport dateUtils from '@utils/date-utils';\n\nexport interface IProps {\n children: Function;\n job: IJob;\n jobHasContractor: IJobHasContractor;\n saveJobHasContractor: Function;\n onClose: Function;\n onSuccess: Function;\n workId: number;\n isDate: boolean;\n}\n\nexport function EditJobHasContractorFields(props: IProps) {\n const loading = useLoading();\n const messages = useMessage();\n const { t } = useTranslation();\n\n const form = useForm>({\n initialValues: {\n id: props.jobHasContractor.id,\n jobId: props.job.id,\n startDate: props.jobHasContractor.startDate,\n jobsDescription: props.jobHasContractor.jobsDescription,\n contractorId: props.jobHasContractor.contractorId,\n contactName: props.jobHasContractor.contactName,\n contactSurname: props.jobHasContractor.contactSurname,\n contactEmail: props.jobHasContractor.contactEmail,\n contactPhone: props.jobHasContractor.contactPhone,\n shipmentNumber: props.jobHasContractor.shipmentNumber,\n properties: props.jobHasContractor.properties ?? [],\n },\n });\n\n const doSave = loading.wrap(async () => {\n const res = await props.saveJobHasContractor(props.workId, form.values);\n messages.set(res);\n\n if (res.hasValue) {\n props.onSuccess();\n }\n });\n\n var today = new Date();\n\n const formIsValid = () => {\n if (((dateUtils.compareDates(dateUtils.parseDate(form.values.startDate), dateUtils.parseDate(props.job.startDate as any)) >= 0) &&\n (dateUtils.compareDates(dateUtils.parseDate(form.values.startDate), dateUtils.parseDate(props.job.endDate as any)) <= 0 )) && props.isDate){\n return true;\n }\n else if (!props.isDate) {\n return true;\n }\n else {\n return false;\n }\n }\n\n return
\n
\n {props.children(form)}\n
\n {!((dateUtils.compareDates(dateUtils.parseDate(form.values.startDate), dateUtils.parseDate(props.job.startDate as any)) >= 0) &&\n (dateUtils.compareDates(dateUtils.parseDate(form.values.startDate), dateUtils.parseDate(props.job.endDate as any)) <= 0)) && props.isDate &&\n {t('La fecha no puede ser anterior a la del día de hoy o a las fecha de inicio y fin del contrato')}\n }\n {messages.renderIfError()}\n
\n {loading.render()}\n \n \n
\n
\n}","import * as React from 'react';\n\nimport {\n BreadcrumbItem, useConfirm, Portal, useLoading, useTreeTable, useTranslation,\n useRemoteData, useSearch, Tag, useSignalR, useScheduler, useDialogs, useOverlay,\n useSearchFilters,\n usePermissions,\n} from '@components';\nimport EditJobHasContractorContainer from '@containers/jobs/EditJobHasContractorContainer';\nimport EditJobHasContractorFields from '@containers/jobs/EditJobHasContractorFieldsContainer';\nimport {\n IContractor, IJob, IJobHasContractor, IResourceStatusType, ISecurity, IUserIdentity,\n IWork, ResourceType, ModuleManager, IWorkSettings,\n} from '@models';\nimport { redirectTo } from '@utils';\nimport { ResourceStatus } from '@components/common/ResourceStatus';\nimport { ResourceStatusType, resourceStatusTypes } from '@models/resources';\nimport { goToJobMachineries, goToJobSubContractors, goToJobWorkers } from '@components/routes';\nimport { IRequirementNotification } from '@models/requirements';\nimport ForceValidationResourceContainer from '@containers/requirements/ForceValidationResourceContainer';\nimport DateUtils from '@utils/date-utils';\nimport './JobContractors.scss';\nimport { useWorkFormSettings } from '@components/custom/useWorkFormSettings';\n\nexport interface IProps {\n activateJobHasContractor: Function;\n appUsers: IUserIdentity[];\n deleteJobHasContractor: Function;\n getContractorFromAppUser: Function;\n getJobContractors: Function;\n getJobHasContractor: Function;\n getJobContractorsViewModel: Function;\n hasPermission: Function;\n job: IJob;\n jobHasContractor?: IJobHasContractor;\n loadInvitations?: boolean;\n onRequestAddContractor: Function;\n parentId?: number;\n refreshContractors: Function;\n removeJobHasContractor: Function;\n resourceStatusTypes: IResourceStatusType[];\n security: ISecurity;\n selectJobHasContractor: Function;\n selectedJobHasContractor?: IJobHasContractor;\n getJobHasContractorFromId: Function;\n sourceId?: number;\n work: IWork;\n getContractor: Function;\n getJob: Function;\n selectedContractor?: IContractor;\n moduleManager: ModuleManager;\n clearSelectedContractor: Function;\n}\n\nenum ContractorType {\n CONTRACTOR = 1,\n INVITATION = 2,\n CONTRACTOR_REQUEST = 3,\n}\n\ntype RowType = {\n id: number;\n jobId: number;\n contractorId: number;\n countContractorMachineries: number;\n countContractorWorkers: number;\n countContractorSubcontractors: number;\n countWorkersAuthorized: number;\n contractorName: string;\n contractorStartDate: string;\n contractorStatusType: number;\n jobHasContractorId: number;\n totalCount: number;\n validatedCount: number;\n workId: number;\n name: string;\n dateTime: string;\n currentStatusType: number;\n shipmentNumber?: string;\n parentId?: number;\n jobsDescription?: string;\n type: ContractorType;\n key?: string;\n hierarchyLevel: number;\n};\n\nfunction isJobContractor(r: RowType) {\n return r.type == ContractorType.CONTRACTOR;\n}\n\nfunction isInvitation(r: RowType) {\n return r.type == ContractorType.INVITATION;\n}\n\nfunction isContractorRequest(r: RowType) {\n return r.type == ContractorType.CONTRACTOR_REQUEST;\n}\n\nexport function JobContractorsImpl(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const dialogs = useDialogs();\n\n const [canRemoveState, setCanRemoveState] = React.useState(false);\n\n const editOverlay = useOverlay({\n className: 'overlay-min',\n requireData: true,\n render: (d: any) =>\n editOverlay.clear()}\n isDate={d.type === 'date'}\n onSuccess={initialize}>\n {(form: any) =>
\n {d.type === 'date' && form.input('startDate', { autoFocus: true, type: 'date' })}\n {d.type === 'shipment-number' && form.input('shipmentNumber', { autoFocus: true })}\n {d.type === 'description' && form.textarea('jobsDescription')}\n
}\n \n });\n const initialize = () => {\n reload();\n editOverlay.clear();\n }\n const completeStatusList = [...resourceStatusTypes, { id: 6, name: t('job.status.pending') }]\n\n const filters = useSearchFilters({\n security: props.security,\n workId: props.work.id,\n name: 'jobs/contractors',\n references: {\n resourceStatusTypes: completeStatusList,\n },\n persist: true,\n });\n\n const currentJhc = props.security.isContractor()\n ? props.job.contractors.find(c => props.security.hasContractor(c.contractorId))\n : null;\n\n const parentId = props.parentId\n ?? props.selectedJobHasContractor?.id\n ?? currentJhc?.id;\n\n const query = useSearch({\n workId: props.work.id,\n search: 'jobs/contractors',\n normalizeKeys: true,\n map: (r: RowType, i: number) => ({ ...r, key: i + '_' + r.id + '_' + r.parentId }),\n filters: filters.merge({\n jobId: props.job.id,\n workId: props.work.id,\n parentId: props.parentId,\n jobHasContractorId: parentId,\n }),\n });\n const selfJobHasContractorsIds = React.useRef([]);\n const selfContractorId = React.useRef(0);\n\n const [selectedContractor, setSelectedContractor] = React.useState(\n props.jobHasContractor);\n\n const scheduler = useScheduler();\n\n const _ = useSignalR({\n method: 'RequirementNotification',\n onMessage: r => {\n if (r.workId == props.work.id) {\n scheduler.schedule(reload, 2500);\n }\n }\n });\n\n const reload = () => {\n query.doSearch(\n filters.merge({\n jobId: props.job.id,\n workId: props.work.id\n })\n );\n }\n\n const doRemoveContractor = loading.wrap(async (i: IJobHasContractor) => {\n await props.removeJobHasContractor(props.work.id, props.job.id, i.id);\n props.refreshContractors();\n\n reload();\n });\n\n const doDeleteContractor = loading.wrap(async (i: IJobHasContractor) => {\n await props.deleteJobHasContractor(props.work.id, props.job.id, i.id);\n props.refreshContractors();\n\n reload();\n });\n\n const reactivateContractor = loading.wrap(async (i: IJobHasContractor) => {\n await props.activateJobHasContractor(props.work.id, props.job.id, i.contractorId, i.id);\n props.refreshContractors();\n\n reload();\n });\n\n const confirmRemove = useConfirm({\n message: t('Are you sure to finalize contractor from this job?'),\n accept: doRemoveContractor\n });\n\n const confirmDelete = useConfirm({\n message: t('Are you sure to remove contractor from this job?'),\n accept: doDeleteContractor\n });\n\n const [canAddSubContractorState, setCanAddSubContractorState] = React.useState(true);\n\n const mainDepartment = props.job.departments.find(r => r.isMain == true);\n\n const jobContractorProps = {\n security: props.security,\n moduleManager: props.moduleManager,\n work: props.work,\n };\n\n const canSave = props.security.hasPermission('jobs.edit')\n || props.security.hasWorker(mainDepartment?.responsibleId);\n\n const perms = usePermissions(jobContractorProps, { ctx: { job: props.job } }, {\n EditContractorValues: { name: 'jobHasContractor.edit', default: canSave },\n canRemove: 'job.contractors.remove',\n authorize: {\n name: 'canForceJobHasContractorStatus',\n default: props.security.hasPermission('jobs.resources.validate') &&\n props.security.isGestorOrWorker()\n },\n });\n\n const canEdit = perms.get('EditContractorValues');\n\n const canRemove = props.security.hasPermission('jobHasContractor.remove')\n || props.security.hasWorker(mainDepartment?.responsibleId)\n || props.security.hasPolicy('consejero');\n\n const calculateCanRemove = async () => {\n const res = await props.moduleManager.requirePermission('jobHasContractor.remove', {\n security: props.security,\n job: props.job,\n work: props.work,\n }, canRemove);\n\n setCanRemoveState(res ?? false);\n };\n\n React.useEffect(() => {\n calculateCanRemove();\n }, []);\n\n const canForceJobHasContractorStatusContext = {\n props: props,\n };\n\n const workSettings: IWorkSettings | undefined = props.work.settingsObj;\n const HideByDefaultEnded = workSettings?.hideByDefaultEnded ?? false;\n\n React.useEffect(() => {\n if (props.selectedJobHasContractor) {\n const ctx = {\n job: props.job,\n security: props.security,\n workId: props.work.id,\n jobHasContractor: props.selectedJobHasContractor,\n contractor: props.selectedContractor,\n selfContractorId: props.selectedJobHasContractor?.id,\n selfJobHasContractorId: props.selectedJobHasContractor?.id,\n };\n props.moduleManager\n .requirePermission('job.subcontractors.add', ctx, true)\n .then((canAddSubContractor: boolean | undefined) => {\n setCanAddSubContractorState(canAddSubContractor ?? false);\n });\n }\n }, [props.selectJobHasContractor]);\n\n const canAddContractor = (contractorId: number) => {\n //TODO: Remove key\n if (props.work.id !== 23) {\n return props.security.hasPermission('job.addSubc') || canSave || selfContractorId.current === contractorId;\n } else {\n return canAddSubContractorState && props.security.hasPermission('job.addSubc');\n }\n }\n\n const cannotRemoveItself = (contractorId: number) => selfJobHasContractorsIds.current.includes(contractorId);\n\n const renderStatus = (r: RowType) => {\n return ;\n };\n\n const selectJobHasContractor = (rel: IJobHasContractor | undefined) => {\n if (!props.security.isContractor() && rel) {\n props.selectJobHasContractor(rel);\n }\n }\n\n const loadRequirements = (jobHasContractor: RowType) => {\n selectJobHasContractor(props.job.contractors.find(c => c.id == jobHasContractor.id));\n redirectTo(`/work/${props.work.id}/jobs/${props.job.id}/jobContractor/${jobHasContractor.id}/requirements`);\n };\n\n const applyFilters = (r: any) => {\n const fltrs = filters.filters;\n const fs = [\n [ fltrs.resourceStatusTypes != undefined, r.currentStatusType == filters.filters.resourceStatusTypes ],\n [ fltrs.name?.length > 2, r.name?.toLowerCase().includes(filters.filters.name?.toLowerCase()) ],\n ];\n\n return fs.every(f => f[0] ? f[1] : true);\n }\n\n const settings = useWorkFormSettings({ work: props.work, scope: 'contractor' });\n\n const dataTable = useTreeTable({\n expand: true,\n columns: [\n {\n title: 'Contractor', render: (c: any) =>\n isJobContractor(c)\n ? \n {c.name}\n \n : (c.targetName != undefined)\n ? \n \n {' ' + c.targetName}\n \n : isContractorRequest(c)\n ? \n {' ' + c.contractorName}\n \n : isInvitation(c)\n ? {c.name}\n : '',\n className: 'jhc',\n //TODO: remove Key\n sortKey: props.work.id != 21 ? 'contractor.name' : undefined\n },\n {\n title: 'job.relation.start-date',\n render: (d: any) =>\n isJobContractor(d)\n ? \n {canEdit && !props.security.isContractor() && editOverlay.show(e, { type: 'date', data: d })}\n className='pointer fas fa-edit' />}\n {DateUtils.format(d.startDate)}\n \n : isContractorRequest(d)\n ? {DateUtils.format(d.contractorStartDate)}\n : undefined,\n className: 'td-md job-start-date',\n sortKey: props.work.id != 21 ? 'startDate' : undefined\n },\n settings.show('shipmentNumber')\n ? {\n title: 'job.contractor.shipment-number',\n render: (d: any) =>\n isJobContractor(d) && d.parentId == null\n || d.shipmentNumber ? \n {(canEdit && !props.security.isContractor() || props.security.hasPolicy('compras')) &&\n applyFilters(d) && editOverlay.show(e, { type: 'shipment-number', data: d })}\n className={!applyFilters(d) ? 'disabled-tag' : 'pointer fas fa-edit'} />}\n {d.shipmentNumber}\n : null,\n className: 'td-md job-shipment-number'\n }\n : undefined,\n {\n title: 'Jobs description',\n render: (d: any) =>\n \n {isJobContractor(d) && canEdit && !props.security.isContractor() && editOverlay.show(e, { type: 'description', data: d })}\n className={!applyFilters(d) ? 'disabled-tag' : 'pointer fas fa-edit'} />}\n {isJobContractor(d) &&\n {d.jobsDescription}}\n {isContractorRequest(d) &&\n {d.jobsDescription}}\n ,\n className: 'td-md job-description'\n },\n {\n title: 'currentStatusType',\n render: (d: any) =>\n (isJobContractor(d) && applyFilters(d))\n ? renderStatus(d)\n :
\n \n
,\n className: 'td-md current_status_type',\n sortKey: props.work.id != 21 ? 'currentStatusType' : undefined\n },\n {\n title: 'Documentation', className: 'td-indicator center',\n render: (d: any) => {\n if (isJobContractor(d)) {\n return {\n if (applyFilters(d)) { loadRequirements(d) }\n }} className={applyFilters(d) ? 'pointer' : ''}>\n \n
\n }\n else {\n return null;\n }\n }\n },\n {\n title: 'Workers',\n className: 'td-indicator center',\n render: (d: any) => {\n const authorized = d.countWorkersAuthorized ?? 0;\n const total = d.countContractorWorkers ?? 0;\n if (isJobContractor(d)) {\n return {\n if (applyFilters(d)) {\n selectJobHasContractor(d);\n goToJobWorkers(props.work.id, d.jobId, { relationId: d.id });\n }\n }}>\n \n \n }\n else {\n return null;\n }\n }\n },\n {\n title: 'Machineries',\n className: 'td-indicator center',\n render: (d: any) => {\n const authorized = d.countMachineriesAuthorized ?? 0;\n const total = d.countContractorMachineries ?? 0;\n\n if (isJobContractor(d)) {\n const tag = ;\n return {\n if (applyFilters(d)) {\n selectJobHasContractor(d);\n goToJobMachineries(props.work.id, d.jobId, { relationId: d.id });\n }\n }}>\n {tag}\n \n }\n else {\n return null;\n }\n }\n },\n {\n title: 'Subcontractors',\n className: 'td-indicator center',\n render: (d: any) => {\n const authorized = d.countSubContractorsAuthorized ?? 0;\n const total = d.countContractorSubContractors ?? 0;\n if (isJobContractor(d)) {\n const tag = ;\n return {\n if (applyFilters(d)) {\n selectJobHasContractor(d);\n goToJobSubContractors(props.work.id, d.jobId, d.id)\n };\n }}>\n {tag}\n \n }\n else {\n return null;\n }\n // if (isJobContractor(d)) {\n // const data = contractorsViewModel.value?.find((m: any) => m.id == d.id);\n // return {\n // if (applyFilters(d)) {\n // selectJobHasContractor(d);\n // goToJobSubContractors(props.work.id, d.jobId, d.id)\n // };\n // }}>\n // \n // \n // }\n // else {\n // return null;\n // }\n }\n }\n ],\n actions: [\n canAddContractor\n ? {\n icon: 'plus',\n onClick: d => props.onRequestAddContractor(d),\n tooltip: t('Add sub contractor'),\n //TODO: remove Key\n disabled: r => r.hierarchyLevel >= 4 || (!applyFilters(r) || !isJobContractor(r) || !canAddContractor(r.contractorId) || props.work.id == 23 && r.contractorId != selfContractorId.current) && !props.security.isGestor()\n } : undefined,\n (canRemoveState)\n ? {\n icon: r => isJobContractor(r) && r.currentStatusType === ResourceStatusType.FINALIZED\n ? 'fas fa-redo'\n : 'pi pi-minus-circle',\n onClick: (r, event) => isJobContractor(r) && r.currentStatusType === ResourceStatusType.FINALIZED\n ? reactivateContractor(r)\n : confirmRemove(r, event),\n tooltip: r => isJobContractor(r) && r.currentStatusType === ResourceStatusType.FINALIZED\n ? t('Reactivate')\n : t('Finalize job contractor'),\n disabled: r => !applyFilters(r) || !isJobContractor(r) || cannotRemoveItself(r.id),\n }\n : undefined,\n (perms.get('canRemove'))\n ? {\n icon: 'trash',\n onClick: confirmDelete,\n tooltip: t('Remove job contractor'),\n disabled: r => !applyFilters(r) || !isJobContractor(r) || cannotRemoveItself(r.id),\n }\n : undefined,\n perms.get('authorize')\n ? {\n icon: `pi pi-check${props.work.id == 23 ? '-square' : ''}`,\n tooltip: t('Force resource validation'),\n onClick: r => dialogs.showFromEvent('force-validation', r)(),\n disabled: r => !applyFilters(r)\n }\n : undefined\n\n ], //pi-check-square\n data: query.value ?? [],\n toggleApplications: true,\n });\n\n return
\n \n
\n {filters.renderAsButton({ className: 'fas fa-filter pointer' })}\n
\n
\n setSelectedContractor(undefined)} />\n\n {dialogs.render('force-validation', { title: t('Force resource validation') }, (d: IJobHasContractor) =>\n {\n dialogs.clear();\n reload();\n }}\n resourceType={ResourceType.JobHasContractor}\n resourceId={d.id} />\n )}\n\n {editOverlay.render()}\n\n {selectedContractor &&\n setSelectedContractor(undefined)}\n work={props.work} />}\n {!selectedContractor && <>\n {dataTable()}\n }\n
\n}\n\nexport const JobContractors = React.memo(JobContractorsImpl, (prev, next) => {\n return prev.work.id === next.work.id;\n});\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '@store/jobs';\nimport * as ContractorsStore from '@store/contractors';\nimport { JobContractors } from '@components/jobs/JobContractors';\nimport { hasPermission } from '../../utils/security';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...JobsStore.plainActions,\n ...ContractorsStore.plainActions,\n ...state.identity,\n ...state.user,\n moduleManager: state.modules.moduleManager,\n hasPermission: (p: string) => hasPermission(p, {\n user: state.identity?.user,\n work: state.user.work,\n explicit: true,\n }),\n ...state.jobs,\n }),\n JobsStore.actionCreators,\n)(JobContractors as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { TreeSelect } from '@components';\nimport { ICountry, countriesToNode } from '@models';\n\nexport interface IProps {\n className?: string;\n countries: ICountry[];\n data: IHasCountryAndRegion;\n onChange?: Function;\n}\n\ninterface IHasCountryAndRegion {\n countryId?: number;\n regionId?: number;\n countyId?: number;\n}\n\nconst getSelectedNodes = (w: IHasCountryAndRegion | undefined) =>\n w ? [w.countryId, w.regionId, w.countyId].filter(d => d != undefined)\n : undefined;\n\nexport function CountryRegionSelect(props: IProps) {\n const countryNodes = countriesToNode(props.countries);\n\n const [data, setData] = React.useState(props.data);\n\n const [selectedRegionNode, setSelectedRegionNode] =\n React.useState(getSelectedNodes(props.data));\n\n const onSelectedRegionNodeChanged = (ev: any) => {\n setSelectedRegionNode(ev.value);\n const [countryId, regionId, countyId] =\n ev.value\n .concat([undefined, undefined, undefined])\n .slice(0, 3);\n\n setData(d => {\n const newData = { countryId, regionId, countyId };\n props.onChange && props.onChange(newData);\n setData({ ...d, ...newData });\n return newData;\n });\n }\n\n return ;\n}","import * as React from 'react';\n\nimport {\n FieldsBox, G, useForm, useLoading, useTranslation,\n ValidationBuilder,\n} from '@components';\nimport { CountryRegionSelect } from '@components/common/CountryRegionSelect';\nimport { IActivityType, IConstants, IContractorRequest, IJob, ILegalForm, IPropertyGroup, IPropertyGroupType, IWork, PropertyGroupObjectType } from '@models';\nimport { BreadcrumbItem } from '../custom/BreadcrumbItem';\nimport { DynamicProperties } from '../user/DynamicProperties';\n\nexport interface IProps {\n activityTypes: IActivityType[];\n constants: IConstants;\n createContractorRequest: Function;\n job: IJob;\n legalForms: ILegalForm[];\n propertyGroupTypes: IPropertyGroupType[];\n onCancel: Function;\n onSuccess: Function;\n work: IWork;\n}\n\nexport const validateContractorRequest = (data: IContractorRequest) => {\n return ValidationBuilder.create(data)\n .notEmpty('contractorName')\n .notEmpty('contractorCode')\n .notEmpty('startDate')\n .notEmpty('legalFormId')\n .build();\n}\n\nexport function JobRequestContractor(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading(false);\n\n const saveContractor = loading.wrap(async (req: IContractorRequest) => {\n const resp = await props.createContractorRequest(props.work.id, req);\n\n if (resp.hasValue) {\n props.onSuccess('Contractor requested successfully');\n return { ok: true };\n }\n else {\n return { ok: false, message: resp.error };\n }\n });\n\n const form = useForm({\n initialValues: {\n contractorName: '',\n contractorCode: '',\n jobId: props.job.id,\n legalFormId: 0,\n properties: [],\n },\n validate: validateContractorRequest,\n onSubmit: (data: IContractorRequest) => {\n return saveContractor(data);\n },\n });\n\n const updateRegion = ({countryId, regionId, countyId}: any) => {\n form.setFieldValue('countryId', countryId);\n form.setFieldValue('regionId', regionId);\n form.setFieldValue('countyId', countyId);\n }\n\n return \n \n\n
\n
\n
\n
\n \n {form.input('contractorName', {autoFocus: true})}\n \n \n {form.input('contractorCode')}\n \n
\n
\n \n {form.select('legalFormId', {\n options: props.legalForms,\n })}\n \n \n {form.select('activityTypeId', {\n options: props.activityTypes,\n })}\n \n
\n
\n \n \n {form.input('address', { containerStyle: {gridColumn: '2/5'}})}\n \n \n \n \n \n {form.input('postalCode')}\n \n \n \n \n {form.input('startDate', { type: 'date', style: {width: '150px'}})}\n \n \n {form.textarea('jobsDescription')}\n \n \n \n \n {form.input('contactName')}\n \n \n {form.input('contactSurname')}\n \n \n {form.input('contactPhone')}\n \n \n {form.input('contactEmail')}\n \n \n
\n {form.errorBox()}\n
\n
\n\n form.setFieldValue('properties', v)} />\n
\n
\n \n
\n props.onCancel()}>\n {t('Cancel')}\n \n \n {t('Create')}\n \n
\n
\n ;\n}","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport { JobRequestContractor } from '../../components/jobs/JobRequestContractor';\nimport { isJobHasContractorPropertyGroupType } from '../../models';\n\nexport default connect(\n (state: ApplicationState) => ({\n activityTypes: state.user.activityTypes,\n constants: state.constants,\n propertyGroupTypes: state.user.propertyGroupTypes.filter(isJobHasContractorPropertyGroupType),\n legalForms: state.user.legalForms,\n ...JobsStore.plainActions,\n }),\n JobsStore.actionCreators,\n)(JobRequestContractor as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport {\n G, Select, useForm, useLoading, useTranslation,\n ValidationBuilder,\n} from '@components';\nimport {\n IActivityType, IConstants, IContractorRequest, IJob, ILegalForm, IPropertyGroup, IPropertyGroupType, IWork, PropertyGroupObjectType\n} from '@models';\nimport { DynamicProperties } from '../user/DynamicProperties';\nimport { CountryRegionSelect } from '../common/CountryRegionSelect';\n\nexport interface IProps {\n activityTypes: IActivityType[];\n constants: IConstants;\n createContractorRequest: Function;\n data: IContractorRequest;\n job: IJob;\n legalForms: ILegalForm[];\n onCancel: Function;\n onSuccess: Function;\n propertyGroupTypes: IPropertyGroupType[];\n work: IWork;\n}\n\nexport const validateContractorRequest =\n ValidationBuilder.new()\n .notEmpty('contractorName')\n .notEmpty('contractorCode')\n .notEmpty('startDate')\n .notEmpty('legalFormId')\n .lift();\n\nenum Result {\n ACCEPT = 1,\n REJECT = 2,\n}\n\nconst exclude = (obj: any, props: string[]) => {\n const res: any = {};\n for (const k of Object.keys(obj)) {\n if (!props.includes(k) && !k.startsWith('__')) {\n res[k] = obj[k];\n }\n }\n\n return res;\n}\n\nexport function ProcessContractorRequest(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading(false);\n\n const saveContractor = loading.wrap(async (req: IContractorRequest) => {\n const resp = await props.createContractorRequest(props.work.id, req);\n\n if (resp.hasValue) {\n props.onSuccess('Contractor processed successfully');\n return { ok: true };\n }\n else {\n return { ok: false, message: resp.error };\n }\n });\n\n const form = useForm({\n initialValues: props.data,\n validate: validateContractorRequest,\n onSubmit: (data: IContractorRequest) => {\n if (result == Result.ACCEPT) {\n data.accepted = true;\n data.acceptedDate = new Date();\n }\n else {\n data.accepted = false;\n data.discarded = true;\n data.discardedDate = new Date();\n }\n return saveContractor(exclude(data, ['appUserId']));\n },\n });\n\n const [result, setResult] = React.useState();\n const resultOptions = [\n {value: Result.ACCEPT, label: t('Create contractor')},\n {value: Result.REJECT, label: t('Reject')}\n ];\n\n const hasError = form.hasError() || result == undefined;\n\n const updateRegion = ({countryId, regionId, countyId}: any) => {\n form.setFieldValues({countryId, regionId, countyId});\n }\n\n return \n
\n
\n \n setResult(e.target.value)}\n options={resultOptions}\n optionLabel='label'\n optionValue='value'\n placeholder={t('Request result')}\n value={result} />\n \n {result == Result.REJECT && \n {form.textarea('resultMessage')}\n }\n \n {form.input('contractorName', {autoFocus: true})}\n \n \n {form.input('contractorCode')}\n \n \n {form.select('legalFormId', {\n options: props.legalForms,\n })}\n \n \n {form.select('activityTypeId', {\n options: props.activityTypes,\n })}\n \n
\n
\n
{t('Address')}
\n
\n \n {form.input('address')}\n \n \n {form.input('postalCode')}\n \n \n \n \n
\n
\n
\n
{t('Contact data')}
\n
\n \n {form.input('contactName')}\n \n \n {form.input('contactSurname')}\n \n \n {form.input('contactPhone')}\n \n \n {form.input('contactEmail')}\n \n
\n
\n
\n
{t(\"Job data\")}
\n
\n \n {form.input('startDate', { type: 'date'})}\n \n \n {form.textarea('jobsDescription')}\n \n
\n
\n
\n
\n\n form.setFieldValue('properties', p)} />\n
\n
\n {form.errorBox()}\n
\n
\n \n
\n props.onCancel()}>\n {t('Cancel')}\n \n \n {t('Create')}\n \n
\n
\n \n}","import * as React from 'react';\n\nimport {\n F, Tag, Tooltip,\n useTranslation, useLoading, useDataTable, useFormDialog, useSearch,\n} from '@components';\nimport {\n IActivityType, IConstants, IJob, ILegalForm, IPropertyGroupType, ISecurity, IWork,\n PropertyGroupObjectType\n} from '@models';\nimport * as DateUtils from '@utils/date-utils';\nimport { BreadcrumbItem } from '../custom/BreadcrumbItem';\nimport { DynamicProperties } from '../user/DynamicProperties';\nimport { ProcessContractorRequest } from './ProcessContractorRequest';\nimport { isWorker } from 'cluster';\n\nexport interface IProps {\n activityTypes: IActivityType[];\n constants: IConstants;\n loadJob: Function;\n getJobContractorRequests: Function;\n hasPermission: Function;\n legalForms: ILegalForm[];\n onProcessSuccess: Function;\n processContractorRequest: Function;\n propertyGroupTypes: IPropertyGroupType[];\n job: IJob;\n work: IWork;\n security: ISecurity;\n}\n\ntype IContractorRequest = any;\n\nconst ContractorRequestData = ({ contractor, propertyGroupTypes }: {\n contractor: IContractorRequest,\n propertyGroupTypes: IPropertyGroupType[],\n}) => {\n const { t } = useTranslation();\n\n return
\n
\n \n {contractor.contractorName}\n \n \n {contractor.contractorCode}\n \n \n {contractor.contactName}\n \n \n {contractor.contactSurname}\n \n \n {contractor.contactPhone}\n \n \n {contractor.contactEmail}\n \n \n {DateUtils.format(contractor.startDate)}\n \n \n {contractor.description ?? contractor.jobsDescription}\n \n \n {contractor.address}\n \n \n {contractor.postalCode}\n \n
\n\n \n
\n}\n\nexport function JobContractorRequests(props: IProps) {\n const loading = useLoading(true);\n const { t } = useTranslation();\n const [requests, setRequests] = React.useState([]);\n const [requestToProcess, setRequestToProcess] = React.useState();\n const [invitations, setInvitations] = React.useState([]);\n const isContractor = props.security.isContractor();\n const dialog = useFormDialog({\n editTitle: t('Contractor data'),\n className: 'md'\n });\n\n const refresh = async () => {\n await initialize();\n await props.loadJob(props.work.id, props.job.id);\n props.onProcessSuccess();\n }\n\n const invitationSearch = useSearch({\n workId: props.work.id,\n search: isContractor ? 'jobs/subcontractor.invitations.users' : 'jobs/subcontractor.invitations.users.workers',\n filters: {\n jobId: props.job.id,\n workId: props.work.id,\n }\n });\n\n const initialize = loading.wrap(async () => {\n const data = await props.getJobContractorRequests(props.work.id, props.job.id);\n const invisSearch = await invitationSearch.doSearch()\n const invitations: any[] = [];\n invisSearch.forEach((item: any) => {\n invitations.push({\n startDate: item.startDate,\n source: item.source,\n contractorName: item.contractorName,\n jobsDescription: item.description,\n accepted: item.accepted,\n contactEmail: item.email,\n description: item.jobsDescription,\n })\n });\n data.forEach((element: any) => {\n element.source = element.contactName\n });\n setInvitations(invitations);\n setRequests(data);\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n React.useEffect(() => {\n setRequests(requests.concat(invitations));\n }, [invitations]);\n\n const canProcessRequests = props.hasPermission('jobs.contractors.processrequests');\n\n const dataTable = useDataTable({\n columns: [\n { title: 'Date', field: 'startDate', delegate: 'date', className: 'center' },\n { title: t('job.contractor-request.source'), field: 'source', className: 'center' },\n { title: t('job.contractor-request.target'), field: 'contractorName' },\n {\n title: t('Job'),\n render: c => {\n return \n {c.jobCode}\n {c.jobsDescription}\n \n },\n },\n props.work.id == 21 ?\n {\n title: 'Status', className: 'center', render: (d: IContractorRequest) =>\n d.accepted\n ? \n : d.discarded\n ?
\n \n \n {d.resultMessage}\n \n
\n : d.discarded != null && d.jobId == null ? : \n } : undefined,\n ],\n actions: [\n { icon: 'info', onClick: dialog.showEdit },\n canProcessRequests ? { icon: 'play', onClick: setRequestToProcess, disabled: (d: IContractorRequest) => d.accepted || d.discarded } : undefined\n ],\n data: requests,\n });\n\n return
\n \n\n {requestToProcess &&\n setRequestToProcess(undefined)}\n onSuccess={() => refresh()}\n propertyGroupTypes={props.propertyGroupTypes}\n job={props.job}\n work={props.work} />}\n\n {!requestToProcess && <>\n {loading.renderBox()}\n {dataTable()}\n {dialog.render(\n (c: IContractorRequest) =>\n )}\n }\n
\n}","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport { JobContractorRequests } from '../../components/jobs/JobContractorRequests';\nimport { hasPermission } from '../../utils/security';\nimport { isJobHasContractorPropertyGroupType } from '../../models';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...JobsStore.plainActions,\n ...state.identity,\n ...state.user,\n activityTypes: state.user.activityTypes,\n constants: state.constants,\n propertyGroupTypes: state.user.propertyGroupTypes.filter(isJobHasContractorPropertyGroupType),\n hasPermission: (p: string) => hasPermission(p, {\n user: state.identity?.user,\n work: state.user.work,\n explicit: true,\n }),\n legalForms: state.user.legalForms,\n }),\n JobsStore.actionCreators,\n)(JobContractorRequests as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport { JobContractorSubRequests } from '../../components/jobs/JobContractorSubRequests';\nimport * as ContractorsStore from '../../store/contractors';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...JobsStore.plainActions,\n constants: state.constants,\n ...state.identity,\n ...state.user,\n ...ContractorsStore.plainActions,\n }),\n JobsStore.actionCreators,\n)(JobContractorSubRequests as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport {\n useDataTable, useSearch, useTranslation, Tag, useLoading\n} from '@components';\n\nimport DateUtils from '@utils/date-utils';\nimport { IJob, IJobHasContractor, ISecurity, IUserIdentity } from '@models';\nimport { IContractor } from '@models/resources';\n\nexport interface IProps {\n jobId: number;\n workId: number;\n identity: IUserIdentity;\n job: IJob;\n getContractorFromAppUser: Function;\n getJobContractors: Function;\n security: ISecurity;\n}\n\nexport function JobContractorSubRequests(props: IProps) {\n const { t } = useTranslation();\n\n const loading = useLoading();\n\n const userIsSubcontractor = React.useRef(false);\n\n const jobHasContractor = React.useRef();\n const [canRender, setCanRender] = React.useState(false);\n\n const initialize = loading.wrap(async () => {\n const contractorUserData = await props.getContractorFromAppUser(props.workId);\n\n const jobContractorsData = await props.getJobContractors(props.workId, props.jobId);\n\n const subContractors = await jobContractorsData.filter((x: IJobHasContractor) => x.parentId !== null);\n\n const isSubcontractor = await subContractors.some((jc: IJobHasContractor) => jc.contractorId === (contractorUserData?.id ?? 0));\n\n const jobContractorData = await jobContractorsData.find((jc: IJobHasContractor) => jc.contractorId === (contractorUserData?.id ?? 0));\n userIsSubcontractor.current = isSubcontractor && props.security.isContractor();\n jobHasContractor.current = jobContractorData;\n\n setCanRender(props.security.isContractor()\n ? jobHasContractor.current != null\n : true);\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const requestSearch = useSearch({\n workId: props.workId,\n search: 'jobs/subcontractor.requests',\n filters: {\n jobId: props.jobId,\n workId: props.workId,\n contractorId: userIsSubcontractor ? (jobHasContractor.current?.parentId) : null,\n }\n });\n\n const invitationSearch = useSearch({\n workId: props.workId,\n search: 'jobs/subcontractor.invitations.contractors',\n filters: {\n jobId: props.jobId,\n workId: props.workId,\n jobHasContractorId: userIsSubcontractor ? (jobHasContractor.current?.parentId) : null,\n }\n });\n\n const [data, setData] = React.useState([]);\n\n const renderStatus = (d: any) => {\n if (d.acceptedByContractor || d.accepted) {\n return {t('job.contractor-request.accepted-by-contractor')};\n }\n else if (d.acceptedByWork) {\n return {t('job.contractor-request.accepted-by-work')};\n }\n else if (d.accepted == null && d.jobId == null) {\n return {t('Pending') + ' (' + t('Invitation') + ')'};\n }\n else if ((d.rejected && d.reject != null) || (!d.accepted && d.accepted != null)) {\n return {t('Rejected')};\n }\n else {\n return {t('Pending')}\n }\n }\n\n function filteredInvitations() {\n let parentIds: any[] = [];\n parentIds.push(jobHasContractor.current?.id ?? undefined);\n invitationSearch.value.map((x: any) => parentIds.includes(x.parentId) ? parentIds.push(x.id) : undefined);\n requestSearch.value.map((x: any) => parentIds.includes(x.parentId) ? parentIds.push(x.id) : undefined);\n\n if (requestSearch.isCompleted && invitationSearch.isCompleted) {\n const filteredRequests = requestSearch\n .value\n .filter((i: any) =>\n jobHasContractor.current\n ? i.sourceContractorId == jobHasContractor.current?.contractor.id\n || parentIds.includes(i.parentId)\n || jobHasContractor.current?.contractorId == i.targetContractorId\n : true);\n const filteredInvitations = invitationSearch\n .value\n .filter((i: any) =>\n jobHasContractor.current\n ? i.sourceId == jobHasContractor.current?.contractor.id\n || parentIds.includes(i.parentId)\n : true);\n const concated: any[] = filteredRequests\n .concat(filteredInvitations)\n .sort((a: any, b: any) => b.dateTime.localeCompare(a.dateTime));\n return concated;\n }\n else {\n return [];\n }\n }\n\n React.useEffect(() => {\n setData(filteredInvitations());\n }, [requestSearch.value, invitationSearch.value, jobHasContractor.current]);\n\n const dataTable = useDataTable({\n columns: [\n { title: t('Date'), className: 'td-datetime-sm', field: 'dateTime', delegate: 'date' },\n { title: t('job.contractor-request.source'), render: (d: any) => jobHasContractor ? d.sourceId == jobHasContractor.current?.id || d.sourceContractorId == jobHasContractor.current?.contractorId ? {d.sourceName} : d.sourceName : d.sourceName },\n { title: t('job.contractor-request.target'), render: (d: any) => jobHasContractor ? d.targetContractorId == jobHasContractor.current?.id ? {d.targetName} : d.targetName : d.targetName },\n {\n title: t('Job'),\n render: (d: any) => \n \n {d.jobName}\n \n },\n { title: t('Status'), className: 'td-datetime-sm', render: renderStatus },\n ],\n data: data,\n loading: requestSearch.isCompleted && invitationSearch.isCompleted,\n });\n\n return
\n {canRender && dataTable()}\n
;\n}\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport { JobInformationLoaded } from '@components/jobs/JobInformationLoaded';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...JobsStore.plainActions,\n ...state.identity,\n ...state.user,\n }),\n JobsStore.actionCreators,\n)(JobInformationLoaded as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { BreadcrumbItem, useTranslation } from \"@components\";\nimport { IJob, ISecurity } from '@models';\n\nimport './JobInformationLoaded.scss';\n\nexport interface IProps {\n job: IJob;\n jobId: number;\n security: ISecurity;\n workId: number;\n}\n\nexport function JobInformationLoaded(props: IProps) {\n const { t } = useTranslation();\n\n return
\n \n\n
\n
\n {t('job.information-loaded.download')}\n
\n\n \n\n \n {t('Download')}\n \n
\n
\n}","import * as React from 'react';\n\nimport * as UserActions from '@store/actions/user';\n\nimport {\n RequireRole, SplitButton, Tag, useConfirm, useDataTable, useDialogs,\n useLoading,\n usePermissions,\n useResolveName, useSearch, useTranslation,\n useWorkFormSettings,\n} from '@components';\nimport {\n goToJob,\n goToJobAddContractor,\n goToJobContractors,\n goToJobDocumentation,\n goToJobSubContractors,\n goToJobEditContractorRequirements, goToJobEditMachineryRequirements,\n goToJobEditWorkerRequirements, goToJobInformationLoadedControl,\n goToJobMachineries,\n goToJobWorkers\n} from '@components/routes';\nimport {\n IActivityType, IJob, ISecurity, IWorkspace,\n ResourceType, IWork, IJobHasContractor, ModuleManager,\n} from '@models';\nimport DateUtils from '@utils/date-utils';\nimport { ResourceStatus } from '@components/common/ResourceStatus';\nimport { redirectTo } from '@utils';\nimport './JobCard.scss';\nimport { IContractor, IMachineryType, IWorkerDocumentType, IWorkerType } from '@models/resources';\nimport {\n getJobHasContractorFromAppUser, getJobHasContractorFromId, getJobHasContractors\n} from '@store/actions/contractors';\nimport JobStatus from '@containers/jobs/JobStatusContainer';\nimport { getJobHasContractor } from '@store/actions/jobs';\n\ntype IJobAdditional = {\n jobHasContractorId?: number;\n jobHasContractorCurrentStatusType?: number;\n jobStatusTypeId?: number;\n shipmentNumber?: string;\n departmentName?: string;\n responsibleName?: string;\n contractorsTotal?: number;\n contractorsValidated?: number;\n machineriesTotal?: number;\n machineriesValidated?: number;\n workersTotal?: number;\n workersValidated?: number;\n depTotal?: number;\n depValidated?: number;\n depReqTotal?: number;\n depReqValidated?: number;\n statusId?: number;\n\n requirementsTotalCount?: number;\n requirementsValidatedCount?: number;\n}\n\ntype jobHasWorkerC = {\n id: number;\n name: string;\n surname?: string;\n code: string;\n jobId: number;\n currentStatusType?: number;\n workerDocumentTypeId: number;\n workerTypeId?: number;\n contractorName: string;\n totalCount?: number;\n validatedCount?: number;\n}\n\ntype jobHasMachineryC = {\n id: number;\n name: string;\n code: string;\n jobId: number;\n currentStatusType: number;\n machineryTypeId: number;\n licensePlate?: string;\n contractorName?: string;\n totalCount?: number;\n validatedCount?: number;\n}\n\ntype jobHasContractorC = {\n id: number;\n name: string;\n code: string;\n jobId: number;\n jobHasContractorId: number;\n jobsDescription?: string;\n startDate?: Date;\n currentStatusType: number;\n legalFormName: string;\n acitivityName: string;\n\n workersTotalCount?: number;\n workersValidatedCount?: number;\n\n machineriesTotalCount?: number;\n machineriesValidatedCount?: number;\n\n subcontractorsTotalCount?: number;\n subcontractorsValidatedCount?: number;\n\n requirementsTotalCount?: number;\n requirementsValidatedCount?: number;\n}\n\nexport interface IProps {\n job: IJob & IJobAdditional;\n work: IWork;\n security: ISecurity;\n workspaces: IWorkspace[];\n activityTypes: IActivityType[];\n workerDocumentTypes: IWorkerDocumentType[];\n workerTypes: IWorkerType[];\n machineryTypes: IMachineryType[];\n reload: Function;\n selectedContractor?: IContractor;\n moduleManager: ModuleManager;\n currentJobHasContractorId?: number;\n}\n\nfunction Indicator({ title, count, total, colorize, hideCount }: { title: string, count?: number, total: number, colorize?: boolean, hideCount?: boolean }) {\n const { t } = useTranslation();\n\n const className = colorize && count != undefined && count < total\n ? 'error'\n : '';\n\n return
\n \n \n
\n}\n\ntype JobDepartmentR = {\n id: number;\n departmentName: string;\n responsibleName: any;\n statusTypeId: number;\n isMain: boolean;\n}\n\nfunction JobDepartments({ job, work }: Partial) {\n const { t } = useTranslation();\n const departmentSearchs = useSearch({\n search: 'jobList/departmentIndicatorsList',\n workId: job!.workId,\n filters: {\n jobId: job!.id\n }\n });\n\n const departmentsTable = useDataTable({\n className: 'confortable',\n columns: [\n { title: 'Department', field: 'departmentName', className: 'td-md' },\n { title: 'Name', field: 'responsibleName', className: 'td-md' },\n { className: 'td-sm', render: (d) => {\n if (d.isMain) {\n return \n }\n }}\n // { field: 'currentStatusType', render: renderStatus, className:'td-md' },\n ],\n data: departmentSearchs.value ?? []\n });\n\n return
\n {departmentsTable()}\n
\n}\n\nfunction RemoveJob({ job, work, reload }: IProps) {\n const { t } = useTranslation();\n\n const loading = useLoading();\n\n const doRemoveWorker = loading.wrap(async (i: IJob) => {\n await UserActions.removeJob(job.id, work.id);\n reload();\n });\n\n const confirmRemove = useConfirm({\n message: t('Are you sure you want to remove this job?'),\n accept: doRemoveWorker\n });\n\n return
\n \n {t('Delete')}\n
\n}\n\nfunction JobWorkers({ job, workerDocumentTypes, work, workerTypes }: IProps) {\n // WORKERS\n const resolveWorkerDocumentType = useResolveName(workerDocumentTypes, { translate: true });\n const resolveWorkerType = useResolveName(workerTypes, { translate: true });\n const renderWorkerDocumentType = (w: jobHasWorkerC) => {\n return
\n {resolveWorkerDocumentType(w.workerDocumentTypeId)}\n
\n }\n const renderWorkerType = (w: jobHasWorkerC) => {\n return
\n {resolveWorkerType(w.workerTypeId)}\n
\n }\n\n const renderWorkerStatus = (w: jobHasWorkerC) =>\n ;\n\n const renderContractor = (w: jobHasWorkerC) => {\n return \n }\n\n const workersSearch = useSearch({\n search: 'job_has_workers.list',\n normalizeKeys: true,\n workId: job.workId,\n filters: {\n jobId: job.id\n }\n });\n\n React.useEffect(() => {\n workersSearch.doSearch();\n }, []);\n\n const workersTable = useDataTable({\n columns: [\n { title: 'Name', field: 'name', className: 'td-md' },\n { title: 'Surname', field: 'surname', className: 'td-md' },\n { title: 'Worker type', render: renderWorkerType, className: 'td-lg' },\n { title: 'Worker document type', render: renderWorkerDocumentType, className: 'td-md' },\n { title: 'Code', field: 'code', className: 'td-md' },\n { title: 'Contractor', render: renderContractor, className: 'td-lg' },\n {\n title: 'Documentation',\n className: 'td-md center',\n render: d =>\n
goToJobEditWorkerRequirements(job.workId, job.id, d.id)}>\n \n
\n },\n { field: 'currentStatusType', render: renderWorkerStatus, className: 'td-md' }\n ],\n actions: [\n {\n icon: 'fas fa-edit',\n onClick: (r) => goToJobWorkers(work.id, r.jobId)\n }\n ],\n data: workersSearch.value\n });\n\n return
\n {workersTable()}\n
\n}\n\nfunction JobMachines({ job, machineryTypes, work }: IProps) {\n // MACHINERIES\n const resolveMachineryType = useResolveName(machineryTypes, { translate: true });\n const renderMachineryType = (m: jobHasMachineryC) => {\n return
\n {resolveMachineryType(m.machineryTypeId)}\n
\n }\n\n const renderContractor = (m: jobHasMachineryC) => {\n return \n }\n\n const renderMachineryStatus = (m: jobHasMachineryC) =>\n ;\n\n const machineriesSearch = useSearch({\n search: 'job_has_machineries.list',\n normalizeKeys: true,\n workId: job.workId,\n filters: {\n jobId: job.id\n }\n });\n\n React.useEffect(() => {\n machineriesSearch.doSearch();\n }, []);\n\n const machineriesTable = useDataTable({\n columns: [\n { title: 'Name', field: 'name', className: 'td-lg' },\n { title: 'Code', field: 'code', className: 'td-md' },\n { title: 'Machinery type', render: renderMachineryType, className: 'td-md' },\n { title: 'License plate', field: 'licensePlate', className: 'td-md' },\n { title: 'Contractor', render: renderContractor, className: 'td-lg' },\n {\n title: 'Documentation',\n className: 'td-md center',\n render: d =>\n
goToJobEditMachineryRequirements(job.workId, job.id, d.id)}>\n \n
\n },\n { title: 'Status', render: renderMachineryStatus, className: 'td-md' }\n ],\n actions: [\n {\n icon: 'fas fa-edit',\n onClick: (r) => goToJobMachineries(work.id, r.jobId)\n }\n ],\n data: machineriesSearch.value\n });\n\n return
\n {machineriesTable()}\n
\n}\n\nfunction JobContractors({ job, work, security }: IProps) {\n // CONTRACTORS\n const renderContractorStatus = (c: jobHasContractorC) =>\n ;\n\n const contractorsSearch = useSearch({\n search: 'job_has_contractors.list',\n normalizeKeys: true,\n workId: job.workId,\n filters: {\n jobId: job.id\n }\n });\n\n React.useEffect(() => {\n contractorsSearch.doSearch();\n }, []);\n\n const contractorsTable = useDataTable({\n columns: [\n { title: 'Name', field: 'name', className: 'td-md' },\n { title: 'StartDate', field: 'startDate', delegate: 'date', className: 'td-md center' },\n { title: 'JobsDescription', field: 'jobsDescription' },\n {\n title: 'Documentation',\n className: 'td-md center',\n render: d =>\n
goToJobEditContractorRequirements(job.workId, job.id, d.jobHasContractorId)}>\n \n
\n },\n {\n title: 'Workers',\n className: 'td-md center',\n render: d =>\n
goToJobWorkers(job.workId, job.id)}>\n \n
\n },\n {\n title: 'Machineries',\n className: 'td-md center',\n render: d =>\n
goToJobMachineries(job.workId, job.id)}>\n \n
\n },\n {\n title: 'Subcontractors',\n className: 'td-md center',\n render: d =>\n
goToJobContractors(job.workId, job.id)}>\n \n
\n },\n { title: 'Status', render: renderContractorStatus, className: 'td-md' }\n ],\n actions: [\n {\n icon: 'fas fa-edit',\n disabled: security.isContractor(),\n onClick: (r) => goToJobContractors(work.id, r.jobId),\n }\n ],\n data: contractorsSearch.value\n });\n\n return
\n {contractorsTable()}\n
\n}\n\nfunction JobSubContractors({ job, work, security }: IProps) {\n // CONTRACTORS\n const renderContractorStatus = (c: jobHasContractorC) =>\n ;\n\n const [parentId, setParentId] = React.useState(0);\n\n React.useEffect(() => {\n getJobHasContractorFromAppUser(job.workId, job.id)\n .then((u: IJobHasContractor) => setParentId(u.id));\n }, []);\n\n React.useEffect(() => {\n if (parentId) {\n contractorsSearch.doSearch({\n jobId: job.id,\n parentId: parentId\n });\n }\n }, [parentId]);\n\n const contractorsSearch = useSearch({\n search: 'job_has_contractors.list',\n normalizeKeys: true,\n workId: job.workId,\n filters: {\n jobId: job.id,\n parentId: parentId\n },\n lazy: true,\n });\n\n React.useEffect(() => {\n contractorsSearch.doSearch();\n }, []);\n\n const contractorsTable = useDataTable({\n columns: [\n { title: 'Name', field: 'name', className: 'td-md' },\n { title: 'StartDate', field: 'startDate', delegate: 'date', className: 'td-md center' },\n { title: 'JobsDescription', field: 'jobsDescription' },\n {\n title: 'Documentation',\n className: 'td-md center',\n render: d =>\n
goToJobEditContractorRequirements(job.workId, job.id, d.jobHasContractorId)}>\n \n
\n },\n {\n title: 'Workers',\n className: 'td-md center',\n render: d =>\n
goToJobWorkers(job.workId, job.id)}>\n \n
\n },\n {\n title: 'Machineries',\n className: 'td-md center',\n render: d =>\n
goToJobMachineries(job.workId, job.id)}>\n \n
\n },\n {\n title: 'Subcontractors',\n className: 'td-md center',\n render: d =>\n
goToJobContractors(job.workId, job.id)}>\n \n
\n },\n { title: 'Status', render: renderContractorStatus, className: 'td-md' }\n ],\n actions: [\n {\n icon: 'fas fa-edit',\n onClick: (r) => goToJobContractors(work.id, r.jobId),\n }\n ],\n data: contractorsSearch.value\n });\n\n return
\n {contractorsTable()}\n
\n}\n\nexport function JobCard({\n job, security, workspaces, activityTypes, work,\n currentJobHasContractorId,\n workerDocumentTypes, workerTypes, machineryTypes, reload,\n selectedContractor, moduleManager,\n}: IProps) {\n const { t } = useTranslation();\n const dialogs = useDialogs();\n const loading = useLoading();\n\n const [canAddSubContractorState, setCanAddSubContractorState] = React.useState(true);\n\n const jobSettings = React.useMemo(() => work.jobSettings, [work]);\n\n const doRemoveJob = loading.wrap(async (i: IJob) => {\n await UserActions.removeJob(job.id, work.id);\n reload();\n });\n const confirmRemoveJob = useConfirm({\n message: t('Are you sure you want to remove this job?'),\n accept: doRemoveJob,\n });\n\n const canRemove = security.isGestor() || security.hasPermission('jobs.forceStatus');\n const perms = usePermissions({ moduleManager, work, security }, { ctx: { job } }, {\n remove: {\n name: 'job.remove',\n default: canRemove,\n },\n });\n\n const [isSubContractor, setIsSubContractor] = React.useState(false);\n const [currentEmployer, setCurrentEmployer] = React.useState('');\n\n const initialize = async () => {\n if (security.isContractor()) {\n if (job.jobHasContractorId) {\n const currentJobHasContractor = await getJobHasContractorFromId(job.workId, job.jobHasContractorId);\n setIsSubContractor(currentJobHasContractor.parentId ? true : false);\n if (currentJobHasContractor.parentId) {\n const currentEmployer: any = await getJobHasContractorFromId(job.workId, currentJobHasContractor.parentId);\n setCurrentEmployer(currentEmployer.contractorName);\n }\n }\n }\n }\n\n React.useEffect(() => {\n const ctx = {\n job: job,\n security: security,\n getJobHasContractorFromId: getJobHasContractorFromId,\n getJobHasContractors: getJobHasContractors,\n selfContractorId: job.jobHasContractorId,\n setCanAddSubContractorState: setCanAddSubContractorState,\n };\n\n moduleManager\n .hasPermission('canAddSubContractor', ctx)\n .then(setCanAddSubContractorState);\n }, []);\n\n React.useEffect(() => {\n initialize();\n }, [job]);\n\n const goOpts = { jobHasContractorId: currentJobHasContractorId };\n\n const settings = useWorkFormSettings({ work, scope: 'job' });\n\n const resolveWorkspace = useResolveName(workspaces);\n const resolveActivity = useResolveName(activityTypes);\n\n const addSubContractor = async () => {\n const currentJobHasContractor = await getJobHasContractorFromAppUser(job.workId, job.id);\n goToJobAddContractor(job.workId, job.id, currentJobHasContractor.id);\n }\n\n const goToSubContractors = async () => {\n const currentJobHasContractor = await getJobHasContractor(job.workId, job.id, currentJobHasContractorId ?? 0);\n const opts = { ...goOpts, parentId: currentJobHasContractor.id };\n goToJobSubContractors(job.workId, job.id, opts);\n }\n\n const [actions, setActions] = React.useState([]);\n\n const actionsI = [\n {\n label: t((work.id == 23) ? 'job.view.azsa' : 'job.view'),\n icon: 'fas fa-wrench',\n command: (e: any) => goToJob(job.workId, job.id, goOpts)\n }\n ];\n\n if (security.isWorker() || security.isGestor()) {\n actionsI.push({\n label: t((work.id == 23 && security.isWorker()) ? 'job.documentation.azsa' : 'job.documentation'),\n icon: 'fas fa-folder',\n command: () => goToJobDocumentation(job.workId, job.id, goOpts)\n });\n actionsI.push({\n label: t('job.contractors'),\n icon: 'fas fa-id-card-alt',\n command: () => goToJobContractors(job.workId, job.id)\n });\n actionsI.push({\n label: t('job.workers'),\n icon: 'fas fa-user-friends',\n command: () => goToJobWorkers(job.workId, job.id, goOpts)\n });\n actionsI.push({\n label: t('job.machineries'),\n icon: 'fas fa-truck-loading',\n command: () => goToJobMachineries(job.workId, job.id, goOpts)\n });\n actionsI.push({\n label: t('job.downloads'),\n icon: 'fas fa-download',\n command: () => goToJobInformationLoadedControl(job.workId, job.id),\n })\n }\n else if (security.isContractor()) {\n actionsI.push({\n label: t('job.documentation'),\n icon: 'fas fa-folder',\n command: () => goToJobDocumentation(job.workId, job.id, goOpts)\n });\n actionsI.push({\n label: t('job.contractors'),\n icon: 'fas fa-id-card-alt',\n command: () => goToJobContractors(job.workId, job.id)\n });\n actionsI.push({\n label: t('job.workers'),\n icon: 'fas fa-user-friends',\n command: () => goToJobWorkers(job.workId, job.id, goOpts)\n });\n actionsI.push({\n label: t('job.machineries'),\n icon: 'fas fa-truck-loading',\n command: () => goToJobMachineries(job.workId, job.id, goOpts)\n });\n if (canAddSubContractorState) {\n actionsI.push({\n label: t('job.contractors.add-subcontractor'),\n icon: 'fas fa-plus',\n command: addSubContractor\n });\n }\n }\n\n if (security.isGestorOrWorker() && perms.get('remove')) {\n actionsI.push({\n label: t('Delete'),\n icon: 'fas fa-trash',\n command: (e: any) => confirmRemoveJob(e),\n });\n }\n\n //TODO llevar al modulo\n const evaluations = async () => {\n const ctx = {\n roles: security.user?.roles ?? [],\n userDepartments: security.user?.departments ?? [],\n job: job,\n security: security,\n };\n\n // const can = await moduleManager.hasPermission('canViewEvaluations', ctx);\n const can = security.isGestor()\n\n if (work.id == 23 && can) {\n actionsI.push({\n label: t('PessmaEvaluations'),\n icon: 'fas fa-calendar-check',\n command: () => redirectTo(`/modules/${work.id}/AzsaApi/PessmaEvaluations?id=${job.id}`),\n });\n }\n //* Los contratistas no pueden ver las evaluaciones pendientes\n if (work.id == 23 && can && !security.isContractor()) {\n actionsI.push({\n label: t('Pending evaluations PESSMA'),\n icon: 'fas fa-calendar',\n command: () => redirectTo(`/modules/${work.id}/AzsaApi/PessmaPendingEvaluations?id=${job.id}`),\n })\n }\n\n setActions(actionsI);\n }\n\n React.useEffect(() => {\n evaluations()\n }, [security, moduleManager.getId(), perms.id]);\n\n return
\n
\n {job.code}\n \n
\n \n
\n {loading.render()}\n \n
\n
\n \n {security.isContractor() &&\n
\n \n
\n }\n
\n
\n \n \n {job.name}\n \n\n \n \n {resolveWorkspace(job.workspaceId)}\n \n\n {settings.show('activityTypeId') &&\n <>\n \n \n {resolveActivity(job.activityTypeId)}\n \n }\n\n \n {job.responsibleName}\n\n \n {DateUtils.format(job.startDate)}\n\n \n {DateUtils.format(job.endDate)}\n\n {(security.isContractor() && !isSubContractor) && <>\n \n {job.shipmentNumber}\n }\n\n {(security.isContractor() && isSubContractor) && <>\n \n {currentEmployer}\n }\n
\n\n
\n \n
goToJobEditContractorRequirements(work.id, job.id, job.jobHasContractorId!)}>\n \n
\n
\n\n \n
dialogs.show('contractors-dialog', r)}>\n onClick={r => goToJobContractors(work.id, job.id, true)}>\n \n
\n
\n\n
goToJobDocumentation(work.id, job.id, goOpts)}>\n \n
\n\n
dialogs.show('workers-dialog', r)}>\n onClick={r => goToJobWorkers(work.id, job.id, goOpts)}>\n \n
\n\n \n
dialogs.show('subcontractors')}>\n onClick={goToSubContractors}>\n {/* TODO: QUITAR CLAVE */}\n \n
\n
\n \n
dialogs.show('machineries-dialog', r)}>\n onClick={r => goToJobMachineries(work.id, job.id, goOpts)}>\n \n
\n
goToJobDocumentation(work.id, job.id)}>\n onClick={() => dialogs.show('departments')}>\n \n
\n
\n \n
goToJobDocumentation(work.id, job.id)}>\n onClick={() => dialogs.show('departments')}>\n \n
\n
dialogs.show('machineries-dialog', r)}>\n onClick={r => goToJobMachineries(work.id, job.id, goOpts)}>\n \n
\n
\n
\n\n {/** DEPARTMENTS */}\n {dialogs.render('departments', { title: t('Departments') + ': ' + job.code, className: 'pd g', style: { width: '40vw' } }, (_: any) =>\n )}\n
\n}\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport { JobInfoCard } from '@components/jobs/JobInfoCard';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...JobsStore.plainActions,\n ...state.identity,\n ...state.user,\n ...state.constants,\n moduleManager: state.modules.moduleManager,\n workSettings: state.user.work?.settingsObj,\n }),\n JobsStore.actionCreators,\n)(JobInfoCard as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { IActivityType, IJob, ISecurity, IWork, IWorkspace, ModuleManager } from '@models';\nimport { JobCard } from './list/JobCard';\nimport { IMachineryType, IWorkerDocumentType, IWorkerType } from '@models/resources';\nimport useSearch from '@components/custom/useSearch';\n\nexport interface IProps {\n activityTypes: IActivityType[];\n job: IJob;\n jobId: number;\n machineryTypes: IMachineryType[];\n moduleManager: ModuleManager;\n security: ISecurity;\n work: IWork;\n workId: number;\n workerDocumentTypes: IWorkerDocumentType[];\n workerTypes: IWorkerType[];\n workspaces: IWorkspace[];\n}\n\nexport function JobInfoCard(props: IProps) {\n const getSearch = () => {\n if (props.security.isContractor()) {\n return 'jobList/contractors';\n }\n else {\n return 'jobList/gestor';\n }\n }\n\n const data = useSearch({\n search: getSearch(),\n workId: props.workId,\n filters: {\n jobId: props.job.id,\n }\n });\n\n console.log('render job card', props, data);\n\n return
\n {data.renderLoading()}\n {data.value.length > 0 &&\n }\n
\n}","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport { JobInformationLoadedControl } from '@components/jobs/JobInformationLoadedControl';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...JobsStore.plainActions,\n ...state.identity,\n ...state.user,\n }),\n JobsStore.actionCreators,\n)(JobInformationLoadedControl as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { BreadcrumbItem, useDataTable, useSearch, useTranslation } from \"@components\";\nimport { IJob, IJobLog, ISecurity } from '@models';\nimport DateUtils from '@utils/date-utils';\n\ntype JobLogT = IJobLog & { contractorName: string, contractorCode: string };\n\nexport interface IProps {\n job: IJob;\n jobId: number;\n security: ISecurity;\n workId: number;\n}\n\nexport function JobInformationLoadedControl(props: IProps) {\n const data = useSearch({\n search: 'jobRequirements/downloads',\n filters: {\n jobId: props.jobId,\n workId: props.workId\n },\n workId: props.workId,\n });\n const { t } = useTranslation();\n\n const dataTable = useDataTable({\n data: data.value,\n columns: [\n { field: 'contractorName', className: 'center', title: t('Contractor'), sortKey: 'contractorName'},\n { field: 'contractorCode', className: 'center', title: t('Code'), sortKey: 'contractorCode' },\n { field: 'dateTime', className: 'center', title: t('DateTime'), render: (r:any) => DateUtils.formatDateTimeFromUtc(r.dateTime), sortKey: 'dateTime' },\n ]\n });\n\n return
\n \n {data.renderLoading()}\n {dataTable()}\n
\n}","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport { JobNotifyInformationLoaded } from '@components/jobs/JobNotifyInformationLoaded';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...JobsStore.plainActions,\n }),\n JobsStore.actionCreators,\n)(JobNotifyInformationLoaded as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { BreadcrumbItem, R, useForm, useLoading, useMessage, useRemoteData, useTranslation } from '@components';\nimport { IJobHasContractor } from '@models';\nimport { goToJobRequirements } from '../routes';\n\nimport './JobNotifyInformationLoaded.scss';\n\nexport interface IProps {\n getJobContractors: Function;\n jobId: number;\n jobNotifyInformationLoaded: Function;\n workId: number;\n}\n\ntype FormData = {\n remarks?: string;\n}\n\nexport function JobNotifyInformationLoaded(props: IProps) {\n const loading = useLoading();\n const msg = useMessage();\n const { t } = useTranslation();\n\n const contractors = useRemoteData(props.getJobContractors, {\n parameters: [props.workId, props.jobId]\n });\n\n const form = useForm({\n initialValues: {\n remarks: '',\n },\n });\n\n const notify = loading.wrap(async () => {\n const res = await props.jobNotifyInformationLoaded(\n props.workId,\n props.jobId,\n form.values.remarks,\n );\n\n msg.set(res);\n\n if (res.hasValue) {\n goToJobRequirements(props.workId, props.jobId, { reload: true });\n }\n });\n\n const cancel = () => {\n goToJobRequirements(props.workId, props.jobId);\n }\n\n return
\n \n\n
\n
\n {t('job.notify-information-loaded.message')}\n
\n
\n {(contractors.value ?? []).map(c =>\n
\n {c.contractor?.name}\n {c.jobsDescription}\n
)}\n
\n\n {(![21, 23].includes(props.workId)) &&\n
\n
\n \n {form.textarea('remarks', { autoFocus: true, rows: 5 })}\n
\n
}\n
\n\n {msg.renderIfError()}\n\n
\n {contractors.renderLoading()}\n {loading.render()}\n
\n \n \n
\n
\n
\n}","import * as React from 'react';\r\n\r\nimport {\r\n BreadcrumbItem,\r\n classNames,\r\n G, Panel, Portal, RequirePermission,\r\n Tag,\r\n useConfirm, useDataTable,\r\n useDialogs,\r\n useLoading,\r\n useMessage,\r\n useResolveName,\r\n useTranslation,\r\n useWorkFormSettings,\r\n useScheduler,\r\n useSearch,\r\n useSignalR,\r\n useSearchFilters,\r\n onChange,\r\n Tooltip\r\n} from '@components';\r\nimport {\r\n IContractor,\r\n IJob,\r\n IJobHasMachinery,\r\n IMachinery,\r\n IMachineryType,\r\n IPropertyGroupType,\r\n IResourceStatusType,\r\n ISecurity,\r\n IUserIdentity,\r\n IWork,\r\n IWorkSettings,\r\n PropertyGroupObjectType,\r\n ResourceType,\r\n getMachineryName,\r\n IJobHasContractor,\r\n ModuleManager,\r\n} from '@models';\r\n\r\nimport './ManageJobMachineries.scss';\r\nimport { ResourceStatus } from '@components/common/ResourceStatus';\r\nimport { redirectTo, strJoin } from '@utils';\r\nimport ForceValidationResourceContainer from '@containers/requirements/ForceValidationResourceContainer';\r\nimport { DynamicProperties } from '@components/user/DynamicProperties';\r\nimport { ResourceStatusType, resourceStatusTypes } from '@models/resources';\r\nimport { IRequirementNotification } from '@models/requirements';\r\nimport dateUtils from '@utils/date-utils';\r\n\r\nexport interface IProps {\r\n activateJobHasMachinery: Function;\r\n contractors: IContractor[];\r\n contractorId?: number;\r\n jobHasContractorId?: number;\r\n relationId?: number;\r\n selectedJobHasContractor?: IJobHasContractor;\r\n getJobHasMachineries: Function;\r\n getJobHasMachinery: (workId: number, jobId: number, relationId: number) => Promise,\r\n hasPermission: Function;\r\n job: IJob;\r\n jobHasMachinery: IJobHasMachinery;\r\n machineryTypes: IMachineryType[];\r\n propertyGroupTypes: IPropertyGroupType[];\r\n removeJobHasMachinery: Function;\r\n deleteJobHasMachinery: Function;\r\n resourceStatusTypes: IResourceStatusType[];\r\n saveJobHasMachinery: Function;\r\n searchContractors: Function;\r\n searchMachineries: Function;\r\n security: ISecurity;\r\n work: IWork;\r\n workSettings: IWorkSettings;\r\n appUsers: IUserIdentity[];\r\n moduleManager: ModuleManager;\r\n}\r\nfunction MachineryInfo({ className, machinery, machineryTypes, work, contractors }: {\r\n className: string,\r\n machinery: IMachinery | undefined,\r\n machineryTypes: IMachineryType[],\r\n contractors: IContractor[],\r\n work: IWork\r\n}) {\r\n const { t } = useTranslation();\r\n const machineryTypeName = useResolveName(machineryTypes);\r\n const contractorName = useResolveName(contractors);\r\n\r\n const settings = useWorkFormSettings({ work: work, scope: 'machinery' });\r\n\r\n const renderLicensePlate = (m: IMachinery | undefined) => {\r\n if (m?.prefixLicenseNumber != null) {\r\n return \r\n {strJoin('/', m.prefixLicenseNumber, m.licenseNumber, m.suffixLicenseNumber)}\r\n \r\n }\r\n else {\r\n return ;\r\n }\r\n }\r\n\r\n return
\r\n {settings.show('name') &&\r\n \r\n {machinery?.name}\r\n }\r\n {settings.show('code') &&\r\n \r\n {machinery?.code}\r\n }\r\n \r\n {renderLicensePlate(machinery)}\r\n \r\n \r\n {machinery?.description}\r\n \r\n \r\n {machineryTypeName(machinery?.machineryTypeId)}\r\n \r\n \r\n {contractorName(machinery?.contractorId)}\r\n \r\n
\r\n}\r\n\r\nenum FormType {\r\n List = 0,\r\n MachineryDocumentation = 1,\r\n}\r\n\r\ntype IJobHasMachineryR = IJobHasMachinery & {\r\n machineryName: string;\r\n machineryCode: string;\r\n machineryContractorName: string;\r\n machineryContractorId: number;\r\n\r\n machineryPrefixLicenseNumber?: string;\r\n machineryLicenseNumber?: string;\r\n machinerySuffixNumber?: string;\r\n machineryTypeFullName?: string;\r\n\r\n validatedCount?: number;\r\n totalCount?: number;\r\n}\r\n\r\nexport function ManageJobMachineries(props: IProps) {\r\n const { t } = useTranslation();\r\n const [formType, setFormType] = React.useState(\r\n props.jobHasMachinery ? FormType.MachineryDocumentation : FormType.List);\r\n const [selectedMachinery, setSelectedMachinery] = React.useState(props.jobHasMachinery);\r\n const dialogs = useDialogs();\r\n const settings = useWorkFormSettings({ work: props.work, scope: 'machinery' });\r\n const [machineries, setMachineries] = React.useState([]);\r\n const [canRemoveState, setCanRemoveState] = React.useState(false);\r\n const [canValidateState, setCanValidateState] = React.useState(false);\r\n\r\n const loading = useLoading();\r\n const messages = useMessage({\r\n autoClear: true,\r\n });\r\n\r\n const filters = useSearchFilters({\r\n security: props.security,\r\n workId: props.work.id,\r\n name: 'machineries/manageJobMachineries',\r\n persist: true,\r\n references: {\r\n resourceStatusTypes: resourceStatusTypes,\r\n },\r\n });\r\n const query = useSearch({\r\n workId: props.work.id,\r\n search: 'jobs/machineries',\r\n normalizeKeys: true,\r\n lazy: true,\r\n filters: filters.merge({\r\n jobId: props.job.id,\r\n workId: props.work.id,\r\n jobHasContractorId: props.relationId ?? props.selectedJobHasContractor?.id,\r\n onlyMainContractors: props.security.isGestorOrWorker() && props.jobHasContractorId == undefined\r\n ? true\r\n : undefined,\r\n }),\r\n });\r\n\r\n const workSettings: IWorkSettings | undefined = props.work.settingsObj;\r\n const HideByDefaultEnded = workSettings?.hideByDefaultEnded ?? false;\r\n\r\n React.useEffect(() => {\r\n if (HideByDefaultEnded && filters.filters.resourceStatusTypes != 3) {\r\n const filteredContractors = query.value.filter((c: IJobHasMachinery) => c.currentStatusType !== 3);\r\n setMachineries(filteredContractors);\r\n } else {\r\n setMachineries(query.value ?? []);\r\n }\r\n }, [query.value]);\r\n\r\n const initialize = loading.wrap(async () => {\r\n await query.doSearch();\r\n });\r\n\r\n const doRemove = loading.wrap(async (relation: IJobHasMachinery) => {\r\n const resp = await props.removeJobHasMachinery(props.work.id, props.job.id, relation.id);\r\n messages.set(resp, {\r\n successMessage: t('Relation removed successfully'),\r\n });\r\n\r\n await initialize();\r\n });\r\n\r\n const canRemove = props.security.hasPermission('jobs.machineries.remove');\r\n\r\n const calculateCanRemove = async () => {\r\n const res = await props.moduleManager.requirePermission('jobs.machineries.remove', {\r\n work: props.work,\r\n security: props.security,\r\n }, canRemove);\r\n\r\n setCanRemoveState(res ?? false);\r\n };\r\n\r\n React.useEffect(() => {\r\n calculateCanRemove();\r\n }, []);\r\n\r\n const calculateCanValidate = async () => {\r\n const res = await props.moduleManager.requirePermission('jobs.resources.validate', {\r\n work: props.work,\r\n security: props.security\r\n }, canValidate);\r\n\r\n setCanValidateState(res ?? false);\r\n };\r\n\r\n React.useEffect(() => {\r\n calculateCanValidate();\r\n }, []);\r\n\r\n const canValidate = props.security.hasPermission('jobs.resources.validate');\r\n\r\n const confirmRemove = useConfirm({\r\n message: t('Are you sure to finalize machinery from this job?'),\r\n accept: doRemove,\r\n });\r\n\r\n React.useEffect(() => {\r\n initialize();\r\n }, [props.selectedJobHasContractor]);\r\n\r\n const scheduler = useScheduler();\r\n\r\n const _ = useSignalR({\r\n method: 'RequirementNotification',\r\n onMessage: r => {\r\n scheduler.schedule(reload, 1500);\r\n }\r\n });\r\n\r\n const reload = () => {\r\n query.doSearch();\r\n }\r\n\r\n onChange(() => {\r\n reload();\r\n }, [filters.filters]);\r\n\r\n const doDeleteMachinery = loading.wrap(async (i: IJobHasMachinery) => {\r\n const resp = props.deleteJobHasMachinery(props.work.id, props.job.id, i.id);\r\n messages.set(resp, {\r\n successMessage: t('Relation removed successfully'),\r\n });\r\n\r\n await initialize();\r\n });\r\n\r\n const confirmDeleteMachinery = useConfirm({\r\n message: t('Are you sure to remove machinery from this job?'),\r\n accept: doDeleteMachinery,\r\n });\r\n\r\n const clearMachinery = (..._: any) => {\r\n setFormType(FormType.List);\r\n setSelectedMachinery(undefined);\r\n }\r\n\r\n const reactivateJobHasMachinery = loading.wrap(async (d: IJobHasMachinery) => {\r\n await props.activateJobHasMachinery(props.work.id, props.job.id, d.machineryId, d.id);\r\n await initialize();\r\n });\r\n\r\n const renderStatus = (i: IJobHasMachinery) => {\r\n return ;\r\n }\r\n\r\n const idGenerate = () => {\r\n return `i${Math.random().toString(36).substring(2)}`;\r\n }\r\n\r\n const renderLicensePlate = (m: IJobHasMachinery) => {\r\n\r\n const id = idGenerate();\r\n const content = strJoin(\r\n '/',\r\n m.machineryPrefixLicenseNumber,\r\n m.machineryLicenseNumber,\r\n m.machinerySuffixLicenseNumber);\r\n return
\r\n {content}\r\n {content}\r\n
\r\n }\r\n\r\n const canShowDocumentation = (w: IJobHasMachineryR) =>\r\n props.security.isContractor()\r\n // && props.workSettings.mainContractorCanFulfillSubs == true\r\n ? true\r\n // : props.security.isContractor()\r\n // ? w.machineryContractorId == selfContractorId\r\n : true;\r\n\r\n const dataTable = useDataTable({\r\n tooltip: true,\r\n columns: [\r\n settings.show('name')\r\n ? { title: 'Name', field: 'machineryName', className: 'td-md', sortKey: 'machineryName' }\r\n : undefined,\r\n settings.show('code')\r\n ? { title: 'serialNumber', field: 'machineryCode', className: 'td-md', sortKey: 'machineryCode' }\r\n : undefined,\r\n {\r\n title: 'License plate',\r\n field: 'machineryLicenseNumber',\r\n render: renderLicensePlate,\r\n className: 'td-md',\r\n sortKey: 'machineryLicenseNumber',\r\n },\r\n {\r\n title: 'Machinery type',\r\n field: 'machineryTypeFullName',\r\n className: 'td-lg',\r\n sortKey: 'machineryTypeFullName',\r\n },\r\n {\r\n title: 'Contractor',\r\n render: d => d.machineryContractorName\r\n ? \r\n : null,\r\n className: 'center',\r\n sortKey: 'machineryContractorName',\r\n },\r\n {\r\n title: t('AssignmentDate'), className: 'td-md',\r\n render: d => dateUtils.formatFromUtc(d.startDate),\r\n sortKey: 'startDate',\r\n },\r\n {\r\n title: 'currentStatusType',\r\n field: 'currentStatusType',\r\n className: 'td-md',\r\n render: renderStatus,\r\n sortKey: 'currentStatusType'\r\n },\r\n {\r\n title: t('Documentation'), className: 'td-indicator',\r\n render: d =>\r\n canShowDocumentation(d)\r\n ?
loadRequirements(d.id)} className='pointer'>\r\n \r\n
\r\n : null\r\n },\r\n {\r\n className: 'td-sm',\r\n render: s => (s.hasDelayedRevokation && props.work.jobSettings?.showResourceIncidenceIndicator)\r\n ? \r\n : null,\r\n }\r\n ],\r\n actions: [\r\n (canRemoveState)\r\n ? {\r\n icon: d => d.currentStatusType == ResourceStatusType.FINALIZED\r\n ? 'fas fa-redo'\r\n : 'pi pi-minus-circle',\r\n tooltip: d => d.currentStatusType == ResourceStatusType.FINALIZED\r\n ? t('Reactivate')\r\n : t('Finalize machinery'),\r\n onClick: (d, event) => d.currentStatusType == ResourceStatusType.FINALIZED\r\n ? reactivateJobHasMachinery(d)\r\n : confirmRemove(d, event)\r\n }\r\n : undefined,\r\n (props.security.isGestor())\r\n ? { icon: 'trash', onClick: confirmDeleteMachinery, tooltip: t('Remove machinery') }\r\n : undefined,\r\n (canValidateState && !props.security.isContractor())\r\n ? {\r\n icon: 'pi pi-check-square',\r\n tooltip: t('Force resource validation'),\r\n onClick: r => dialogs.showFromEvent('force-validation', r)()\r\n }\r\n : undefined\r\n ],\r\n data: machineries,\r\n className: 'machineries-table',\r\n });\r\n\r\n const loadRequirements = (machineryId: number) => {\r\n redirectTo(`/work/${props.work.id}/jobs/${props.job.id}/machinery/${machineryId}/requirements`);\r\n }\r\n\r\n const machineryName = selectedMachinery && selectedMachinery?.machinery\r\n ? getMachineryName(selectedMachinery.machinery)\r\n : '';\r\n\r\n return
\r\n \r\n
\r\n {filters.renderAsButton({ className: 'fas fa-filter pointer' })}\r\n
\r\n
\r\n setFormType(FormType.List)} />\r\n {formType == FormType.List &&
\r\n
\r\n {dataTable()}\r\n\r\n {dialogs.render('force-validation', { title: t('Force resource validation') }, (d: IJobHasMachinery) =>\r\n {\r\n dialogs.clear();\r\n initialize();\r\n }}\r\n resourceType={ResourceType.JobHasMachinery}\r\n resourceId={d.id} />\r\n )}\r\n
\r\n
}\r\n\r\n {/* VIEW JHM & PANEL */}\r\n {formType == FormType.MachineryDocumentation && selectedMachinery &&
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n {machineryName}\r\n
}>\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {dialogs.render('force-validation', { title: t('Force resource validation'), className: 'g pd' }, () =>\r\n \r\n )}\r\n\r\n \r\n
    \r\n
  • {machineryName}
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {t('View machinery')}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
}\r\n
\r\n}\r\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport { ManageJobMachineries } from '../../components/jobs/ManageJobMachineries';\nimport { hasPermission } from '../../utils/security';\nimport { isMachineryPropertyGroupType } from '../../models';\n\nexport default connect(\n (state: ApplicationState, props: any) => ({\n ...JobsStore.plainActions,\n ...state.identity,\n ...state.user,\n ...state.jobs,\n propertyGroupTypes: state.user.propertyGroupTypes.filter(isMachineryPropertyGroupType),\n hasPermission: (p: string, explicit: boolean | undefined = undefined) => hasPermission(p, {\n user: state.identity?.user,\n work: state.user.work,\n job: state.jobs.selectedJob,\n explicit: explicit ?? true,\n }),\n resourceStatusTypes: state.user.resourceStatusTypes,\n workSettings: state.user.work?.settingsObj,\n contractorId: props.contractorId,\n jobHasContractorId: props.jobHasContractorId ?? state.jobs.selectedJobHasContractor?.id,\n moduleManager: state.modules.moduleManager,\n }),\n JobsStore.actionCreators,\n)(ManageJobMachineries as any) as any;\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport { AddJobHasMachinery } from '../../components/machineries/AddJobHasMachinery';\nimport { hasPermission } from '../../utils/security';\nimport { isMachineryPropertyGroupType } from '../../models';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...JobsStore.plainActions,\n ...state.identity,\n ...state.user,\n propertyGroupTypes: state.user.propertyGroupTypes.filter(isMachineryPropertyGroupType),\n hasPermission: (p: string, explicit: boolean|undefined = undefined) => hasPermission(p, {\n user: state.identity?.user,\n work: state.user.work,\n job: state.jobs.selectedJob,\n explicit: explicit ?? true,\n }),\n resourceStatusTypes: state.user.resourceStatusTypes,\n\n }),\n JobsStore.actionCreators,\n)(AddJobHasMachinery as any) as any;","import * as React from 'react';\n\nimport {\n Select, useTranslation, useLoading, useMessage, useStringState, useNumberState, useObjectState, F, useWorkFormSettings , useSearch\n} from '@components';\nimport {\n IJobHasMachinery, IJob, IMachinerySubType, IMachineryType,\n IPropertyGroupType, PropertyGroupObjectType, IWork, ISecurity\n} from '@models';\nimport { DynamicProperties } from '@components/user/DynamicProperties';\n\nimport './AddJobHasMachinery.scss';\n\nexport interface IProps {\n hasPermission: Function;\n job: IJob;\n machineryTypes: IMachineryType[],\n onChange: Function;\n saveJobHasMachinery: Function;\n propertyGroupTypes: IPropertyGroupType[];\n workId: number;\n work: IWork;\n security: ISecurity;\n jobHasContractorId: number;\n}\n\nexport function AddJobHasMachinery(props: IProps) {\n const { t } = useTranslation();\n const messages = useMessage({\n successMessage: t('Machinery added successfully'),\n });\n const loading = useLoading();\n\n const settings = useWorkFormSettings({ work: props.work, scope: 'machinery' });\n\n const [subTypes, setSubTypes] = React.useState([]);\n\n const machineName = useStringState();\n const machineCode = useStringState();\n const prefixNumber = useStringState();\n const licenseNumber = useStringState();\n const suffixLicenseNumber = useStringState();\n\n const selectedMachineryType = useNumberState();\n const selectedSubType = useNumberState();\n const addRecord = useObjectState({ properties: [] });\n\n React.useEffect(() => {\n selectedSubType.set(undefined);\n\n if (selectedMachineryType.value) {\n const mt = props.machineryTypes.find(mt => mt.id == selectedMachineryType.value);\n setSubTypes(mt?.subTypes ?? []);\n }\n else {\n setSubTypes([]);\n }\n }, [selectedMachineryType.value]);\n\n const doAdd = loading.wrap(async (..._: any) => {\n const newRecord: IJobHasMachinery = {\n ...addRecord.value,\n jobId: props.job.id,\n startDate: new Date(),\n machineryName: machineName.value,\n machineryCode: machineCode.value,\n machineryPrefixLicenseNumber: prefixNumber.value,\n machineryLicenseNumber: licenseNumber.value,\n machinerySuffixLicenseNumber: suffixLicenseNumber.value,\n machineryTypeId: selectedMachineryType.value,\n machinerySubTypeId: selectedSubType.value,\n jobHasContractorId : selectedJobHasContractor.value,\n };\n\n const resp = await props.saveJobHasMachinery(props.workId, props.job.id, newRecord, selectedJobHasContractor.value);\n messages.set(resp);\n\n if (resp.error == undefined && resp.hasValue) {\n selectedMachineryType.clear();\n selectedSubType.clear();\n machineCode.clear();\n machineName.clear();\n prefixNumber.clear();\n licenseNumber.clear();\n suffixLicenseNumber.clear();\n setTimeout(() => {\n props.onChange();\n }, 1000);\n }\n });\n\n const canAdd = (subTypes.length <= 0 || selectedSubType.hasValue())\n && selectedMachineryType.hasValue()\n && (machineCode.value != '')\n && (machineName.value != '')\n && (prefixNumber.value != '')\n && (licenseNumber.value != '')\n && (suffixLicenseNumber.value != '');\n\n type SearchR = {\n parentContractorId?: number;\n parentContractorName?: string;\n jobHasContractorId: number;\n }\n\n const selectedContractor = useNumberState();\n const selectedJobHasContractor = useNumberState(props.jobHasContractorId);\n const [parentContractors, setParentContractors] = React.useState([]);\n\n const searchContractorHasContracts = useSearch({\n search: 'contractorHasContracts.list',\n normalizeKeys: true,\n workId: props.work.id,\n filters: {\n contractorId: selectedContractor.value,\n jobId: props.job.id,\n }\n });\n\n React.useEffect(() => {\n searchContractorHasContracts.doSearch();\n }, [selectedContractor.value]);\n\n const contractors = [\n { id: undefined, name: t('Filter by contractor') } as any\n ].concat(props.job.contractors.map(c => ({ ...c, name: c.contractor.name })));\n\n React.useEffect(() => {\n if(searchContractorHasContracts.value != undefined && searchContractorHasContracts.value.length > 0){\n const parentContractors = searchContractorHasContracts.value.map((c: any) => ({\n parentContractorId: c.parentContractorId,\n parentContractorName: calculateLevel(c),\n jobHasContractorId: c.jobHasContractorId,\n }));\n setParentContractors(parentContractors);\n }else{\n setParentContractors([]);\n }\n }, [searchContractorHasContracts.value]);\n\n const calculateLevel = (jobHasContractor : SearchR) => {\n let level = 0;\n let parentContractorId = jobHasContractor.parentContractorId;\n while (parentContractorId != undefined) {\n let parentContractor = contractors.find(c => c.id == parentContractorId);\n\n if (parentContractor == undefined) {\n parentContractorId = undefined;\n } else {\n parentContractorId = parentContractor.parentId\n level++;\n }\n }\n\n level--;\n\n return level === -1? t('main contractor') : `${jobHasContractor.parentContractorName} ${t('level')} ${level}`;\n }\n\n return
\n
\n {t('Add new machine')}\n
\n
\n \n\n {subTypes.length > 0 &&\n }\n {settings.show('name') &&\n }\n {settings.show('code') &&\n }\n\n {!props.security.isContractor() && props.jobHasContractorId == undefined &&\n }\n\n {loading.render()}\n\n {props.jobHasContractorId == undefined && selectedContractor.hasValue() &&\n \n }\n\n {/* license plate */}\n \n
\n \n \n \n
\n
\n\n \n\n
\n\n {messages.render()}\n
\n\n
\n \n\n {loading.render()}\n \n {t('Add')}\n \n
\n
\n}","import * as React from 'react';\n\nimport Constants from '../../Constants';\nimport {\n Select, useTranslation, useLoading, useMessage, useNumberState, useObjectState, useSearch\n} from '@components';\nimport {\n IJobHasMachinery, IJob, IMachineryType,\n IPropertyGroupType, PropertyGroupObjectType, IMachinery, ISecurity,\n IJobHasContractor, IWork, IUserIdentity, IMachinerySubType,\n ModuleManager,\n} from '@models';\nimport { DynamicProperties } from '@components/user/DynamicProperties';\nimport { strConcat, getQueryParameter, unique } from '@utils';\n\nexport interface IProps {\n contractorId?: number;\n jobHasContractorId?: number;\n hasPermission: Function;\n machineryTypes: IMachineryType[];\n job: IJob;\n onChange: Function;\n moduleManager: ModuleManager;\n propertyGroupTypes: IPropertyGroupType[];\n saveJobHasMachinery: Function;\n searchMachineries: Function;\n security: ISecurity;\n workId: number;\n work: IWork;\n getJobContractors: Function;\n user: IUserIdentity;\n selectedJobHasContractor?: IJobHasContractor;\n}\n\nconst jobContractor: number = getQueryParameter(\n window.location.search,\n 'jobContractor');\n\ntype IMachineryRow = IMachinery & {\n jobHasContractorId?: number;\n}\n\nexport function SelectJobHasMachinery(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const selectedMachineryType = useNumberState();\n const selectedMachinerySubType = useNumberState();\n const selectedMachinery = useNumberState();\n const selectedJobHasContractor = useNumberState();\n const [machineries, setMachineries] = React.useState([]);\n const selectedContractor = useNumberState();\n const addRecord = useObjectState({ properties: [] });\n\n const contractorCurrent = React.useRef();\n const [parentContractors, setParentContractors] = React.useState([]);\n const [availableSubTypes, setAvailableSubTypes] = React.useState([]);\n\n const subContractors = React.useRef([]);\n\n React.useEffect(() => {\n if (props.contractorId != undefined) {\n selectedJobHasContractor.set(props.contractorId);\n }\n\n if (jobContractor != undefined) {\n selectedJobHasContractor.value = jobContractor;\n }\n }, []);\n\n React.useEffect(() => {\n if (props.jobHasContractorId != undefined) {\n const event: Event = new Event('any');\n Object.defineProperty(event, 'target', { writable: true, value: { value: props.jobHasContractorId } });\n selectedJobHasContractor.set(event);\n }\n }, [props.jobHasContractorId]);\n\n // #1126: Maquinas a pessma, cada una la suya\n const canAddSubMachineries = (contractorId: number) => {\n return props.security.isContractor()\n ? (props.selectedJobHasContractor?.contractorId == contractorId\n || (props.work.contractorSettings?.canAddSubMachineries ?? false))\n : true;\n }\n\n const existingMachineries = useSearch({\n workId: props.workId,\n search: 'jobs/existingMachineries',\n filters: {\n jobId: props.job.id,\n workId: props.workId,\n },\n });\n\n const messages = useMessage({\n successMessage: t('Machinery added successfully'),\n autoClear: true,\n });\n\n type SearchR = {\n parentContractorId?: number;\n parentContractorName?: string;\n jobHasContractorId: number;\n }\n\n const searchContractorHasContracts = useSearch({\n search: 'contractorHasContracts.list',\n normalizeKeys: true,\n workId: props.work.id,\n filters: {\n contractorId: selectedContractor.value,\n jobId: props.job.id,\n },\n lazy: true,\n dependencies: [selectedContractor.value],\n });\n\n React.useEffect(() => {\n if (selectedContractor.value != undefined && !props.jobHasContractorId) {\n searchContractorHasContracts.doSearch({\n contractorId: selectedContractor.value,\n jobId: props.job.id,\n });\n }\n }, [selectedContractor.value]);\n\n React.useEffect(() => {\n if (searchContractorHasContracts.value != undefined && searchContractorHasContracts.value.length > 0) {\n const parentContractors = searchContractorHasContracts.value.map((c: any) => ({\n parentContractorId: c.parentContractorId,\n parentContractorName: calculateLevel(c),\n jobHasContractorId: c.jobHasContractorId,\n }));\n setParentContractors(parentContractors);\n } else {\n setParentContractors([]);\n }\n }, [searchContractorHasContracts.value]);\n\n const calculateLevel = (jobHasContractor: SearchR) => {\n let level = 0;\n let parentContractorId = jobHasContractor.parentContractorId;\n while (parentContractorId != undefined) {\n let parentContractor = contractors.find(c => c.id == parentContractorId);\n\n parentContractorId = parentContractor.parentId\n level++;\n }\n\n level--;\n\n return level === -1 ? t('main contractor') : `${jobHasContractor.parentContractorName} ${t('level')} ${level}`;\n }\n\n const contractors = [\n { id: undefined, name: t('Filter by contractor') } as any\n ].concat(props.job.contractors.map(c => ({ ...c, name: c.contractor.name })));\n\n const currentContractor = selectedContractor.hasValue()\n ? contractors.find(c => c.contractorId == selectedContractor.value)\n : contractors.find(c => c.id == props.jobHasContractorId);\n\n const findMachineries = loading.wrap(async (\n machineryTypeId: number | undefined,\n subTypeId: number | undefined = undefined) => {\n\n selectedMachinery.clear();\n const searchContractor: any = currentContractor;\n if (machineryTypeId && searchContractor?.contractor != undefined) {\n let result: IMachinery[] = [];\n const contractors = subContractors\n .current\n .concat([searchContractor]);\n\n for (let i = 0; i < contractors.length; i++) {\n const contractorId = contractors[i].contractorId;\n const jobHasContractorId = contractors[i].id;\n\n if (canAddSubMachineries(contractorId)) {\n const resp = await props.searchMachineries(\n props.workId,\n null,\n machineryTypeId,\n contractorId,\n props.job.id);\n\n const machineriesList = resp\n .map((m: IMachinery) => {\n const licenseNumber = strConcat(\n m.prefixLicenseNumber,\n m.licenseNumber,\n m.suffixLicenseNumber);\n const hasName = m.name && m.name != '';\n const hasCode = m.code && m.code != '';\n let uniqueName = hasName\n ? m.name\n : hasCode\n ? m.code\n : licenseNumber;\n\n if (props.work.settingsObj?.mainContractorCanFulfillSubs\n || (props.work.contractorSettings?.canAddSubMachineries ?? false)) {\n uniqueName = `[${m.contractor?.name}] ${uniqueName}`;\n\n if (Constants.isDebug) {\n uniqueName = `${uniqueName} (id = ${m.id})`;\n }\n }\n return { ...m, name: uniqueName, jobHasContractorId: jobHasContractorId };\n });\n\n result = result.concat(machineriesList);\n }\n }\n\n const excludeMachineries = existingMachineries\n .value.filter(j =>\n j.jobHasContractorId == props.selectedJobHasContractor?.id\n || props.selectedJobHasContractor == undefined)\n .map(j => j.machineryId);\n\n result = unique(result)\n .filter(m => !excludeMachineries.includes(m.id))\n .map(m => ({...m, name: props.moduleManager.format('machinery', m) ?? m.name }));\n\n // .filter(m => m.contractorId === contractorCurrent.current?.contractorId\n // || m.contractorId === currentContractor?.contractorId);\n\n if (subTypeId != undefined) {\n result = result.filter(m => m.machinerySubTypeId == subTypeId);\n }\n\n setMachineries(result);\n }\n else {\n setMachineries([]);\n }\n });\n\n const initialize = async () => {\n const contractors: IJobHasContractor[] = await props.getJobContractors(props.workId, props.job.id);\n const selfJobHasContractor = props.selectedJobHasContractor;\n contractorCurrent.current = selfJobHasContractor;\n\n const subcontractors = contractors.filter(c => c.parentId == selfJobHasContractor?.id);\n const subcontractorIds = subcontractors.map(c => c.contractorId);\n const deepSubcontractors: any = [];\n contractors.map(c => {\n if (subcontractorIds.includes(c.parentId ?? 0)) {\n deepSubcontractors.push(c);\n }\n });\n subContractors.current = subcontractors.concat(deepSubcontractors);\n }\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n React.useEffect(() => {\n findMachineries(selectedMachineryType.value, selectedMachinerySubType.value);\n const mt = props.machineryTypes.find(mt => mt.id == selectedMachineryType.value);\n if (mt != undefined) {\n setAvailableSubTypes(mt\n .subTypes?.sort((a: IMachinerySubType, b: IMachinerySubType) => a.name.localeCompare(b.name)) ?? []);\n }\n }, [selectedMachineryType.value, selectedContractor.value, selectedMachinerySubType.value]);\n\n const doAdd = loading.wrap(async (..._: any) => {\n // const jobHasContractorId = props.selectedJobHasContractor?.id;\n const m = machineries\n .find(d => d.id == selectedMachinery.value)!;\n\n const newRecord: IJobHasMachinery = {\n ...addRecord.value,\n jobId: props.job.id,\n startDate: new Date(),\n machineryId: m.id,\n jobHasContractorId: m.jobHasContractorId ?? selectedJobHasContractor.value ?? jobContractor,\n };\n\n const resp = await props.saveJobHasMachinery(\n props.workId,\n props.job.id,\n newRecord,\n selectedJobHasContractor.value || jobContractor);\n\n messages.set(resp);\n\n if (messages.isSuccess()) {\n selectedMachineryType.clear();\n selectedMachinery.clear();\n }\n\n if (resp.error == undefined && resp.hasValue) {\n setTimeout(() => {\n props.onChange();\n }, 1000);\n }\n });\n\n const canAdd = selectedMachineryType.hasValue() && selectedMachinery.hasValue();\n\n const machineryTypes = props\n .machineryTypes\n .sort((a: IMachineryType, b: IMachineryType) => a.name.localeCompare(b.name));\n\n return
\n
\n {t('Select machinery')}\n
\n\n
\n \n\n {availableSubTypes.length > 0 &&\n }\n\n {!props.security.isContractor() && props.jobHasContractorId == undefined &&\n }\n\n {(props.jobHasContractorId == undefined && selectedContractor.hasValue()) &&\n \n }\n\n \n\n {selectedMachinery.hasValue() &&\n }\n\n
\n\n {messages.render()}\n
\n
\n \n {loading.renderBox()}\n\n \n {t('Add')}\n \n
\n
\n}\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '@store';\nimport * as JobsStore from '@store/jobs';\nimport { SelectJobHasMachinery } from '@components/machineries/SelectJobHasMachinery';\nimport { hasPermission } from '@utils/security';\nimport { isMachineryPropertyGroupType } from '@models';\nimport * as U from '@utils';\n\nexport default connect(\n (state: ApplicationState, props: any) => ({\n ...JobsStore.plainActions,\n ...state.identity,\n ...state.user,\n ...state.jobs,\n propertyGroupTypes: state.user.propertyGroupTypes.filter(isMachineryPropertyGroupType),\n hasPermission: (p: string, explicit: boolean | undefined = undefined) => hasPermission(p, {\n user: state.identity?.user,\n work: state.user.work,\n job: state.jobs.selectedJob,\n explicit: explicit ?? true,\n }),\n moduleManager: state.modules.moduleManager,\n resourceStatusTypes: state.user.resourceStatusTypes,\n contractorId: props.contractorId,\n jobHasContractorId: props.jobHasContractorId ?? state.jobs.selectedJobHasContractor?.id ?? U.getQueryParameter(window.location.search, 'jobContractor', { map: parseInt })\n }),\n JobsStore.actionCreators,\n)(SelectJobHasMachinery as any) as any;\n","import * as React from 'react';\n\nimport {\n G, useForm, useLoading, useToast, useRemoteData, useTranslation, Portal, Panel,\n ValidationBuilder, useDialogs, RequirePermission, useResolveName, useSearchFirst\n} from '@components';\nimport { DynamicProperties } from '@components/user/DynamicProperties';\nimport {\n IJob, IJobHasWorker, IPropertyGroup, IPropertyGroupType, ISecurity, IWork, PropertyGroupObjectType, ResourceType\n} from '@models';\nimport ForceValidationResourceContainer from '@containers/requirements/ForceValidationResourceContainer';\nimport { redirectTo } from '@utils';\nimport { IContractor, IWorkerDocumentType, IWorkerType } from '@models/resources';\nimport { ResourceStatus } from '@components/common/ResourceStatus';\n\nexport interface IProps {\n getJobHasWorker: (workId: number, jobId: number, relationId: number) => Promise,\n jobHasWorker: IJobHasWorker;\n onCancel: Function;\n onSuccess: Function;\n propertyGroupTypes: IPropertyGroupType[];\n saveJobHasWorker: Function;\n security: ISecurity;\n work: IWork;\n job: IJob;\n jobHasContractorId?: number;\n workerTypes: IWorkerType[];\n workerDocumentTypes: IWorkerDocumentType[];\n}\n\ntype FormData = Partial;\n\nenum FormType {\n Data = 0,\n}\n\nexport const validateJobWorkerData = (data: IJobHasWorker) => {\n return ValidationBuilder.create(data).notEmpty('name').build();\n}\n\nexport function EditJobHasWorker(props: IProps) {\n const loading = useLoading();\n const { t } = useTranslation();\n const toast = useToast();\n const dialogs = useDialogs();\n\n const resolveWorkerType = useResolveName(props.workerTypes);\n const resolveWorkerDocumentType = useResolveName(props.workerDocumentTypes);\n\n const contractorData = useSearchFirst({\n workId: props.work.id,\n search: 'workers/contractor.get',\n filters: {\n contractorId: props.jobHasWorker.worker?.contractorId\n }\n });\n\n const jobHasWorker = useRemoteData(\n props.getJobHasWorker, {\n parameters: [props.work.id, props.jobHasWorker.jobId, props.jobHasWorker.id]\n });\n\n const [formType, setFormType] = React.useState(FormType.Data);\n\n const save = loading.wrap(async (req: FormData) => {\n req.jobHasContractorId = props.jobHasContractorId;\n const resp = await props.saveJobHasWorker(props.work.id, req);\n\n if (resp.hasValue) {\n toast.show(t('Worker saved successfully'));\n return { ok: true };\n }\n else {\n return { ok: false, message: resp.error };\n }\n });\n\n const doSave = (..._: any) => {\n save(form.values);\n }\n\n const loadRequirements = () => {\n redirectTo(`/work/${props.work.id}/jobs/${props.job.id}/worker/${props.jobHasWorker.id}/requirements`);\n }\n\n const form = useForm({\n initialValues: {\n id: props.jobHasWorker.id,\n jobId: props.jobHasWorker.jobId,\n startDate: props.jobHasWorker.startDate,\n workerId: props.jobHasWorker.workerId,\n fullName: props.jobHasWorker.fullName,\n properties: props.jobHasWorker.properties ?? [],\n },\n onSubmit: function(data: FormData) {\n return save(data);\n }\n });\n\n return
\n \n \n
\n \n \n \n
\n {props.jobHasWorker.fullName}\n
}>\n
\n \n \n \n \n \n
\n \n \n\n \n
    \n
  • {props.jobHasWorker.fullName}
  • \n
\n
\n\n {dialogs.render('force-validation', { title: t('Force resource validation'), className: 'g pd' }, () =>\n \n )}\n\n {jobHasWorker.renderLoading()}\n\n {toast.render()}\n\n {formType == FormType.Data && <>\n
\n {t('Edit worker')}\n
\n
\n
\n \n {resolveWorkerDocumentType(props.jobHasWorker.worker?.workerDocumentTypeId)}\n \n \n {props.jobHasWorker.worker?.code}\n \n \n {props.jobHasWorker.worker?.name}\n \n \n {props.jobHasWorker.worker?.surname}\n \n \n {resolveWorkerType(props.jobHasWorker.worker?.workerTypeId)}\n \n \n {contractorData?.value?.name}\n \n {/* \n {form.input('startDate', {type:'date'})}\n */}\n
\n
\n form.setFieldValue('properties', v)}\n readonly />\n
\n
\n
\n
\n \n
\n props.onCancel()}>\n {t('Cancel')}\n \n \n {t('Save')}\n \n
\n
\n }\n
\n}\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '@store/index';\nimport * as JobsStore from '@store/jobs';\nimport { EditJobHasWorker } from '@components/jobs/EditJobHasWorker';\nimport { isWorkerPropertyGroupType } from '@models';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...JobsStore.plainActions,\n propertyGroupTypes: state.user.work?.propertyGroupTypes?.filter(isWorkerPropertyGroupType),\n resourceStatusTypes: state.user.resourceStatusTypes,\n workerTypes: state.user.workerTypes,\n workerDocumentTypes: state.user.workerDocumentTypes,\n }),\n JobsStore.actionCreators,\n)(EditJobHasWorker as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\r\n\r\nimport {\r\n BreadcrumbItem, Tag,\r\n useConfirm,\r\n useDataTable, useLoading, useSearch, useTranslation,\r\n useScheduler, useSignalR, useDialogs, useSearchFilters, Portal, usePermissions, onChange, Tooltip\r\n} from '@components';\r\nimport {\r\n IJob, IJobHasWorker, IResourceStatusType, ISecurity,\r\n IUserIdentity, IWork, IWorkSettings, IWorker, ModuleManager, ResourceType\r\n} from '@models';\r\nimport EditJobHasWorkerContainer from '@containers/jobs/EditJobHasWorkerContainer';\r\n\r\nimport './ManageJobWorkers.scss';\r\nimport { redirectTo } from '@utils';\r\nimport { IWorkerDocumentType, IWorkerType, ResourceStatusType, resourceStatusTypes } from '@models/resources';\r\nimport { ResourceStatus } from '@components/common/ResourceStatus';\r\nimport ForceValidationResourceContainer from '@containers/requirements/ForceValidationResourceContainer';\r\nimport { IRequirementNotification } from '@models/requirements';\r\nimport { IJobHasContractor } from '@models';\r\n\r\nexport interface IProps {\r\n activateJobHasWorker: Function;\r\n jobHasContractorId?: number;\r\n getJobHasWorkers: Function;\r\n job: IJob;\r\n jobHasWorker?: IJobHasWorker;\r\n relationId?: number;\r\n resourceStatusTypes: IResourceStatusType[];\r\n security: ISecurity;\r\n work: IWork;\r\n workSettings: IWorkSettings;\r\n workers: IWorker[];\r\n removeJobHasWorker: Function;\r\n deleteJobHasWorker: Function;\r\n refreshWorkers: Function;\r\n appUsers: IUserIdentity[];\r\n workerTypes: IWorkerType[];\r\n workerDocumentTypes: IWorkerDocumentType[];\r\n selectedJobHasContractor?: IJobHasContractor;\r\n moduleManager: ModuleManager;\r\n}\r\n\r\nenum FormType {\r\n List = 0,\r\n Worker = 1,\r\n}\r\n\r\ntype IJobHasWorkerR = IJobHasWorker & {\r\n workerFullName: string;\r\n workerCode: string;\r\n workerContractorName: string;\r\n workerContractorId: number;\r\n\r\n validatedCount?: number;\r\n totalCount?: number;\r\n}\r\n\r\nexport function ManageJobWorkers(props: IProps) {\r\n const { t } = useTranslation();\r\n const dialogs = useDialogs();\r\n const loading = useLoading();\r\n\r\n const [canRemoveState, setCanRemoveState] = React.useState(false);\r\n\r\n const [canValidateState, setCanValidateState] = React.useState(false);\r\n\r\n const filters = useSearchFilters({\r\n security: props.security,\r\n workId: props.work.id,\r\n name: 'workers/manageJobWorkers',\r\n persist: true,\r\n references: {\r\n resourceStatusTypes: resourceStatusTypes,\r\n },\r\n });\r\n\r\n const query = useSearch({\r\n workId: props.work.id,\r\n lazy: true,\r\n search: 'jobs/workers',\r\n normalizeKeys: true,\r\n filters: filters.merge({\r\n jobId: props.job.id,\r\n workId: props.work.id,\r\n jobHasContractorId: props.relationId ?? props.selectedJobHasContractor?.id ?? props.jobHasContractorId,\r\n onlyMainContractors: props.security.isGestorOrWorker() && props.jobHasContractorId == undefined\r\n ? true\r\n : undefined,\r\n }),\r\n });\r\n\r\n const [formType, setFormType] = React.useState(\r\n props.jobHasWorker ? FormType.Worker : FormType.List);\r\n\r\n const [selectedWorker, setSelectedWorker] = React.useState(props.jobHasWorker);\r\n\r\n const doRemoveWorker = loading.wrap(async (i: IJobHasWorker) => {\r\n await props.removeJobHasWorker(props.work.id, props.job.id, i.id);\r\n props.refreshWorkers();\r\n await reload();\r\n });\r\n\r\n React.useEffect(() => {\r\n reload();\r\n }, [filters.signature, props.job]);\r\n\r\n const confirmRemove = useConfirm({\r\n message: t('Are you sure to finalize worker from this job?'),\r\n accept: doRemoveWorker\r\n });\r\n\r\n const doDeleteWorker = loading.wrap(async (i: IJobHasWorker) => {\r\n await props.deleteJobHasWorker(props.work.id, props.job.id, i.id);\r\n props.refreshWorkers();\r\n await reload();\r\n });\r\n\r\n const confirmDelete = useConfirm({\r\n message: t('Are you sure you want to remove the worker from this job?'),\r\n accept: doDeleteWorker\r\n });\r\n\r\n const reload = async () => {\r\n await query.doSearch() ?? [];\r\n const workers = query.value ?? [];\r\n if (selectedWorker) {\r\n const worker = workers.find(w => w.id == selectedWorker.id);\r\n setSelectedWorker(worker);\r\n }\r\n }\r\n\r\n const canRemove = props.security.hasPermission('jobHasWorker.remove')\r\n\r\n const calculateCanRemove = async () => {\r\n const res = await props.moduleManager.requirePermission('jobHasWorker.remove', {\r\n work: props.work,\r\n security: props.security\r\n }, canRemove);\r\n\r\n setCanRemoveState(res ?? false);\r\n };\r\n\r\n React.useEffect(() => {\r\n calculateCanRemove();\r\n }, []);\r\n\r\n const canValidate = props.security.hasPermission('jobs.resources.validate');\r\n\r\n const calculateCanValidate = async () => {\r\n const res = await props.moduleManager.requirePermission('jobs.resources.validate', {\r\n work: props.work,\r\n security: props.security\r\n }, canValidate);\r\n\r\n setCanValidateState(res ?? false);\r\n };\r\n\r\n React.useEffect(() => {\r\n calculateCanValidate();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (selectedWorker) {\r\n setFormType(FormType.Worker);\r\n }\r\n else {\r\n setFormType(FormType.List);\r\n }\r\n }, [selectedWorker]);\r\n\r\n const [workers, setWorkers] = React.useState([]);\r\n\r\n const workSettings: IWorkSettings | undefined = props.work.settingsObj;\r\n const HideByDefaultEnded = workSettings?.hideByDefaultEnded ?? false;\r\n\r\n React.useEffect(() => {\r\n if (HideByDefaultEnded && filters.filters.resourceStatusTypes != 3) {\r\n const filteredContractors = query.value.filter((c: IJobHasWorkerR) => c.currentStatusType !== 3);\r\n setWorkers(filteredContractors);\r\n } else {\r\n setWorkers(query.value ?? []);\r\n }\r\n }, [query.value]);\r\n\r\n const renderStatus = (s: IJobHasWorker) =>\r\n ;\r\n\r\n const reactivateJobHasWorker = loading.wrap(async (s: IJobHasWorker) => {\r\n await props.activateJobHasWorker(props.work.id, props.job.id, s.workerId!, s.id);\r\n reload();\r\n });\r\n\r\n const canShowDocumentation = (w: IJobHasWorkerR) =>\r\n props.security.isContractor()\r\n // && props.workSettings.mainContractorCanFulfillSubs == true\r\n ? true\r\n // : props.security.isContractor()\r\n // ? w.workerContractorId == selfContractorId\r\n : true;\r\n\r\n const perms = usePermissions(props, {}, {\r\n 'removeWorker': 'job.workers.remove',\r\n });\r\n\r\n const createId = (name: string) => {\r\n return `i${name.replace(/[\\s\\W]+/g, '').toLowerCase()}`;\r\n }\r\n\r\n const dataTable = useDataTable({\r\n tooltip: true,\r\n columns: [\r\n { title: t('workerCode'), field: 'workerCode', className: 'td-md', sortKey: 'workerCode', },\r\n { title: t('Name'), field: 'workerFullName', sortKey: 'workerFullName', },\r\n {\r\n title: t('Contractor'),\r\n sortKey: 'workerContractorName',\r\n render: d => d.workerContractorName\r\n ? <>\r\n \r\n \r\n \r\n {d.workerContractorName}\r\n \r\n : null,\r\n className: 'center',\r\n\r\n },\r\n { title: t('AssignmentDate'), field: 'startDate', delegate: 'date', className: 'td-md', sortKey: 'startDate', },\r\n { title: 'currentStatusType', field: 'currentStatusType', render: renderStatus, className: 'td-md', sortKey: 'currentStatusType', },\r\n {\r\n title: t('Documentation'), className: 'td-indicator',\r\n render: d =>\r\n canShowDocumentation(d)\r\n ?
loadRequirements(d.id)} className='pointer'>\r\n \r\n
\r\n : null\r\n },\r\n {\r\n className: 'td-sm',\r\n render: s => (s.hasDelayedRevokation && props.work.jobSettings?.showResourceIncidenceIndicator)\r\n ? \r\n : null,\r\n },\r\n ],\r\n actions: [\r\n (canRemoveState)\r\n ? {\r\n icon: d => d.currentStatusType == ResourceStatusType.FINALIZED\r\n ? 'fas fa-redo'\r\n : 'pi pi-minus-circle',\r\n onClick: (d, event) => d.currentStatusType == ResourceStatusType.FINALIZED\r\n ? reactivateJobHasWorker(d)\r\n : confirmRemove(d, event),\r\n tooltip: d => d.currentStatusType == ResourceStatusType.FINALIZED\r\n ? t('Reactivate')\r\n : t('Finalize job worker')\r\n }\r\n : undefined,\r\n (perms.get('removeWorker'))\r\n ? { icon: 'trash', onClick: confirmDelete, tooltip: t('Remove job worker') }\r\n : undefined,\r\n (canValidateState && !props.security.isContractor())\r\n ? {\r\n icon: 'pi pi-check-square',\r\n tooltip: t('Force resource validation'),\r\n onClick: r => dialogs.showFromEvent('force-validation', r)()\r\n }\r\n : undefined,\r\n ],\r\n data: workers,\r\n loading: query.loading,\r\n });\r\n\r\n const loadRequirements = (id: number) => {\r\n redirectTo(`/work/${props.work.id}/jobs/${props.job.id}/worker/${id}/requirements`);\r\n }\r\n\r\n const scheduler = useScheduler();\r\n\r\n const _ = useSignalR({\r\n method: 'RequirementNotification',\r\n onMessage: r => {\r\n if (r.workId == props.work.id\r\n && (r.resourceType == ResourceType.JobHasWorker\r\n || r.resourceType == ResourceType.Worker)) {\r\n // scheduler.schedule(reload, 1500);\r\n }\r\n }\r\n });\r\n\r\n return
\r\n \r\n
\r\n {filters.renderAsButton({ className: 'fas fa-filter pointer' })}\r\n
\r\n
\r\n setFormType(FormType.List)} />\r\n\r\n {dialogs.render('force-validation', { title: t('Force resource validation') }, (d: IJobHasWorker) =>\r\n {\r\n dialogs.clear();\r\n reload();\r\n }}\r\n resourceType={ResourceType.JobHasWorker}\r\n resourceId={d.id} />\r\n )}\r\n\r\n {formType === FormType.List && <>\r\n {dataTable()}\r\n }\r\n {formType === FormType.Worker &&
\r\n {selectedWorker &&\r\n setSelectedWorker(undefined)}\r\n onSuccess={() => reload()}\r\n work={props.work} />}\r\n
}\r\n
\r\n}\r\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport { ManageJobWorkers } from '../../components/jobs/ManageJobWorkers';\n\nexport default connect(\n (state: ApplicationState, props: any) => ({\n ...state.identity,\n ...state.user,\n ...JobsStore.plainActions,\n ...state.jobs,\n workSettings: state.user.work?.settingsObj,\n jobHasContractorId: props.jobHasContractorId ?? state.jobs.selectedJobHasContractor?.id,\n moduleManager: state.modules.moduleManager,\n }),\n JobsStore.actionCreators,\n)(ManageJobWorkers as any) as any;\n","import * as React from 'react';\n\nimport {\n IJob, IWork, IPropertyGroup, PropertyGroupObjectType, IPropertyGroupType,\n IJobHasContractor,\n IJobHasWorker, IWorker, IPaginateResult, ISecurity, IUserIdentity, ModuleManager,\n} from '@models';\nimport {\n Accordion, AccordionTab, F,\n useDataTable, useForm, useLoading, useSearch, useStringState, useTranslation,\n ValidationBuilder, Select, useNumberState, usePermissions,\n} from '@components';\nimport { unique } from '@utils';\nimport DateUtils from '@utils/date-utils';\nimport { DynamicProperties } from '@components/user/DynamicProperties';\nimport { BreadcrumbItem } from '@components/custom/BreadcrumbItem';\n\nexport interface IProps {\n contractorId?: number;\n job: IJob;\n jobHasContractorId?: number;\n selectedJobHasContractor?: IJobHasContractor;\n getJobHasContractor: Function;\n propertyGroupTypes: IPropertyGroupType[];\n onCancel: Function;\n onSuccess: Function;\n saveJobHasWorker: Function;\n searchWorkers: Function;\n security: ISecurity;\n work: IWork;\n getJobContractors: Function;\n user: IUserIdentity;\n moduleManager: ModuleManager;\n}\n\nconst validateJobHasWorker = (data: Partial) => {\n return ValidationBuilder\n .create(data)\n .notEmpty('startDate', 'Date is required')\n .build();\n}\n\nconst isValid = (data: Partial) => {\n return Object.keys(validateJobHasWorker(data)).length == 0;\n}\n\ntype IExistingWorkerR = {\n workerId: number;\n}\n\ntype IWorkerRow = IWorker & {\n contractorName?: string;\n jobHasContractorId?: number;\n}\n\nfunction JobAddWorkerImpl(props: IProps) {\n const { t } = useTranslation();\n const currentSearchTerm = useStringState();\n const loading = useLoading(false);\n\n const viewParentSelector = () => props.user?.roles.includes('gestor')\n //TODO remove key\n const showProperties = props.work.id != 23;\n\n const subContractors = React.useRef([]);\n const activeContractor = React.useRef();\n\n const [activeIndex, setActiveIndex] = React.useState(0);\n const [workers, setWorkers] = React.useState>({\n total: 0,\n data: [],\n page: 0,\n limit: 20\n });\n const [selectedWorker, setSelectedWorker] = React.useState();\n const [parentContractors, setParentContractors] = React.useState([]);\n const selectedJobHasContractor = useNumberState();\n\n type SearchR = {\n parentContractorId?: number;\n parentContractorName?: string;\n jobHasContractorId: number;\n }\n\n // #1125: Trabajadores a pessma, cada una la suya\n const canAddSubWorkers = props.security.isContractor()\n ? (props.work.contractorSettings?.canAddSubWorkers ?? false)\n : true;\n\n const searchContractorHasContracts = useSearch({\n search: 'contractorHasContracts.list',\n normalizeKeys: true,\n workId: props.work.id,\n filters: {\n contractorId: selectedWorker?.contractor?.id,\n jobId: props.job.id,\n },\n lazy: true,\n dependencies: [selectedWorker?.contractor?.id, props.job.id]\n });\n\n React.useEffect(() => {\n if (selectedWorker?.contractor?.id != undefined && viewParentSelector()) {\n searchContractorHasContracts.doSearch({\n contractorId: selectedWorker?.contractor?.id,\n jobId: props.job.id\n });\n }\n }, [selectedWorker?.contractor?.id]);\n\n React.useEffect(() => {\n if (searchContractorHasContracts.value != undefined\n && searchContractorHasContracts.value.length > 0\n && viewParentSelector()) {\n const parentContractors = searchContractorHasContracts.value.map((c: any) => ({\n parentContractorId: c.parentContractorId,\n parentContractorName: calculateLevel(c),\n jobHasContractorId: c.jobHasContractorId,\n }));\n setParentContractors(parentContractors);\n } else {\n setParentContractors([]);\n }\n }, [searchContractorHasContracts.value]);\n\n const contractors = [\n { id: undefined, name: t('Filter by contractor') } as any\n ].concat(props.job.contractors.map(c => ({ ...c, name: c.contractor.name })));\n\n const calculateLevel = (jobHasContractor: SearchR) => {\n let level = 0;\n let parentContractorId = jobHasContractor.parentContractorId;\n while (parentContractorId != undefined) {\n let parentContractor = contractors.find(c => c.id == parentContractorId);\n if (parentContractor != undefined) {\n parentContractorId = parentContractor.parentId\n }\n else {\n parentContractorId = undefined;\n }\n level++;\n }\n\n level--;\n\n return level === -1\n ? t('main contractor')\n : `${jobHasContractor.parentContractorName} ${t('level')} ${level}`;\n }\n\n const existingWorkers = useSearch({\n workId: props.work.id,\n search: 'jobs/existingWorkers',\n filters: {\n jobId: props.job.id,\n workId: props.work.id,\n },\n });\n\n const initializeForWorkers = async () => {\n const contractors: IJobHasContractor[] = await props.getJobContractors(props.work.id, props.job.id);\n subContractors.current = contractors;\n }\n\n const initializeForContractors = async () => {\n const contractors: IJobHasContractor[] = await props.getJobContractors(props.work.id, props.job.id);\n const selectedContractor = props.selectedJobHasContractor;\n activeContractor.current = selectedContractor;\n const subcontractors = contractors.filter(c => c.parentId == selectedContractor?.id);\n const subcontractorIds = subcontractors.map(c => c.contractorId);\n const deepSubcontractors: any = [];\n contractors.map(c => {\n if (subcontractorIds.includes(c.parentId ?? 0)) {\n deepSubcontractors.push(c);\n }\n });\n subContractors.current = subcontractors.concat(deepSubcontractors);\n }\n\n const initialize = () => {\n if (props.security.isContractor()) {\n return initializeForContractors();\n }\n else {\n return initializeForWorkers();\n }\n };\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const doSearch = loading.wrap(async (term: string | undefined) => {\n const jobHasContractors =\n props.security.isContractor() && canAddSubWorkers && props.selectedJobHasContractor\n ? subContractors.current.concat([props.selectedJobHasContractor])\n : props.security.isContractor() && props.selectedJobHasContractor\n ? [props.selectedJobHasContractor]\n : props.security.isContractor()\n ? []\n : subContractors.current;\n\n let data: any = [];\n\n for (const jhc of jobHasContractors) {\n const res = await props.searchWorkers(\n props.work.id,\n term,\n props.job.id,\n jhc.contractorId);\n data = data.concat(res.data.map((w: IWorker) => ({\n ...w,\n contractorName: jhc.contractor?.name,\n jobHasContractorId: jhc.id\n })));\n }\n\n const excludeWorkers = existingWorkers\n .value?.filter((w: IJobHasWorker) =>\n w.jobHasContractorId == props.selectedJobHasContractor?.id\n || props.selectedJobHasContractor == undefined)?.map((w: IJobHasWorker) => w.workerId) ?? [];\n\n const workers = unique(data)\n .filter(w => w.contractorId != undefined && !excludeWorkers.includes(w.id));\n\n setWorkers({\n ...data,\n data: workers,\n });\n });\n\n React.useEffect(() => {\n doSearch(currentSearchTerm.value);\n }, [existingWorkers.value, currentSearchTerm.value]);\n\n React.useEffect(() => {\n setActiveIndex(selectedWorker ? 1 : 0);\n }, [selectedWorker]);\n\n const saveWorkerRelation = loading.wrap(async (data: Partial) => {\n const resp = await props.saveJobHasWorker(props.work.id, data);\n if (resp.hasValue) {\n props.onSuccess('Worker added successfully');\n return { ok: true };\n }\n else {\n return { ok: false, message: resp.error };\n }\n });\n\n const form = useForm>({\n initialValues: {\n jobId: props.job.id,\n properties: [],\n startDate: DateUtils.toIso8601(new Date()),\n },\n validate: (data: Partial) => {\n return validateJobHasWorker(data);\n },\n onSubmit: (data: Partial) => {\n data.workerId = selectedWorker?.id;\n data.jobHasContractorId =\n selectedWorker?.jobHasContractorId\n ?? props.jobHasContractorId\n ?? selectedJobHasContractor.value;\n return saveWorkerRelation(data);\n },\n });\n\n const workersTable = useDataTable({\n columns: [\n { title: t('workerCode'), field: 'code', sortKey: 'code' },\n { title: t('name'), field: 'name', sortKey: 'name' },\n { title: t('surname'), field: 'surname', sortKey: 'surname' },\n { title: t('Contractor'), field: 'contractor', sortKey: 'contractor', render: d => d.contractor?.name }\n ],\n actions: [\n { text: 'Select', headerStyle: { width: '116px' }, className: 'alt slim', onClick: setSelectedWorker }\n ],\n data: workers?.data,\n });\n\n return <>\n \n {t('Add worker')}\n \n setActiveIndex(e.index)}>\n \n
\n
\n \n {loading.render()}\n {existingWorkers.renderLoading()}\n
\n {!existingWorkers.loading.isLoading() &&\n workersTable()\n }\n
\n
\n \n {selectedWorker &&\n \n
\n
\n \n \n \n {selectedWorker?.name}\n \n \n {selectedWorker?.surname}\n \n \n \n \n \n \n {selectedWorker?.contractor?.name}\n \n \n \n {viewParentSelector() && \n \n }\n
\n {form.errorBox()}\n
\n
\n\n {showProperties &&
\n form.setFieldValue('properties', properties)} />\n
}\n
\n
\n
\n \n
\n props.onCancel()}>\n {t('Cancel')}\n \n \n {t('Create')}\n \n
\n
\n }\n
\n \n ;\n}\n\n\nexport function JobAddWorker(props: IProps) {\n const ctx = {\n BreadcrumbItem: BreadcrumbItem\n }\n\n if (props.user.roles.includes('gestor')) {\n return JobAddWorkerImpl(props);\n }\n\n const res = props\n .moduleManager\n .renderComponent('JobAddWorker', { ...props, ctx }, JobAddWorkerImpl);\n\n return res;\n}\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '@store/index';\nimport * as JobsStore from '@store/jobs';\nimport { JobAddWorker } from '@components/jobs/JobAddWorker';\nimport { isWorkerPropertyGroupType } from '@models';\nimport * as U from '@utils';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...JobsStore.plainActions,\n propertyGroupTypes: state.user.work?.propertyGroupTypes?.filter(isWorkerPropertyGroupType),\n contractorId: state.jobs.selectedJobHasContractor?.contractorId,\n jobHasContractorId: U.getQueryParameter(\n window.location.search,\n 'jobContractor', { map: parseInt }\n ) ?? state.jobs.selectedJobHasContractor?.id,\n ...state.identity?.security,\n ...state.identity,\n ...state.jobs,\n moduleManager: state.modules.moduleManager,\n }),\n JobsStore.actionCreators,\n)(JobAddWorker as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\nimport { connect } from 'react-redux';\n\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '@store/jobs';\nimport * as RequirementStore from '@store/requirements';\n\nimport { UploadRequirement } from '@components/jobs/UploadRequirement';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.user,\n ...state.identity,\n ...JobsStore.plainActions,\n ...RequirementStore.plainActions,\n }),\n JobsStore.actionCreators,\n)(UploadRequirement as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { BreadcrumbItem, G, ValidationBuilder, useForm, useLoading, useTranslation, useMessage, } from '@components';\nimport { IOption, ISecurity } from '@models';\nimport { IRequirementFulfillData, IRequirementFulfillDocument, RequirementTargetType } from \"@models/requirements\";\nimport { goToJobEditContractorRequirements, goToJobEditMachineryRequirements, goToJobEditWorkerRequirements, goToJobMachineries, goToJobRequirements } from '../routes';\nimport { formatFileSize } from '@utils';\n\nimport './CreateRequirement.scss';\n\ntype CreateT = (\n workId: number,\n jobId: number,\n data: IRequirementFulfillData,\n resourceType: number | undefined,\n resourceId: number | undefined,\n statusType: number | undefined) => Promise>;\n\ntype CreateData = {\n title: string,\n remarks?: string,\n jobId: number,\n workId: number,\n}\n\nexport interface IProps {\n createFreeRequirement: CreateT;\n jobId: number;\n security: ISecurity;\n workId: number;\n\n resourceType?: number;\n resourceId?: number;\n statusType?: number;\n}\n\nexport function UploadRequirement(props: IProps) {\n const loading = useLoading();\n const msg = useMessage();\n const { t } = useTranslation();\n\n const [data, setData] = React.useState();\n\n const form = useForm({\n initialValues: {\n jobId: props.jobId,\n title: '',\n remarks: '',\n workId: props.workId,\n },\n validateOnMount: true,\n validate: ValidationBuilder.new().notEmpty('title').lift(),\n });\n\n const cancel = () => goToJobRequirements(props.workId, props.jobId);\n\n const fileToData = (f: any) => {\n const doc: IRequirementFulfillDocument = {\n resourceId: f,\n name: f.name,\n fileSize: f.size,\n mimeType: f.type,\n }\n setData(doc);\n }\n\n const onSelectFile = (e: any) => {\n const files = e.target.files;\n if (files.length > 0) {\n const file = files[files.length - 1];\n\n fileToData(file);\n }\n }\n\n const onDrop = (e: any) => {\n e.persist();\n e.preventDefault();\n e.stopPropagation();\n\n const dt = e.dataTransfer;\n\n if (dt.files.length > 0) {\n const f = dt.files[0];\n fileToData(f);\n }\n\n return false;\n }\n\n const allowDrop = (e: any) => {\n e.preventDefault();\n }\n\n const createRequirement = loading.wrap(async () => {\n const res = await props.createFreeRequirement(\n props.workId,\n props.jobId,\n {\n title: form.values.title,\n remarks: form.values.remarks,\n requirementId: 0,\n workId: props.workId,\n documents: data ? [data] : [],\n },\n props.resourceType,\n props.resourceId,\n props.statusType\n );\n msg.set(res);\n\n if (props.resourceType == RequirementTargetType.JobHasContractor) {\n goToJobEditContractorRequirements(props.workId, props.jobId, props.resourceId!);\n }\n else if (props.resourceType == RequirementTargetType.JobHasWorker) {\n goToJobEditWorkerRequirements(props.workId, props.jobId, props.resourceId!);\n }\n else if (props.resourceType == RequirementTargetType.JobHasMachinery) {\n goToJobEditMachineryRequirements(props.workId, props.jobId, props.resourceId!);\n }\n else if (res.hasValue) {\n goToJobRequirements(props.workId, props.jobId);\n }\n });\n\n const canCreateRequirement =\n form.isValid() && (data != undefined || props.statusType != undefined);\n\n return
\n \n\n
\n
\n
\n \n {form.input('title', { autoFocus: true })}\n \n {/** #1145: PESSMA ocultar notas al crear requerimientos libres\n\n \n {form.textarea('remarks')}\n **/}\n
\n\n
\n {t('Drop or select files here')}\n \n\n \n
\n
\n\n {data != undefined &&
\n
\n \n {data.name}\n
\n\n
\n \n {formatFileSize(data.fileSize)}\n
\n
}\n
\n\n {msg.renderIfError()}\n\n
\n {loading.render()}\n
\n \n \n
\n
\n
\n}\n","import * as React from 'react';\nimport { connect } from 'react-redux';\n\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '@store/jobs';\nimport * as RequirementsStore from '@store/requirements';\n\nimport { CreateRequirement } from '@components/jobs/CreateRequirement';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.user,\n ...state.identity,\n ...JobsStore.plainActions,\n ...RequirementsStore.plainActions,\n ...state.work.work?.departments,\n }),\n)(CreateRequirement as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { BreadcrumbItem, G, ValidationBuilder, useForm, useLoading, useTranslation, useMessage, } from '@components';\nimport { IOption, ISecurity, IDepartment } from '@models';\nimport { IRequirementFulfillData, RequirementTargetType } from \"@models/requirements\";\nimport {\n goToJobEditContractorRequirements, goToJobEditMachineryRequirements, goToJobEditWorkerRequirements\n} from '../routes';\n\nimport './CreateRequirement.scss';\nimport RemoteHtml from '@components/custom/RemoteHtml';\n\ntype CreateT = (\n workId: number,\n jobId: number,\n data: IRequirementFulfillData,\n resourceType: number | undefined,\n resourceId: number | undefined,\n statusType: number | undefined\n) => Promise>;\n\ntype CreateData = {\n title: string,\n remarks?: string,\n jobId: number,\n isShared: boolean,\n workId: number,\n color?: string,\n departmentId?: number,\n}\n\nexport interface IProps {\n createFreeRequirement: CreateT;\n jobId: number;\n security: ISecurity;\n workId: number;\n departments: IDepartment[];\n\n resourceType?: number;\n resourceId?: number;\n statusType?: number;\n}\n\nexport function CreateRequirement(props: IProps) {\n const loading = useLoading();\n const msg = useMessage();\n const { t } = useTranslation();\n\n let color: string | undefined = undefined;\n\n const form = useForm({\n initialValues: {\n jobId: props.jobId,\n title: '',\n remarks: '',\n isShared: false,\n workId: props.workId,\n },\n validateOnMount: true,\n validate: ValidationBuilder.new().notEmpty('title').lift(),\n });\n\n const cancel = () => {\n if (props.resourceType == RequirementTargetType.JobHasContractor) {\n goToJobEditContractorRequirements(props.workId, props.jobId, props.resourceId!);\n }\n else if (props.resourceType == RequirementTargetType.JobHasWorker) {\n goToJobEditWorkerRequirements(props.workId, props.jobId, props.resourceId!);\n }\n else if (props.resourceType == RequirementTargetType.JobHasMachinery) {\n goToJobEditMachineryRequirements(props.workId, props.jobId, props.resourceId!);\n }\n }\n\n const createRequirement = loading.wrap(async () => {\n const res = await props.createFreeRequirement(\n props.workId,\n props.jobId,\n {\n title: form.values.title,\n remarks: form.values.remarks,\n color: color,\n departmentId: form.values.responsible,\n requirementId: 0,\n workId: props.workId,\n isShared: form.values.isShared,\n documents: [],\n },\n props.resourceType,\n props.resourceId,\n props.statusType\n );\n msg.set(res);\n\n if (props.resourceType == RequirementTargetType.JobHasContractor) {\n goToJobEditContractorRequirements(props.workId, props.jobId, props.resourceId!);\n }\n else if (props.resourceType == RequirementTargetType.JobHasWorker) {\n goToJobEditWorkerRequirements(props.workId, props.jobId, props.resourceId!);\n }\n else if (props.resourceType == RequirementTargetType.JobHasMachinery) {\n goToJobEditMachineryRequirements(props.workId, props.jobId, props.resourceId!);\n }\n });\n\n function departmentColorPortovesme(departmentId: number): string {\n switch (departmentId) {\n case 114:\n //Sicurezza - Orange\n color = \"#ff9b00\"\n break;\n case 115:\n //Terzi - Green\n color = \"#008000\";\n break;\n case 116:\n //HSE Terzi - Blue\n color = \"#0000ff\";\n break;\n case 122:\n //Responsabile Unità di Produzione - Light Green\n color = \"#00ff00\"\n break;\n case 119:\n //Appalti - Purple\n color = \"#8000ff\"\n break;\n default:\n color = \"#000000\";\n break;\n }\n return color;\n }\n\n return
\n \n\n
\n
\n
\n \n {form.input('title', { autoFocus: true })}\n \n {/** #1145: PESSMA ocultar notas al crear requerimientos libres\n \n {form.textarea('remarks')}\n \n */}\n
\n {props.workId == 21 && <>\n {form.select('responsible', props.departments.filter(d => d.id == 115 || d.id == 116 || d.id == 114 || d.id == 122 || d.id == 119).sort((a, b) => a.id - b.id))}\n {form.values.responsible != undefined && <>\n
\n }\n }\n
\n
\n \n {form.checkBox('isShared')}\n
\n
\n \n
\n
\n
\n
\n\n {msg.renderIfError()}\n\n
\n {loading.render()}\n
\n \n {t('Create')}\n
\n
\n
\n}\n","import * as React from 'react';\r\nimport { Route } from 'react-router';\r\n\r\nimport { getMachineryName, IJob, IJobHasContractor, ISecurity, IWork } from '@models';\r\n\r\nimport JobHasResourceRequirements from '@containers/jobs/JobHasResourceRequirementsContainer';\r\nimport JobRequirements from '@containers/jobs/JobRequirementsContainer';\r\nimport { getContractorFromAppUser } from '@store/actions/contractors';\r\nimport { RequirementTargetType } from '@models/requirements';\r\nimport * as Actions from '@store/actions/jobs';\r\nimport { BreadcrumbItem, DataLoader, useTranslation, Loading } from '@components';\r\nimport { getIntParams, getIntQueryParameters, getQueryParameter } from '@utils';\r\nimport Routes from '@components/routes';\r\n\r\nimport JobLoader from '@containers/user/JobLoader';\r\nimport CreateContractorInvitation from '@containers/contractors/CreateContractorInvitationContainer';\r\nimport JobDataContainer from '@containers/jobs/JobDataContainer';\r\nimport JobAddContractorContainer from '@containers/jobs/JobAddContractorContainer';\r\nimport JobContractorsContainer from \"@containers/jobs/JobContractorsContainer\";\r\nimport JobRequestContractorContainer from \"@containers/jobs/JobRequestContractorContainer\";\r\nimport JobContractorRequestsContainer from \"@containers/jobs/JobContractorRequestsContainer\";\r\nimport JobContractorSubRequestsContainer from '@containers/jobs/JobContractorSubRequestsContainer';\r\nimport JobInformationLoaded from '@containers/jobs/JobInformationLoadedContainer';\r\nimport JobInfoCardContainer from '@containers/jobs/JobInfoCardContainer';\r\nimport JobInformationLoadedControl from '@containers/jobs/JobInformationLoadedControlContainer';\r\nimport JobNotifyInformationLoaded from '@containers/jobs/JobNotifyInformationLoadedContainer';\r\nimport ManageJobMachineries from '@containers/jobs/ManageJobMachineriesContainer';\r\nimport AddJobHasMachinery from '@containers/jobs/AddJobHasMachineryContainer';\r\nimport SelectJobHasMachinery from '@containers/jobs/SelectJobHasMachineryContainer';\r\nimport ManageJobWorkersContainer from '@containers/jobs/ManageJobWorkersContainer';\r\nimport JobAddWorkerContainer from '@containers/jobs/JobAddWorkerContainer';\r\nimport UploadRequirement from '@containers/jobs/UploadRequirementContainer';\r\nimport CreateRequirement from '@containers/jobs/CreateRequirementContainer';\r\n\r\nimport { getJobHasContractor } from '@store/actions/jobs';\r\n\r\nexport interface IProps {\r\n children?: any;\r\n job: IJob;\r\n work: IWork;\r\n\r\n security: ISecurity;\r\n\r\n selectJobHasContractor: Function;\r\n selectedJobHasContractor?: IJobHasContractor;\r\n getJobHasContractor: Function;\r\n getJobContractors: Function;\r\n}\r\n\r\nconst WrappedJobHasContractorRequirements = (props: any) => {\r\n const { t } = useTranslation();\r\n const { jobid, jobhascontractorid, workid } = getIntParams(props.match.params);\r\n\r\n return Actions.getJobHasContractor(workid, jobid, jobhascontractorid)}>\r\n {rel =>\r\n
\r\n \r\n {/* redirectTo={Routes.jobHasContractorRoute(workid, jobid, rel.id)} /> */}\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n}\r\n\r\nconst WrappedJobHasMachineryRequirements = (props: any) => {\r\n const { t } = useTranslation();\r\n const { jobid, jobhasmachineryid, workid } = getIntParams(props.match.params);\r\n\r\n return Actions.getJobHasMachinery(workid, jobid, jobhasmachineryid)}>\r\n {rel =>\r\n
\r\n \r\n { /* redirectTo={Routes.jobHasMachineryRoute(workid, jobid, rel.id)} /> **/}\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n}\r\n\r\nconst WrappedJobHasWorkerRequirements = (props: any) => {\r\n const { t } = useTranslation();\r\n const { jobid, jobhasworkerid, workid } = getIntParams(props.match.params);\r\n\r\n return Actions.getJobHasWorker(workid, jobid, jobhasworkerid)}>\r\n {rel =>\r\n
\r\n \r\n { /** redirectTo={Routes.jobHasWorkerRoute(workid, jobid, rel.id)} /> **/}\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n}\r\n\r\nconst WrappedJobRequirements = (props: any) => {\r\n const { t } = useTranslation();\r\n const { jobid, workid } = getIntParams(props.match.params);\r\n\r\n return
\r\n
\r\n Actions.getJob(workid, jobid)}>\r\n {job =>\r\n \r\n }\r\n \r\n
\r\n
\r\n}\r\n\r\nconst WrappedJobCreateRequirement = (props: any) => {\r\n const {\r\n jobid, workid\r\n } = getIntParams(props.match.params);\r\n\r\n const { resourceType, resourceId, statusType } = getIntQueryParameters(window.location.search);\r\n\r\n return
\r\n Actions.getJob(workid, jobid)}>\r\n {job =>\r\n \r\n }\r\n \r\n
\r\n}\r\n\r\nconst WrappedJobCreateResourceRequirement = (props: any) => {\r\n const {\r\n jobid, workid\r\n } = getIntParams(props.match.params);\r\n\r\n const { resourceType, resourceId, statusType } = getIntQueryParameters(window.location.search);\r\n\r\n return
\r\n Actions.getJob(workid, jobid)}>\r\n {job =>\r\n \r\n }\r\n \r\n
\r\n}\r\n\r\nconst WrappedJobCard = (props: any) => {\r\n const { jobid, workid } = getIntParams(props.match.params);\r\n\r\n return
\r\n Actions.getJob(workid, jobid)}>\r\n {resp =>\r\n \r\n }\r\n \r\n
\r\n}\r\n\r\nconst WrappedJobInformationLoaded = (props: any) => {\r\n const { jobid, workid } = getIntParams(props.match.params);\r\n\r\n return
\r\n Actions.getJob(workid, jobid)}>\r\n {job =>\r\n \r\n }\r\n \r\n
\r\n}\r\n\r\nconst WrappedJobInformationLoadedControl = (props: any) => {\r\n const { jobid, workid } = getIntParams(props.match.params);\r\n\r\n return
\r\n Actions.getJob(workid, jobid)}>\r\n {job =>\r\n \r\n }\r\n \r\n
\r\n}\r\n\r\nconst WrappedJobNotifyInformationLoaded = (props: any) => {\r\n const { jobid, workid } = getIntParams(props.match.params);\r\n\r\n return
\r\n Actions.getJob(workid, jobid)}>\r\n {job =>\r\n \r\n }\r\n \r\n
\r\n}\r\n\r\nconst WrappedEditJobData = (props: any) => {\r\n const { jobid, workid } = getIntParams(props.match.params);\r\n\r\n return ;\r\n}\r\n\r\nconst WrappedJobContractors = (props: any) => {\r\n const { jobid, workid } = getIntParams(props.match.params);\r\n const parentId: number | undefined = getQueryParameter(\r\n window.location.search,\r\n 'parentId',\r\n { map: parseInt });\r\n const loadInvitations: boolean = getQueryParameter(\r\n window.location.search,\r\n 'loadInvitations',\r\n { map: v => v == 'true' }) ?? true;\r\n\r\n return \r\n Routes.goToJobAddContractor(workid, jobid, d?.id)} />\r\n}\r\n\r\nconst WrappedJobContractor = (props: any) => {\r\n const { jobid, workid, jobhascontractorid } = getIntParams(props.match.params);\r\n\r\n return Actions.getJobHasContractor(workid, jobid, jobhascontractorid)}>\r\n {rel =>\r\n \r\n Routes.goToJobAddContractor(workid, jobid, d?.id)} />}\r\n ;\r\n}\r\n\r\nconst WrappedAddContractor = (props: any) => {\r\n const { jobid, workid } = getIntParams(props.match.params);\r\n const parentId: number | undefined = getQueryParameter(\r\n window.location.search,\r\n 'parentId',\r\n { map: parseInt });\r\n\r\n if (parentId !== undefined) {\r\n return getJobHasContractor(workid, jobid, parentId)}>\r\n {rel => Routes.goToJob(workid, jobid)}\r\n onSuccess={() => Routes.goToJobContractors(workid, jobid)}\r\n work={props.work} />\r\n }\r\n \r\n }\r\n else {\r\n return Routes.goToJob(workid, jobid)}\r\n onSuccess={() => Routes.goToJobContractors(workid, jobid)}\r\n work={props.work} />;\r\n }\r\n}\r\n\r\nconst WrappedRequestNewContractor = (props: any) => {\r\n const { jobid, workid } = getIntParams(props.match.params);\r\n return Routes.goToJob(workid, jobid)}\r\n onSuccess={console.log}\r\n job={props.job}\r\n work={props.work} />\r\n}\r\n\r\nconst WrappedContractorRequests = (props: any) => {\r\n const { jobid, workid } = getIntParams(props.match.params);\r\n\r\n return Routes.goToJobContractors(workid, jobid)}\r\n work={props.work} />;\r\n}\r\n\r\nconst WrappedSubContractorRequests = (props: any) => {\r\n const { jobid, workid } = getIntParams(props.match.params);\r\n\r\n return ;\r\n}\r\n\r\nconst WrappedContractorInvite = (props: any) => {\r\n const { jobid, workid } = getIntParams(props.match.params);\r\n\r\n return Routes.goToJob(props.work.id, props.job.id)}\r\n work={props.work} />;\r\n}\r\n\r\nconst WrappedMachineries = (props: any) => {\r\n const { jobid, workid } = getIntParams(props.match.params);\r\n\r\n const jobHasContractorId: number | undefined = getQueryParameter(\r\n window.location.search,\r\n 'jobHasContractorId',\r\n { map: parseInt });\r\n\r\n const relationId = getQueryParameter(\r\n window.location.search,\r\n 'relationId',\r\n { map: parseInt });\r\n\r\n return ;\r\n}\r\n\r\nconst WrappedMachinery = (props: any) => {\r\n const { jobid, workid, machineryid } = getIntParams(props.match.params);\r\n\r\n return Actions.getJobHasMachinery(workid, jobid, machineryid)}>\r\n {m => }\r\n ;\r\n}\r\n\r\nconst WrappedMachineryCreate = (props: any) => {\r\n const { jobid, workid } = getIntParams(props.match.params);\r\n\r\n return Routes.goToJobMachineries(workid, jobid)} />\r\n}\r\n\r\nconst WrappedMachineryAdd = (props: any) => {\r\n const { jobid, workid } = getIntParams(props.match.params);\r\n\r\n const contractorId: number | undefined = getQueryParameter(\r\n window.location.search,\r\n 'contractor',\r\n { map: safeParseInt });\r\n\r\n return Routes.goToJobMachineries(workid, jobid)} />\r\n}\r\n\r\nconst WrappedAddWorker = (props: any) => {\r\n const { jobid, workid } = getIntParams(props.match.params);\r\n\r\n const jobHasContractorId: number | undefined = getQueryParameter(\r\n window.location.search,\r\n 'jobContractor',\r\n { map: safeParseInt });\r\n\r\n return Routes.goToJobWorkers(workid, jobid, { jobHasContractorId: jobHasContractorId })}\r\n onCancel={() => Routes.goToJobWorkers(workid, jobid)} />\r\n}\r\n\r\nconst safeParseInt = (a: any) => {\r\n const r = parseInt(a);\r\n if (!isNaN(r)) {\r\n return r;\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\n\r\nconst WrappedWorkers = (props: any) => {\r\n const { jobid, workid } = getIntParams(props.match.params);\r\n\r\n const jobHasContractorId: number | undefined = getQueryParameter(\r\n window.location.search,\r\n 'jobHasContractorId',\r\n { map: safeParseInt });\r\n\r\n const relationId = getQueryParameter(\r\n window.location.search,\r\n 'relationId',\r\n { map: safeParseInt });\r\n\r\n return \r\n Routes.goToJobWorkers(workid, jobid)}\r\n />\r\n ;\r\n}\r\n\r\nconst WrappedWorker = (props: any) => {\r\n const { jobid, workid, jobhasworkerid } = getIntParams(props.match.params);\r\n\r\n return Actions.getJobHasWorker(workid, jobid, jobhasworkerid)}>\r\n {w => Routes.goToJobWorkers(workid, jobid)} />}\r\n \r\n}\r\n\r\nfunction JobRoutesImpl(props: IProps) {\r\n const [parameters, setParameters] = React.useState({});\r\n const [loading, setLoading] = React.useState(true);\r\n\r\n const setJobHasContractor = async (id: number | undefined = undefined) => {\r\n if (id != undefined && id != null) {\r\n const rel = await props.getJobHasContractor(props.work.id, props.job.id, id);\r\n props.selectJobHasContractor(rel);\r\n }\r\n else {\r\n const contractors = await props.getJobContractors(props.work.id, props.job.id);\r\n const contractor = await getContractorFromAppUser(props.work.id);\r\n\r\n const jhc = contractors.find((r: IJobHasContractor) => r.contractorId == contractor.id);\r\n if (jhc != undefined) {\r\n props.selectJobHasContractor(jhc);\r\n }\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n const noParameter = parameters.jobHasContractorId == undefined\r\n && parameters.jobContractor == undefined;\r\n\r\n if (loading == true\r\n && (parameters.jobHasContractorId == props.selectedJobHasContractor?.id\r\n || parameters.jobContractor == props.selectedJobHasContractor?.id\r\n || (noParameter && props.selectedJobHasContractor != undefined))) {\r\n setLoading(false);\r\n }\r\n }, [props.selectedJobHasContractor, parameters, loading]);\r\n\r\n React.useEffect(() => {\r\n setLoading(true);\r\n const params = getIntQueryParameters(window.location.search);\r\n setParameters(params);\r\n\r\n // TODO: pendientes de cambiar todas las rutas (reflejar el jobHasContractor como jobHasContractorId)\r\n if (params.jobHasContractorId != undefined || params.jobContractor != undefined) {\r\n setJobHasContractor(params.jobHasContractorId ?? params.jobContractor);\r\n }\r\n // si es un contratista y no establecido que jobHasContractor es nos aseguramos de establecer\r\n // el primero\r\n else if (props.security.isContractor()) {\r\n setJobHasContractor();\r\n }\r\n else {\r\n setLoading(false);\r\n }\r\n }, [window.location.search]);\r\n\r\n if (loading) {\r\n return
\r\n \r\n
;\r\n }\r\n else {\r\n return <>\r\n } />\r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n } />\r\n \r\n } />\r\n \r\n } />\r\n \r\n } />\r\n \r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n \r\n } />\r\n } />\r\n } />\r\n } />\r\n ;\r\n }\r\n}\r\n\r\nexport const JobRoutes = React.memo(\r\n JobRoutesImpl,\r\n (a, b) => a.job?.id == b.job?.id);\r\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport { JobRoutes } from '../../components/jobs/JobRoutes';\nimport { ModuleManager } from '@modules';\n\nexport default connect(\n (state: ApplicationState) => ({\n notifications:\n state.notifications.notifications\n .filter(n => n.ctx == 'jobs.save'),\n ...state.user,\n ...state.identity,\n ...JobsStore.plainActions,\n ...state.jobs,\n moduleManager: state.modules.moduleManager,\n }),\n JobsStore.actionCreators,\n)(JobRoutes as any) as any;\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport * as ContractorsStrore from '../../store/contractors';\nimport * as RequirementsStore from '../../store/requirements';\n\nimport { JobComponent } from '../../components/jobs/JobComponent';\nimport { ModuleManager } from '@modules';\nimport * as U from '@utils';\n\nexport default connect(\n (state: ApplicationState) => ({\n work: state.user.work,\n selectedJobHasContractor: state.jobs.selectedJobHasContractor,\n selectedJobHasContractorId: U.getQueryParameter(window.location.search, 'jobContractor', { map: parseInt }),\n moduleManager: state.modules.moduleManager,\n ...state.identity,\n ...JobsStore.plainActions,\n ...ContractorsStrore.plainActions,\n ...RequirementsStore.plainActions,\n }),\n JobsStore.actionCreators,\n)(JobComponent as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { BreadcrumbItem, useRemoteData } from '@components';\nimport { JobPanelActions } from '@components/jobs/JobPanelActions';\nimport { goToJob, goToJobCard } from '@components/routes';\nimport { IContractor, IJob, IJobHasContractor, IJobStatus, ISecurity, IWork, ModuleManager } from '@models';\nimport './JobComponent.scss';\nimport JobRoutes from '@containers/jobs/JobRoutes';\n\ntype GetJobStatusT = (workId: number, jobId: number) => Promise;\n\nexport interface IProps {\n getJobStatus: GetJobStatusT;\n job: IJob;\n loadJob: Function;\n security: ISecurity;\n clearSelectedContractor: Function;\n selectedContractor?: IContractor;\n selectedJobHasContractor?: IJobHasContractor;\n selectedJobHasContractorId?: number;\n selectJobHasContractor: Function;\n work: IWork;\n getContractorFromAppUser: Function;\n getRequirements: Function;\n moduleManager: ModuleManager;\n}\n\nexport function JobComponent(props: IProps) {\n if (!props.job) {\n return null;\n }\n\n // if (props.selectedJobHasContractor == undefined && props.selectedJobHasContractorId) {\n // props.selectJobHasContractor(props.job.contractors.find(c => c.id == props.selectedJobHasContractorId));\n // }\n\n const status = useRemoteData(\n props.getJobStatus, { parameters: [props.work.id, props.job.id] });\n\n const loadData = async () => {\n await status.query();\n goToJobCard(props.work.id, props.job.id);\n }\n\n return
\n loadData()} />\n\n \n\n \n \n
;\n}\n","import * as React from 'react';\r\n\r\nimport {\r\n INotification,\r\n IJob,\r\n IWorkspace,\r\n IActivityType,\r\n IContractType,\r\n IWorkShift,\r\n IDepartment,\r\n IPropertyGroupType,\r\n PropertyGroupObjectType,\r\n IPropertyGroup,\r\n ISecurity,\r\n IWork,\r\n IWorker, departmentIsProductive, JobEncodingType,\r\n ModuleManager,\r\n} from '@models';\r\nimport {\r\n G,\r\n NotificationsBox,\r\n Skeleton,\r\n useForm, useMemoized, useResolveName,\r\n useTranslation,\r\n useWorkFormSettings,\r\n ILoading,\r\n ValidationBuilder,\r\n Select,\r\n useSearch,\r\n} from '@components';\r\nimport { DynamicProperties } from '@components/user/DynamicProperties';\r\n\r\nimport './WorkForm.css';\r\nimport { flatten } from \"@utils\";\r\n\r\nimport './JobForm.scss';\r\nimport dateUtils from '@utils/date-utils';\r\n\r\ntype FooterF = (valid: boolean) => React.ReactNode;\r\n\r\nexport interface IProps {\r\n data?: IJob;\r\n work: IWork;\r\n workId: number;\r\n activityTypes: IActivityType[];\r\n contractTypes: IContractType[];\r\n moduleManager: ModuleManager;\r\n workspaces: IWorkspace[];\r\n workShifts: IWorkShift[];\r\n departments: IDepartment[];\r\n footer?: FooterF;\r\n propertyGroupTypes: IPropertyGroupType[];\r\n notifications: INotification[];\r\n onChange?: Function;\r\n onSubmit: Function;\r\n loading?: ILoading;\r\n security: ISecurity;\r\n}\r\n\r\ninterface IValidateJobOpts {\r\n validateWorkspaces?: boolean;\r\n}\r\n\r\nexport const validateJob = (data: IJob, validateOptions: IValidateJobOpts = {}, validateCode: boolean = false) => {\r\n const builder = ValidationBuilder\r\n .create(data)\r\n .notEmpty('name', 'Name is required')\r\n .notEmpty('startDate', 'Date is required')\r\n .notEmpty('endDate', 'Date is required')\r\n .notEmpty('description', 'Description is required')\r\n .notEmptyIf(validateOptions.validateWorkspaces, 'workspaceId', 'Workspace is required');\r\n\r\n if (validateCode) {\r\n builder.notEmpty('code', 'Code is required');\r\n }\r\n\r\n return builder.build();\r\n}\r\n\r\nexport const isValid = (data: IJob) => {\r\n return Object.keys(validateJob(data)).length == 0;\r\n}\r\n\r\ntype JobHasDepartment = {\r\n departmentId: number,\r\n responsibleId: number,\r\n isMain: boolean,\r\n}\r\n\r\nexport function JobForm(props: IProps) {\r\n const { t } = useTranslation();\r\n\r\n const [availableWorkers, setAvailableWorkers] = React.useState<{ id: number, name: string }[]>([]);\r\n const [selectedDepartment, setSelectedDepartment] = React.useState();\r\n const [selectedResponsible, setSelectedResponsible] = React.useState();\r\n const [departments, setDepartments] = React.useState([]);\r\n\r\n const resolveDepartment = useResolveName(props.departments);\r\n const resolveWorker = useMemoized((workerId: number) => {\r\n const workers = flatten(props.departments.map(d => d.workers ?? []));\r\n const w = workers.find(w => w.id == workerId);\r\n\r\n return `${w?.name} ${w?.surname}`;\r\n });\r\n\r\n const codeIsManual = props.work.settingsObj?.jobEncodingType == JobEncodingType.Manual;\r\n\r\n const formSettings = useWorkFormSettings({ work: props.work, scope: 'job' });\r\n\r\n const form = useForm({\r\n validateOnMount: true,\r\n initialValues: {\r\n id: props.data?.id ?? 0,\r\n name: props.data?.name ?? '',\r\n workId: props.workId,\r\n activityTypeId: props.data?.activityTypeId,\r\n workspaceId: props.data?.workspaceId,\r\n startDate: props.data?.startDate!,\r\n departments: props.data?.departments ?? [],\r\n properties: props.data?.properties ?? [],\r\n contractors: [],\r\n machineries: [],\r\n isActive: true\r\n },\r\n validate: (data: IJob) => {\r\n return validateJob(data, { validateWorkspaces: props.workspaces.length > 0 }, codeIsManual);\r\n },\r\n onSubmit: (data: IJob) => {\r\n props.onSubmit({\r\n id: data.id,\r\n name: data.name,\r\n code: data.code,\r\n workspaceId: data.workspaceId,\r\n workId: data.workId,\r\n activityTypeId: data.activityTypeId,\r\n workShiftId: data.workShiftId,\r\n contractTypeId: data.contractTypeId,\r\n startDate: data.startDate,\r\n endDate: data.endDate,\r\n remarks: data.remarks,\r\n description: data.description,\r\n properties: data.properties,\r\n isActive: data.isActive,\r\n }, departments);\r\n return { ok: true };\r\n },\r\n onChange: props.onChange,\r\n });\r\n\r\n const worksSpacesSearch = useSearch({\r\n workId: props.work.id,\r\n search: 'jobList/workspaces',\r\n });\r\n\r\n React.useEffect(() => {\r\n if (props.security.isWorker() && props.work.id == 23) {\r\n worksSpacesSearch.doSearch();\r\n }\r\n }, []);\r\n\r\n const [workSpaces, setWorkSpaces] = React.useState<{ id: number, name: string }[]>(props.workspaces);\r\n\r\n React.useEffect(() => {\r\n if (props.security.isWorker() && props.work.id == 23) {\r\n setWorkSpaces(worksSpacesSearch.value);\r\n }\r\n }, [worksSpacesSearch.value]);\r\n\r\n const filterWorkers = props.moduleManager.filterDependency('job.add.mainDepartment.responsibles', {\r\n security: props.security,\r\n departments: departments,\r\n });\r\n\r\n const availableResponsibles = useSearch({\r\n workId: props.work.id,\r\n search: 'jobList/oblique.responsibles',\r\n filters: {\r\n workId: props.work.id,\r\n },\r\n });\r\n\r\n React.useEffect(() => {\r\n if (selectedDepartment) {\r\n const dep = props.departments.find(d => d.id == selectedDepartment);\r\n const workers = (dep?.workers ?? [])\r\n .filter(w => (w.workspaces?.find(r => r.id == form.values.workspaceId) ?? false)\r\n && availableResponsibles.value.find(r => r.id == w.id) != undefined)\r\n .filter(filterWorkers)\r\n .map(w => ({ id: w.id, name: `${w.name} ${w.surname}` }));\r\n workers.sort((a, b) => (a.name).localeCompare(b.name));\r\n\r\n if (departments.length == 0) {\r\n const workerIds = props.security.user?.workerIds ?? [];\r\n workers.filter(w => workerIds.includes(w.id));\r\n }\r\n\r\n setAvailableWorkers(workers);\r\n }\r\n }, [selectedDepartment, form.values.workspaceId]);\r\n\r\n const filterDepartment = props.moduleManager.filterDependency('job.departments');\r\n\r\n const [availableDepartments, setAvailableDepartments] = React.useState([]);\r\n\r\n const calculateAvailableDepartments = () => {\r\n let result: IDepartment[];\r\n\r\n if (departments.length > 0 || !props.security.isWorker()) {\r\n result = props\r\n .departments\r\n // excluimos los departamentos ya seleccionados y los que no sean productivos\r\n .filter(d =>\r\n !departments.map(r => r.departmentId).includes(d.id)\r\n && departmentIsProductive(d)\r\n && filterDepartment(d));\r\n } else if (departments.length == 0 && props.security.isWorker() && !props.security.isGestor() && (props.security.user?.obliqueDepartments?.length ?? 0) == 0) {\r\n result = []\r\n props.security.user?.departments?.forEach(d => {\r\n const department = props.departments.find(de => de.id == d);\r\n if (departmentIsProductive(department!)) {\r\n result.push(department!);\r\n }\r\n });\r\n }\r\n else {\r\n result = props.departments\r\n .filter(d =>\r\n !departments.map(r => r.departmentId).includes(d.id)\r\n && departmentIsProductive(d)\r\n && filterDepartment(d));\r\n }\r\n result.sort((a, b) => a.name.localeCompare(b.name));\r\n setAvailableDepartments(result);\r\n }\r\n\r\n React.useEffect(() => {\r\n calculateAvailableDepartments();\r\n }, [props.departments, departments]);\r\n\r\n const removeDepartment = (i: number) => {\r\n const newDepartments = [...departments];\r\n newDepartments.splice(i, 1);\r\n setDepartments(newDepartments);\r\n }\r\n\r\n const addSelectedDepartment = (event: any) => {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n \r\n const rel = {\r\n departmentId: selectedDepartment!,\r\n responsibleId: selectedResponsible!,\r\n isMain: departments.length == 0,\r\n };\r\n\r\n setSelectedDepartment(undefined);\r\n setSelectedResponsible(undefined);\r\n\r\n setDepartments([...departments, rel]);\r\n }\r\n\r\n const todayOffset = new Date();\r\n todayOffset.setDate(todayOffset.getDate() - 1);\r\n\r\n\r\n const formIsValid = () => {\r\n\r\n if ((!form.values.activityTypeId && form.values.workId == 23)) {\r\n return false;\r\n }\r\n\r\n return (dateUtils.compareDates(dateUtils.parseDate(form.values.startDate), todayOffset) > 0\r\n &&\r\n (dateUtils.compareDates(dateUtils.parseDate(form.values.endDate), dateUtils.parseDate(form.values.startDate)) >= 0))\r\n &&\r\n form.values.name != ''\r\n &&\r\n departments.length != 0\r\n &&\r\n (props.workspaces.length > 0 ? form.values.workspaceId != undefined : true)\r\n &&\r\n form.values.description ? form.values.description.trim() != '' : false;\r\n }\r\n\r\n\r\n return
\r\n
\r\n
\r\n
\r\n
\r\n {/**\r\n *\r\n * Podemos tener claves de internacionalización por obra:\r\n * Evitaremos siempre que sea posible incluir lógica en la vista\r\n * dependendiente de una obra en concreto (evitar complejidad/errores/mantenimiento)\r\n * En este caso, no podríamos traducir directamente\r\n * label={t('job.code')}\r\n * y tener una clave para la obra 23 : job.code = 'Código AZSA'\r\n * en la configuración de la obra ?\r\n * Alternativamente, cada modulo que interactúe con el frontend\r\n * puede definir claves de internacionalización propias\r\n * (Ver ejemplo del módulo de Azsa)\r\n *\r\n */}\r\n \r\n {codeIsManual &&\r\n form.input('code')}\r\n {!codeIsManual && <>\r\n {props.data?.code && form.span('code')}\r\n {!props.data?.code && }\r\n }\r\n \r\n \r\n {/**\r\n * De igual forma a las claves de la internacionalización,\r\n * podemos tener propiedades de componentes por obra,\r\n * para evitar lógica dependiente de la obra en la vista general\r\n */}\r\n {/* {props.workId == 23 ? form.textarea('name', { rows: 2 }) : form.input('name')} */}\r\n {form.textarea('name', props.moduleManager.componentProperties('job.name'))}\r\n \r\n {props.workspaces.length > 0 &&\r\n \r\n {form.select('workspaceId', { options: workSpaces })}\r\n }\r\n {formSettings.show('activityTypeId') &&\r\n \r\n
\r\n {form.select('activityTypeId', { options: props.activityTypes })}\r\n {!form.values.activityTypeId && {t('job.error.activityTypeId')}}\r\n
\r\n
}\r\n {props.work.id === 23 && formSettings.show('description') &&\r\n \r\n {form.textarea('description', { rows: 5 })}\r\n }\r\n {props.work.id === 23 && < G label={t('Remarks')}>\r\n {form.textarea('remarks', { rows: 5 })}\r\n }\r\n {formSettings.show('properties') &&\r\n
\r\n pg.objectType == PropertyGroupObjectType.Job)}\r\n onChange={(v: IPropertyGroup[]) => form.setFieldValue('properties', v)} />\r\n
}\r\n
\r\n\r\n
\r\n \r\n
\r\n {form.input('startDate', { type: 'date' })}\r\n {(dateUtils.compareDates(dateUtils.parseDate(form.values.startDate), todayOffset) < 0) &&\r\n {t('job.error.startDate')}}\r\n
\r\n
\r\n \r\n
\r\n {form.input('endDate', { type: 'date' })}\r\n {(dateUtils.compareDates(dateUtils.parseDate(form.values.endDate), dateUtils.parseDate(form.values.startDate)) < 0) &&\r\n {t('job.error.endDate')}}\r\n
\r\n
\r\n {formSettings.show('workShiftId') &&\r\n \r\n {form.select('workShiftId', props.workShifts)}\r\n }\r\n {formSettings.show('contractTypeId') &&\r\n \r\n {form.select('contractTypeId', props.contractTypes)}\r\n }\r\n {props.work.id !== 23 && formSettings.show('description') &&\r\n \r\n {form.textarea('description')}\r\n }\r\n {props.work.id !== 23 && < G label={t('Remarks')}>\r\n {form.textarea('remarks')}\r\n }\r\n
\r\n
\r\n
\r\n {t('job.departments')}\r\n
\r\n {departments.map((d, i) =>
\r\n \r\n {d.isMain && }\r\n \r\n {resolveDepartment(d.departmentId)}\r\n {resolveWorker(d.responsibleId)}\r\n \r\n removeDepartment(i)} />\r\n \r\n
)}\r\n
\r\n
\r\n { +e.target.value > 0 && setSelectedDepartment(parseInt(e.target.value)) }}>\r\n \r\n +e.target.value > 0 && setSelectedResponsible(parseInt(e.target.value))}>\r\n \r\n \r\n
\r\n {departments.length === 0 &&\r\n {t('One department is required')}\r\n }\r\n
\r\n
\r\n
\r\n {form.errorBox()}\r\n \r\n
\r\n
\r\n {props.loading?.render()}\r\n
\r\n {props.footer != undefined &&\r\n (props.loading == undefined ||\r\n !props.loading.isLoading()) &&\r\n props.footer(form.isValid()) &&\r\n props.footer(formIsValid()) ||\r\n !isValid(form.values)}\r\n \r\n
\r\n}\r\n","import * as React from 'react';\r\n\r\nimport {\r\n IActivityType,\r\n IContractType,\r\n IDepartment,\r\n IJob,\r\n IJobHasDepartment,\r\n IJobStatus,\r\n IPropertyGroupType,\r\n IResourceStatusType, ISecurity,\r\n IUserIdentity,\r\n IWork,\r\n IWorker,\r\n IWorkShift,\r\n IWorkspace,\r\n jobStatusTypes,\r\n ModuleManager,\r\n} from '@models';\r\nimport {\r\n useLoading,\r\n useTranslation,\r\n Portal,\r\n useFormDialog,\r\n useSearchPaginate,\r\n usePaginator,\r\n useSearchFilters,\r\n useSearch\r\n} from '@components';\r\nimport { JobForm } from '@components/admin/JobForm';\r\nimport { JobCard } from '@components/jobs/list/JobCard';\r\nimport { goToJob } from '@components/routes';\r\nimport { IMachineryType, IWorkerDocumentType, IWorkerType } from '@models/resources';\r\n\r\nimport './Jobs.scss';\r\n\r\ntype GetJobStatusT = (workId: number, jobId: number) => Promise;\r\ntype IJobRow = IJob & {\r\n currentJobHasContractorId?: number;\r\n}\r\n\r\nexport interface IProps {\r\n user: any;\r\n activityTypes: IActivityType[];\r\n clearSelectedJob: Function;\r\n contractTypes: IContractType[];\r\n departments: IDepartment[];\r\n propertyGroupTypes: IPropertyGroupType[];\r\n getJobs: Function;\r\n getJobContractorsViewModel: Function;\r\n saveJob: Function;\r\n security: ISecurity;\r\n moduleManager: ModuleManager;\r\n jobs: IJob[];\r\n work: IWork;\r\n workers: IWorker[];\r\n workShifts: IWorkShift[];\r\n workspaces: IWorkspace[];\r\n resourceStatusTypes: IResourceStatusType[];\r\n workerDocumentTypes: IWorkerDocumentType[];\r\n workerTypes: IWorkerType[];\r\n machineryTypes: IMachineryType[];\r\n getJobStatus: GetJobStatusT;\r\n}\r\n\r\nfunction SelectJob({\r\n activityTypes, security, workspaces, jobs,\r\n workerDocumentTypes, machineryTypes, workerTypes, work, initialize, moduleManager\r\n}: {\r\n activityTypes: IActivityType[],\r\n departments: IDepartment[],\r\n getJobContractorsViewModel: Function,\r\n security: ISecurity,\r\n workers: IWorker[],\r\n workspaces: IWorkspace[],\r\n workerDocumentTypes: IWorkerDocumentType[],\r\n workerTypes: IWorkerType[],\r\n machineryTypes: IMachineryType[],\r\n jobs: IJobRow[],\r\n selectJob: Function,\r\n work: IWork,\r\n initialize: Function,\r\n getJobStatus: Function;\r\n user?: IUserIdentity;\r\n moduleManager: ModuleManager;\r\n}) {\r\n\r\n return
\r\n {(jobs ?? []).map((j, i) =>\r\n \r\n )}\r\n
\r\n}\r\n\r\nenum JobListMode {\r\n MYJOBS = 0,\r\n DEPARTMENT = 1,\r\n ALLJOBS = 2,\r\n INVOLVED = 3,\r\n SUBCONTRACTED = 4,\r\n}\r\n\r\nlet __jobListMode = JobListMode.ALLJOBS;\r\n\r\nexport function JobsImpl(props: IProps) {\r\n const { t } = useTranslation();\r\n const loading = useLoading(false);\r\n const [jobListMode, setJobListMode] = React.useState(__jobListMode);\r\n const [canCreateJobState, setCanCreateJobState] = React.useState(false);\r\n\r\n const isOblique = React.useRef(false);\r\n\r\n const isNotOblique = React.useRef(false);\r\n\r\n const workerIds = props.security.getWorkerIds();\r\n\r\n const departments = props.departments;\r\n\r\n React.useEffect(() => {\r\n props.clearSelectedJob();\r\n }, []);\r\n\r\n const [responsibles, setResponsibles] = React.useState<{ id: number, name: string }[]>([]);\r\n const [dataValue, setDataValue] = React.useState([]);\r\n\r\n const [contractorParents, setContractorParents] = React.useState<{ id: number, name: string }[]>([]);\r\n\r\n React.useEffect(() => {\r\n __jobListMode = jobListMode;\r\n }, [jobListMode]);\r\n\r\n const formDialog = useFormDialog({\r\n editTitle: t('Edit job'),\r\n addTitle: t('Add job'),\r\n });\r\n\r\n const calculateIsOblique = () => {\r\n for (let i = 0; i < workerIds.length; i++) {\r\n const w = workerIds[i];\r\n\r\n for (let j = 0; j < departments.length; j++) {\r\n const d = departments[j];\r\n\r\n if (d.workers?.some(wd => w == wd.id) && d.isOblique) {\r\n isOblique.current = true;\r\n }\r\n\r\n if (d.workers?.some(wd => w == wd.id) && !d.isOblique) {\r\n\r\n isNotOblique.current = true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n const getSearch = () => {\r\n calculateIsOblique();\r\n if (props.security.isContractor() && props.work.id != 23) {\r\n return 'jobList/contractors';\r\n }\r\n else if (props.security.isGestor()) {\r\n return 'jobList/gestor';\r\n }\r\n else if (jobListMode === JobListMode.ALLJOBS && props.security.hasPolicy('jobs.list') && props.work.id != 23) {\r\n return 'jobList/gestor';\r\n }\r\n else if (jobListMode === JobListMode.ALLJOBS && !props.security.hasPolicy('jobs.list') && props.work.id != 23) {\r\n return 'jobList/workers.all'\r\n }\r\n else if (props.work.id == 23 && jobListMode === JobListMode.ALLJOBS && isOblique.current && props.security.isWorker()) {\r\n return 'jobList/gestor'\r\n }\r\n else if (props.work.id == 23 && jobListMode === JobListMode.ALLJOBS && isNotOblique.current && props.security.isWorker()) {\r\n return 'jobList/workers.oblique.all'\r\n }\r\n else if (props.work.id == 23 && jobListMode === JobListMode.ALLJOBS && props.security.isContractor()) {\r\n return 'jobList/contractors.all'\r\n }\r\n else if (jobListMode === JobListMode.MYJOBS && props.work.id != 23) {\r\n return 'jobList/workers.own';\r\n }\r\n else if (jobListMode === JobListMode.MYJOBS && props.work.id == 23 && props.security.isWorker()) {\r\n return 'jobList/workers.own.azsa';\r\n }\r\n else if (jobListMode === JobListMode.MYJOBS && props.work.id == 23 && props.security.isContractor()) {\r\n return 'jobList/contractors.own';\r\n }\r\n else if (jobListMode === JobListMode.DEPARTMENT && props.work.id != 23) {\r\n return 'jobList/departments.all';\r\n }\r\n else if (jobListMode === JobListMode.DEPARTMENT && props.work.id == 23) {\r\n return 'jobList/departments.azsa.all';\r\n }\r\n else if (props.work.id == 23 && jobListMode === JobListMode.INVOLVED) {\r\n return 'jobList/workers.involved'\r\n }\r\n else if (props.work.id == 23 && jobListMode === JobListMode.SUBCONTRACTED) {\r\n return 'jobList/contractors.subcontracted'\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n const mergeFilters = (filters: any) => {\r\n if (filters.current_status_type && filters.current_status_type != 0) {\r\n return filters;\r\n }\r\n else {\r\n if (filters.current_status_type == 0) {\r\n userFilters.setFilter('current_status_type', null);\r\n }\r\n return { ...filters, exclude_status: 4 };\r\n }\r\n }\r\n\r\n const parentsSearch = useSearch({\r\n workId: props.work.id,\r\n search: 'jobList/parents',\r\n });\r\n\r\n const worksSpacesSearch = useSearch({\r\n workId: props.work.id,\r\n search: 'jobList/workspaces',\r\n filters: {\r\n workerId: props.work.id,\r\n },\r\n });\r\n\r\n const responsiblesSearch = useSearch({\r\n workId: props.work.id,\r\n search: 'jobList/oblique.responsibles',\r\n filters: {\r\n workId: props.work.id,\r\n },\r\n });\r\n\r\n const [contractors, setContractors] = React.useState([]);\r\n const contractorsSearch = useSearch({\r\n workId: props.work.id,\r\n search: 'jobList/contractorsOptions',\r\n filters: {\r\n workId: props.work.id,\r\n },\r\n });\r\n\r\n React.useEffect(() => {\r\n const options = contractorsSearch.value.map((c: any) => ({ id: c.id, name: c.name.trim() }));\r\n setContractors(options.sort((a, b) => a.name.localeCompare(b.name)));\r\n }, [contractorsSearch.value]);\r\n\r\n const calculateWorkSpaces = () => {\r\n if (props.security.isWorker()) {\r\n const result: any = [];\r\n worksSpacesSearch.value?.forEach((w: any) => {\r\n result.push({ id: w.id, name: w.name })\r\n })\r\n return result;\r\n } else {\r\n return props.workspaces\r\n }\r\n };\r\n\r\n const filterStatusTypes = props.moduleManager.filterDependency('job.statusTypes', {\r\n security: props.security,\r\n work: props.work,\r\n });\r\n\r\n const userFilters = useSearchFilters({\r\n security: props.security,\r\n workId: props.work.id,\r\n name: getSearch(),\r\n references: {\r\n workspace: calculateWorkSpaces(),\r\n current_status_type: jobStatusTypes.filter(filterStatusTypes),\r\n responsible: responsibles,\r\n parent_contractor: contractorParents,\r\n select_contractor: contractors,\r\n },\r\n persist: true\r\n });\r\n\r\n React.useEffect(() => {\r\n props.security.isContractor() && parentsSearch.doSearch() && responsiblesSearch.doSearch();\r\n props.security.isWorker() && worksSpacesSearch.doSearch();\r\n contractorsSearch.doSearch();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n setResponsibles(responsiblesSearch.value)\r\n }, [props, responsiblesSearch.value]);\r\n\r\n const data = useSearchPaginate({\r\n workId: props.work.id,\r\n normalizeKeys: true,\r\n filters: {\r\n workId: props.work.id,\r\n department_id: props.security.user?.departments,\r\n responsibleId: props.security.getWorkerIds()[0],\r\n ...mergeFilters(userFilters.filters),\r\n },\r\n search: getSearch(),\r\n dependencies: [userFilters.filters, jobListMode],\r\n limit: 8,\r\n });\r\n\r\n React.useEffect(() => {\r\n setDataValue(data.data);\r\n }, [data.data]);\r\n\r\n React.useEffect(() => {\r\n if (data.data && data.data.length > 0) {\r\n calculateParentContractors();\r\n }\r\n if (userFilters.filters.parent_contractor) {\r\n filterByParentContractor(data.data);\r\n }\r\n }, [data.data]);\r\n\r\n const calculateParentContractors = () => {\r\n const parents = parentsSearch.value;\r\n (parents && parents[0]?.id != 0) && parents.unshift({ id: 0, name: \"AZSA\" });\r\n setContractorParents(parentsSearch.value);\r\n };\r\n\r\n const filterByParentContractor = (jobs: any) => {\r\n\r\n const result = jobs.filter((j: any) => j.parentContractorId == (userFilters.filters.parent_contractor == 0 ? null : userFilters.filters.parent_contractor));\r\n setDataValue(result);\r\n }\r\n\r\n const paginator = usePaginator({\r\n className: 'transparent lg pd-right',\r\n data: data.value,\r\n rowNumbers: [8, 16, 32, 64],\r\n onChange: (page, limit) => data.doSearch({\r\n workId: props.work.id, ...mergeFilters(userFilters.filters), department_id: props.security.user?.departments,\r\n responsibleId: props.security.getWorkerIds()[0]\r\n }, page, limit),\r\n });\r\n\r\n const reload = () => {\r\n data.doSearch();\r\n }\r\n\r\n const saveJob = loading.wrap(async (w: IJob, departments: IJobHasDepartment[]) => {\r\n await props.saveJob(w, departments);\r\n await data.doSearch();\r\n\r\n formDialog.clear();\r\n });\r\n\r\n const calculateOptions = () => {\r\n const options = [];\r\n if (props.work.id == 23 && props.security.isWorker()) {\r\n options.push(<>\r\n \r\n \r\n \r\n \r\n )\r\n } else if (props.work.id == 23 && props.security.isContractor()) {\r\n options.push(<>\r\n \r\n \r\n \r\n )\r\n }\r\n else {\r\n options.push(<>\r\n \r\n )\r\n }\r\n return \r\n }\r\n\r\n const calculateCreateJob = async () => {\r\n const ctx = {\r\n security: props.security,\r\n work: props.work,\r\n }\r\n const res = await props.moduleManager.requirePermission('jobs.create', ctx, props.security.hasPermission('jobs.create'));\r\n setCanCreateJobState(res ?? false);\r\n };\r\n\r\n React.useEffect(() => {\r\n calculateCreateJob();\r\n }, [props.moduleManager.getId()]);\r\n\r\n const selectJob = (jobId: number) => goToJob(props.work.id, jobId);\r\n return
\r\n {paginator()}\r\n\r\n \r\n
\r\n {(props.security.isWorker() || (props.security.isContractor() && props.work.id === 23)) &&\r\n calculateOptions()}\r\n {canCreateJobState &&\r\n formDialog.showAdd()}>\r\n \r\n {t((props.work.id == 23 && props.security.isWorker()) ? 'Create job pessma' : 'Create job')}\r\n }\r\n
\r\n
\r\n\r\n {formDialog.render((data: IJob) =>\r\n }\r\n />, props.work.id == 23)}\r\n {data.renderLoading({\r\n text: t('jobs.list.loading')\r\n })}\r\n {}\r\n
\r\n}\r\n\r\nexport const Jobs = React.memo(JobsImpl, (prev, next) => {\r\n return prev.work.id === next.work.id\r\n && prev.moduleManager?.getId() == next.moduleManager?.getId();\r\n});\r\n","import * as React from 'react';\nimport { connect } from 'react-redux';\n\nimport { ApplicationState } from '../../store';\nimport * as User from '@store/user';\nimport * as Job from '@store/jobs';\n\nimport { Jobs } from '@components/user/Jobs';\nimport { ModuleManager } from '@models';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...User.plainActions,\n ...Job.plainActions,\n moduleManager: state.modules.moduleManager,\n activityTypes: state.user.activityTypes,\n contractTypes: state.user.contractTypes,\n departments: state.user.departments,\n modules: state.modules.modules,\n work: state.user.work,\n workers: state.user.workers,\n workspaces: state.user.workspaces,\n workShifts: state.user.workShifts,\n resourceStatusTypes: state.user.resourceStatusTypes,\n jobs: []\n }),\n {\n ...User.actionCreators,\n clearSelectedJob: Job.actionCreators.clearSelectedJob,\n },\n)(Jobs as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { BreadcrumbItem, useDataTable, useRemoteData, useTranslation } from '@components';\nimport { IContractorInvitation, ISecurity, IWork, ModuleManager } from '@models';\nimport dateUtils from '@utils/date-utils';\n\nexport interface IProps {\n getContractorInvitations: Function;\n security: ISecurity;\n work: IWork;\n moduleManager: ModuleManager;\n}\nexport function ViewContractorInvitationsImpl(props: IProps) {\n const { t } = useTranslation();\n\n let data = useRemoteData(props.getContractorInvitations, {\n parameters: [props.work.id]\n });\n\n const sortedData = data.hasValues() ? data.value.sort((a, b) => dateUtils.compareDates(dateUtils.fromUtc(b.dateTime!), dateUtils.fromUtc(a.dateTime!))) : [];\n const dataTable = useDataTable({\n data: sortedData,\n columns: [\n { title: t('creation.date'), field: 'dateTime', delegate: 'datetime', className: 'td-datetime', sortKey: 'dateTime' },\n { title: t('contractor.invitation.email'), field: 'email', sortKey: 'email' },\n {\n title: t('User'), render: (row: any) => {\n return {props.work.users.find(u => u.id == row.createdBy)?.userName}\n }, sortKey: 'createdBy'\n },\n {\n title: t('Subject'), render: (row: any) => {\n if (props.work.id != 23) {\n return {row.subject}\n }\n else {\n return {t('ContractorInvitation.Azsa.message')}\n }\n }\n },\n { title: t('contractor.invitation.accepted'), field: 'accepted', delegate: 'boolean', className: 'td-md-icon' },\n { title: t('Empresa'), field: 'name', sortKey: 'name' }\n ],\n loading: data.loading,\n });\n\n return
\n \n {dataTable()}\n
\n}\n\nexport function ViewContractorInvitations(props: IProps) {\n\n const res = props\n .moduleManager\n .renderComponent('ViewContractorInvitations', { ...props }, ViewContractorInvitationsImpl);\n\n return res;\n}\n\n\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as ContractorsStore from '../../store/contractors';\nimport { ViewContractorInvitations } from '@components/contractors/ViewContractorInvitations';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...ContractorsStore.plainActions,\n moduleManager: state.modules.moduleManager,\n }),\n {}\n)(ViewContractorInvitations as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\r\n\r\nimport {\r\n BreadcrumbItem, ValidationBuilder, useDataTable,\r\n usePaginator, useTranslation,\r\n useMessage, useLoading, useForm, G, SplitButton,\r\n FieldsBox,\r\n useResolveName,\r\n useWorkFormSettings,\r\n} from '@components';\r\n\r\nimport {\r\n IContractor, ISecurity, IWork, IPropertyGroupType, PropertyGroupObjectType,\r\n ICountry,\r\n IActivityType, ILegalForm, IConstants, IResourceStatusType, IUserIdentity, ResourceType, IFieldValidation, PropertyTypes, IOption, IPropertyGroup,\r\n} from '@models';\r\nimport { DynamicProperties } from '@components/user/DynamicProperties';\r\nimport { CountryRegionSelect } from '@components/common/CountryRegionSelect';\r\n\r\n\r\nimport './ManageContractors.scss';\r\n\r\nconst ADD_PERMISSION = 'contractors.add';\r\n\r\nconst validateContractorF = (fieldValidations: IFieldValidation[] | undefined, work: IWork) => {\r\n return ValidationBuilder\r\n .new()\r\n .notEmpty('name', 'Name is required')\r\n .notEmptyIf(work.contractorSettings?.legalFormMandatory == true, 'legalFormId', 'Legal form is required')\r\n .notEmpty('code', 'Code is required')\r\n .notEmpty('address', 'Address is required')\r\n .notEmptyIf(work.id != 21, 'otherActivityType', 'Activity type is required')\r\n .notEmptyIf(work.id != 21, 'city', 'City is required')\r\n .notEmptyIf(work.id != 21, 'contactPerson', 'Contact person is required')\r\n .notEmpty('countryId', 'Country is required')\r\n .notEmptyIf(work.id != 21, 'phone', 'Phone is required')\r\n .notEmptyIf(work.id != 21, 'postalCode', 'Postal Code is required')\r\n .withFieldValidations(ResourceType.Contractor, fieldValidations)\r\n .lift();\r\n}\r\n\r\nexport default function AddContractor({\r\n constants,\r\n activityTypes, legalForms, onChange, propertyGroupTypes, saveContractor, workId, security, fieldValidations, work\r\n}: {\r\n activityTypes: IActivityType[],\r\n constants: IConstants,\r\n legalForms: ILegalForm[],\r\n onChange: Function,\r\n propertyGroupTypes: IPropertyGroupType[],\r\n saveContractor: Function,\r\n workId: number,\r\n security: ISecurity,\r\n fieldValidations: IFieldValidation[],\r\n work: IWork\r\n}) {\r\n const { t } = useTranslation();\r\n const messages = useMessage({\r\n successMessage: t('Contractor added successfully'),\r\n autoClear: true,\r\n });\r\n\r\n const [selectedLegalForm, setSelectedLegalForm] = React.useState();\r\n\r\n const loading = useLoading();\r\n\r\n const validateContractor = validateContractorF(fieldValidations, work);\r\n\r\n const settings = useWorkFormSettings({ work: work, scope: 'contractor' });\r\n\r\n const form = useForm({\r\n initialValues: {\r\n properties: [{\r\n \"value\": \"{}\",\r\n \"valueObj\": {}\r\n }],\r\n workId: workId,\r\n isActive: true,\r\n },\r\n validateOnMount: true,\r\n validate: validateContractor\r\n });\r\n\r\n const calculateFormPropertiesAreValid = () => {\r\n\r\n const mandatoryPropertyIds: number[] = [];\r\n const mandatoryPropertyNames: string[] = [];\r\n\r\n //Si existen el formulario, evaluamos las propiedades dinámicas acordes a las existentes\r\n if (form.values.properties != undefined && form.values.properties.length > 0) {\r\n let hiddens: number = 0;\r\n if (propertyGroupTypes != undefined && propertyGroupTypes.length > 0) {\r\n const boolTextNames: string[] = [];\r\n propertyGroupTypes.map(g => {\r\n // ¿Está ocultada esta propiedad por la forma legal y la propiedad hidable del grupo de propiedades?\r\n const isHidden = selectedLegalForm?.hideContractorProperties && g.hidable;\r\n if (!isHidden) {\r\n if (g.mandatory) {\r\n // Si el grupo de propiedades no está oculto y es obligatorio -> cargamos su ID y los nombres de sus propiedades\r\n mandatoryPropertyIds.push(g.id!);\r\n if (g.properties != undefined && g.properties.length > 0) {\r\n g.properties.map(p => {\r\n mandatoryPropertyNames.push(p.name);\r\n // Si alguna de las propiedades es de tipo BoolText, la almacenamos\r\n if (p.typeId == PropertyTypes.BOOLTEXT) {\r\n boolTextNames.push(p.name);\r\n }\r\n })\r\n }\r\n }\r\n }\r\n else {\r\n // Si está ocultada, ya sea por:\r\n // 1- El grupo de propiedades no es ocultable\r\n // 2- La forma legal no oculta las propiedades\r\n // -> La contabilizamos\r\n hiddens += 1;\r\n }\r\n });\r\n if (mandatoryPropertyIds != undefined && mandatoryPropertyIds.length > 0) {\r\n const properties: any[] = [];\r\n\r\n // Evaluamos cuáles son las propiedades del formulario que son obligatorias\r\n form.values.properties.map((p: any) => {\r\n mandatoryPropertyIds.map(m => {\r\n if (p.propertyGroupTypeId == m) {\r\n properties.push(p);\r\n }\r\n })\r\n });\r\n if (properties != undefined && properties.length > 0) {\r\n const values: boolean[] = []\r\n\r\n properties.map(p => {\r\n // Si cualquiera de estas propiedades tiene valor, lo evaluamos\r\n if (p.valueObj != \"{}\") {\r\n mandatoryPropertyNames.map(m => {\r\n // Evaluamos si los BoolTexts hallados tienen valor de texto\r\n if (boolTextNames.includes(m)) {\r\n boolTextNames.map(b => {\r\n if (b == m) {\r\n const valueText = p.valueObj[m + \"_text\"];\r\n if (valueText == \"\" || valueText == undefined) {\r\n values.push(false);\r\n }\r\n else {\r\n values.push(true);\r\n }\r\n }\r\n })\r\n }\r\n // Obtenemos su valor teniendo en cuenta que undefined es false\r\n else {\r\n const value = p.valueObj[m];\r\n if (value != undefined) {\r\n values.push(value);\r\n }\r\n else {\r\n values.push(false);\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n values.push(false);\r\n }\r\n });\r\n // Si existe algún true en el array, entonces el grupo de propiedades es válido\r\n if (values.some(v => v)) {\r\n propertiesInvalid.current = false;\r\n }\r\n else {\r\n if (hiddens < propertyGroupTypes.length) {\r\n propertiesInvalid.current = true;\r\n }\r\n }\r\n }\r\n }\r\n if (hiddens == propertyGroupTypes.filter(g => g.mandatory).length) {\r\n propertiesInvalid.current = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n const calculateProperties = () => {\r\n const values: IPropertyGroup[] = form.values.properties;\r\n let newValues: IPropertyGroup[] = [];\r\n if (selectedLegalForm?.hideContractorProperties) {\r\n values.map((p: IPropertyGroup) => {\r\n if (propertyGroupTypes != undefined && propertyGroupTypes.find(g => g.id == p.propertyGroupTypeId)?.hidable) {\r\n newValues = values.filter(v => v.propertyGroupTypeId == undefined && v.propertyGroupTypeId != p.propertyGroupTypeId && v.value != \"{}\");\r\n }\r\n });\r\n return newValues;\r\n }\r\n newValues = values.filter(v => v.propertyGroupTypeId != undefined && v.value != \"{}\")\r\n\r\n return newValues;\r\n }\r\n\r\n const doAdd = loading.wrap(async (..._: any) => {\r\n\r\n const contractorData: IContractor = {\r\n activityTypeId: form.values.activityTypeId,\r\n code: form.values.code,\r\n legalFormId: form.values.legalFormId,\r\n name: form.values.name,\r\n properties: calculateProperties(),\r\n workId: workId,\r\n address: form.values.address,\r\n countryId: form.values.countryId,\r\n countyId: form.values.countyId,\r\n remarks: form.values.remarks,\r\n id: 0,\r\n providerCode: form.values.providerCode,\r\n postalCode: form.values.postalCode,\r\n city: form.values.city,\r\n contactPerson: form.values.contactPerson,\r\n phone: form.values.phone,\r\n otherActivityType: form.values.otherActivityType,\r\n }\r\n\r\n const resp = await saveContractor(workId, contractorData);\r\n messages.set(resp);\r\n if (resp.hasValue) {\r\n form.clear();\r\n onChange(true);\r\n }\r\n });\r\n\r\n const propertiesInvalid = React.useRef();\r\n\r\n const userCanAdd = security.hasPermission(ADD_PERMISSION, false);\r\n\r\n const canAdd = form.isValid() && userCanAdd;\r\n\r\n const updateRegion = ({ countryId, regionId, countyId }: any) => {\r\n form.setFieldValue('countryId', countryId);\r\n form.setFieldValue('regionId', regionId);\r\n form.setFieldValue('countyId', countyId);\r\n }\r\n\r\n function loadRegions(workId: number) {\r\n let countries: ICountry[] = [];\r\n constants.countries.forEach(c => countries.push(Object.assign({}, c)));\r\n if (workId != 21) {\r\n for (let c in countries) {\r\n if (countries[c].regions.length > 0) {\r\n countries[c].regions = [];\r\n }\r\n }\r\n }\r\n return countries;\r\n }\r\n\r\n React.useEffect(() => {\r\n if (legalForms != undefined) {\r\n const lf = legalForms.find(l => l.id == form.values.legalFormId);\r\n if (lf != undefined) {\r\n setSelectedLegalForm(lf);\r\n }\r\n }\r\n }, [form.values.legalFormId])\r\n\r\n React.useEffect(() => {\r\n calculateFormPropertiesAreValid();\r\n }, [form.values.properties, selectedLegalForm])\r\n\r\n if (userCanAdd) {\r\n return
\r\n \r\n {form.input('name')}\r\n \r\n \r\n {form.input('code')}\r\n \r\n {work.contractorSettings?.legalFormMandatory == true\r\n ? \r\n {form.select('legalFormId', { options: legalForms, filter: true })}\r\n \r\n : undefined\r\n }\r\n \r\n {form.input('providerCode')}\r\n \r\n {settings.show('activityTypeId') &&\r\n \r\n {form.select('activityTypeId', activityTypes)}\r\n }\r\n\r\n {workId != 21 &&\r\n \r\n {form.input('otherActivityType')}\r\n }\r\n \r\n \r\n {form.input('address')}\r\n \r\n \r\n {form.input('postalCode')}\r\n \r\n \r\n
\r\n \r\n {form.getFormErrorMessage('countryId')}\r\n
\r\n
\r\n \r\n {form.input('city')}\r\n \r\n {workId != 21 &&\r\n \r\n {form.input('contactPerson')}\r\n }\r\n \r\n {form.input('phone')}\r\n \r\n
\r\n \r\n {form.textarea('remarks', { rows: 5, style: { resize: 'vertical', minHeight: '85px' }, containerStyle: { height: '100%' } })}\r\n \r\n
\r\n form.setFieldValue('properties', p)}\r\n hideContractorProperties={selectedLegalForm?.hideContractorProperties}\r\n objectType={PropertyGroupObjectType.JobHasContractor}\r\n propertyGroupTypes={propertyGroupTypes} />\r\n {propertiesInvalid.current && {t('dynamic.properties.error')}}\r\n
\r\n\r\n\r\n {form.errorBox()}\r\n {messages.render()}\r\n\r\n
\r\n \r\n {loading.render()}\r\n \r\n {t('Add')}\r\n \r\n
\r\n
\r\n }\r\n else {\r\n return null;\r\n }\r\n}","import * as React from 'react';\n\nimport {\n BreadcrumbItem, ValidationBuilder, useDataTable,\n usePaginator, useTranslation,\n useMessage, useLoading, useForm, G, SplitButton,\n FieldsBox,\n useResolveName,\n useWorkFormSettings,\n useConfirm,\n useSearchPaginate,\n useSearchFilters,\n Tag,\n useInputSearch,\n Tooltip\n} from '@components';\n\nimport {\n IContractor, ISecurity, IWork, IPropertyGroupType,\n IActivityType, ILegalForm, IConstants, IResourceStatusType, IUserIdentity, ResourceType, IOption\n} from '@models';\nimport CreateContractorInvitationContainer from '@containers/contractors/CreateContractorInvitationContainer';\nimport ViewContractorInvitationsContainer from '@containers/contractors/ViewContractorInvitationsContainer';\n\nimport './ManageContractors.scss';\nimport { ResourceStatus } from '@components/common/ResourceStatus';\nimport { contractorsRoute, goToContractor, goToContractorRequirements } from '@components/routes';\nimport { ModuleManager } from '@modules';\nimport AddContractor from './AddContractor';\n\ntype InvalidateContractorF = (workId: number, id: number) => Promise>;\n\nexport interface IProps {\n activityTypes: IActivityType[];\n constants: IConstants;\n modules: ModuleManager;\n contractor: IContractor;\n getContractors: Function;\n legalForms: ILegalForm[];\n invalidateContractor: InvalidateContractorF;\n propertyGroupTypes: IPropertyGroupType[];\n resourceStatusTypes: IResourceStatusType[];\n saveContractor: Function;\n security: ISecurity;\n work: IWork;\n appUsers: IUserIdentity[];\n reactivateContractor: Function;\n}\n\n\nenum FormType {\n List = 0,\n CreateInvitation = 1,\n ViewInvitations = 2,\n CreateContractor = 3,\n}\n\ntype IContractorResult = IContractor & {\n properties: any;\n email?: string | string[];\n validatedCount?: number;\n totalCount?: number;\n}\n\nconst parseContractor = (p: IContractorResult) => {\n const properties = p.properties ? JSON.parse(p.properties) : ({});\n return { ...p, properties };\n}\n\nexport function ManageContractorsImpl(props: IProps) {\n const loading = useLoading();\n const { t } = useTranslation();\n\n const settings = useWorkFormSettings({ work: props.work, scope: 'contractor' });\n\n const filterKey = `filters.contractors[workId=${props.work.id}]`;\n\n const filter = useInputSearch({ filterKey });\n const [formType, setFormType] = React.useState(FormType.List);\n\n const userFilters = useSearchFilters({\n workId: props.work.id,\n name: 'contractors/list',\n references: {\n workspace: props.work.workspaces\n },\n persist: true\n });\n\n React.useEffect(() => {\n const keyFilters = Object.keys(userFilters.filters);\n keyFilters.forEach((key: string) => {\n if (userFilters.filters[key] == false) {\n if (key !== 'active') {\n userFilters.setFilter(key, null);\n }\n }\n });\n }, [userFilters.filters]);\n\n const paginateData = useSearchPaginate({\n search: 'contractors/list',\n workId: props.work.id,\n map: parseContractor,\n filters: userFilters.merge({ name: filter.value, work_id: props.work.id }),\n dependencies: [filter.value, userFilters.filters],\n lazy: true,\n limit: props.work.id == 21 ? 100 : 10,\n });\n\n const invalidateContractor = loading.wrap(async (contractor: IContractor) => {\n await props.invalidateContractor(props.work.id, contractor.id);\n initialize();\n });\n\n const confirmInvalidate = useConfirm({\n message: t('contractors.invalidate.confirm'),\n accept: invalidateContractor,\n });\n\n const doActivateContractor = loading.wrap(async (i: IContractor) => {\n await props.reactivateContractor(props.work.id, i.id);\n await initialize();\n });\n\n const confirmActivate = useConfirm({\n message: t('resource.activate.contractor.confirm'),\n accept: doActivateContractor\n });\n\n\n const initialize = loading.wrap(async () => {\n setFormType(FormType.List);\n await paginateData.doSearch();\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const selectContractor = (contractor: IContractor) => {\n goToContractor(props.work.id, contractor.id!);\n }\n\n const loadRequirements = (contractor: IContractor) => {\n goToContractorRequirements(props.work.id, contractor.id!);\n }\n\n const resolveLegalForm = useResolveName(props.legalForms, { translate: true });\n const resolveActivityType = useResolveName(props.activityTypes, { translate: true });\n\n const renderStatus = (contractor: IContractor) =>\n ;\n\n const renderLegalForm = (c: IContractor) => {\n const legalForm = resolveLegalForm(c.legalFormId);\n return
\n {legalForm}\n
;\n }\n\n const renderActivityType = (c: IContractor) => {\n return
\n {resolveActivityType(c.activityTypeId)}\n
\n }\n\n const resolveProperty = (c: IContractorResult, propertyName: string) =>\n c.properties[propertyName];\n\n const renderEmail = (c: IContractorResult) => {\n\n return
\n {Array.isArray(c.email) ? c.email.map((email: string, index: number) => {\n if (index == c.email!.length - 1) {\n return {email}\n }\n else {\n return {email}, \n }\n }) : {c.email}}\n
\n };\n\n\n const table = useDataTable({\n columns: [\n { title: t('Name'), render: d => {d.name}, className: 'td-lg', sortKey: 'name' },\n ...props.modules.injectDataColumns('manageContractors.list', { workId: props.work.id }),\n {\n title: t('Email'), render: c => renderEmail(c),\n className: 'td-md center important', sortKey: 'email'\n },\n settings.show('legalFormId')\n ? { title: t('Legal form'), render: renderLegalForm, className: 'td-md', sortKey: 'legalForm' }\n : undefined,\n { title: t('contractor.code'), field: 'code', className: 'td-md codes', sortKey: 'code' },\n settings.show('activityTypeId')\n ? { title: t('Activity type'), render: renderActivityType, className: 'td-md' }\n : undefined,\n { title: t('Provider code'), field: 'providerCode', className: 'td-md codes' },\n { title: t('Phone'), field: 'phone', className: 'td-md codes' },\n props.work.id != 19\n ? {\n title: 'Documentation', className: 'td-indicator indicator',\n render: d =>\n goToContractorRequirements(props.work.id, d.id)} className='pointer'>\n \n ,\n }\n : undefined,\n settings.show('currentStatusTypeId')\n ? { title: 'Status', field: 'currentstatustype', render: renderStatus, className: 'td-md' }\n : undefined\n // ...columnProperties,\n ],\n actions: [\n {\n actions: [\n // TODO: Controlar quién puede ver los datos del contratista - Item #906\n { title: t('View data'), onClick: selectContractor },\n { title: t('Requirements'), onClick: loadRequirements },\n props.security.hasPermission('contractors.force.status') ?\n {\n title: t('contractors.invalidate'),\n disabled: r => r.isActive == false,\n onClick: confirmInvalidate,\n } : undefined,\n props.security.hasPermission('contractors.force.status')\n ? { title: t('resource.activate'), disabled: r => r.isActive == true, onClick: confirmActivate }\n : undefined\n //TODO: ¿Eliminar contratistas? - Item #906\n ]\n }\n ],\n data: paginateData.data,\n onSort: (key, order) => paginateData.sortBy(key, order),\n });\n\n const paginator = usePaginator({\n data: paginateData.value,\n onChange: (page, limit) =>\n paginateData.doSearch(userFilters.merge({ name: filter.value, work_id: props.work.id }), page, limit),\n onExport: () => paginateData.exportToXls(\n userFilters.merge({ name: filter.value, work_id: props.work.id }),\n t('contractors.export.filename'), true),\n });\n\n const getActions = () => {\n const actions = [];\n const security = props.security;\n\n actions.push({\n label: t('contractors.list'),\n command: () => setFormType(FormType.List),\n });\n\n if (security.hasPermission('contractors.add')) {\n actions.push({\n label: t('contractors.add'),\n command: () => setFormType(FormType.CreateContractor),\n });\n }\n\n if (security.hasPermission('contractors.invite')) {\n actions.push({\n label: t('contractors.invite'),\n command: () => setFormType(FormType.CreateInvitation),\n });\n if (security.hasPermission('contractors.invitations.list')) {\n actions.push({\n label: t('contractors.invitations.list'),\n command: () => setFormType(FormType.ViewInvitations),\n });\n }\n }\n\n return actions;\n }\n\n const actions = getActions();\n\n\n return
\n setFormType(FormType.List)}\n text={t('Contractors')} />\n\n {confirmInvalidate}\n\n
\n
\n
\n \n {filter.render()}\n {userFilters.renderAsButton()}\n {loading.renderBox()}\n \n \n \n
\n {formType === FormType.List && <>\n
\n {table()}\n
\n
\n {paginator()}\n }\n\n {formType === FormType.CreateInvitation && <>\n
\n

{t('contractors.invite.message')}

\n setFormType(FormType.List)}\n onCreate={() => setFormType(FormType.List)} />\n
\n }\n\n {formType === FormType.ViewInvitations && <>\n {/* //TODO: Controlar quién puede ver las invitaciones a contratistas - Item #906 */}\n \n }\n\n {formType === FormType.CreateContractor && <>\n
\n \n
\n }\n
\n
\n
\n}\n\n\nexport const ManageContractors = React.memo(ManageContractorsImpl, (prev, next) => {\n return prev.work.id === next.work.id;\n});","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as ContractorsStore from '../../store/contractors';\nimport { ManageContractors } from '../../components/contractors/ManageContractors';\nimport { isJobHasContractorPropertyGroupType } from '@models';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...ContractorsStore.plainActions,\n modules: state.modules.moduleManager,\n constants: state.constants,\n propertyGroupTypes: state.user.propertyGroupTypes.filter(isJobHasContractorPropertyGroupType)\n }),\n ContractorsStore.actionCreators,\n)(ManageContractors as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as ContractorsStore from '../../store/contractors';\nimport { ManageSubcontractors } from '../../components/contractors/ManageSubcontractors';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...state.constants,\n ...ContractorsStore.plainActions,\n ...state.jobs.selectedJobHasContractor\n }),\n {},\n)(ManageSubcontractors as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any","import * as React from 'react';\nimport {\n BreadcrumbItem, ValidationBuilder, useDataTable,\n usePaginator, useRemoteData, useTranslation,\n useMessage, useLoading, useForm, G, SplitButton,\n useSearch,\n Tag,\n} from '@components';\nimport {\n ISecurity,\n IWork,\n ResourceType\n} from '@models';\nimport { IContractor, IWorkerDocumentType, IWorkerType } from '@models/resources';\nimport { goToJobMachineries, goToJobWorkers, goToSubContractors, subContractorsRoute } from '@components/routes';\nimport { ResourceStatus } from '@components/common/ResourceStatus';\nimport { redirectTo } from '@utils';\n\ntype GetContractorF = (workId: number) => Promise;\n\nexport interface IProps {\n work: IWork;\n getContractorFromAppUser: GetContractorF;\n}\n\nexport function ManageSubcontractors(props: IProps) {\n const { t } = useTranslation();\n const [contractor, setContractor] = React.useState();\n\n const loading = useLoading();\n\n const getContractor = loading.wrap(async () => {\n const c = await props.getContractorFromAppUser(props.work.id);\n setContractor(c);\n });\n\n React.useEffect(() => {\n getContractor();\n console.log(\"!!!! CONTRACTORID: \" + contractor?.id);\n }, [props.work]);\n\n React.useEffect(() => {\n search.doSearch();\n }, [contractor]);\n\n const search = useSearch({\n workId: props.work.id,\n search: 'subcontractors',\n filters: {\n workId: props.work.id,\n contractorId: contractor?.id,\n RequireContractorId: contractor?.id,\n }\n });\n\n const renderStatus = (r: any) => {\n return ;\n };\n\n const renderRequirements = (r: any) => {\n return
redirectTo(`/work/${props.work.id}/jobs/${r.jobId}/contractor/${r.id}/requirements`)}>\n \n
\n }\n\n const renderMachineries = (r: any) => {\n return
goToJobMachineries(props.work.id, r.jobId, r.id)}>\n \n
\n }\n\n const renderWorkers = (r: any) => {\n return
goToJobWorkers(props.work.id, r.jobId, r.id)}>\n \n
\n }\n\n const dataTable = useDataTable({\n columns: [\n { title: 'Contractor', field: 'name', className: 'center'},\n { title: 'Job', field: 'jobName', className: 'center'},\n { title: 'Start date', field: 'startDate', className: 'center'},\n { title: 'Description', field: 'description', className: 'center'},\n { title: 'Status', render: renderStatus, className: 'center'},\n {\n title: 'Requirements',\n render: renderRequirements,\n className: 'center',\n },\n { title: 'Machineries', render: renderMachineries, className: 'center'},\n { title: 'Workers', render: renderWorkers, className: 'center'}\n ],\n data: search.value\n });\n\n return
\n goToSubContractors}\n text={t('Subcontractors')} />\n {contractor &&\n
\n {console.log(contractor)}\n {dataTable()}\n
\n }\n
\n}","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as ContractorsStore from '@store/contractors';\nimport { ContractorRequirements } from '@components/contractors/ContractorRequirements';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...state.constants,\n ...ContractorsStore.plainActions,\n }),\n {},\n)(ContractorRequirements as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { IContractor, IWork } from '@models';\nimport EditRequirements from '@containers/requirements/EditRequirementsContainer';\nimport { RequirementTargetType } from '@models/requirements';\nimport { useLoading } from '@components';\n\ntype ContractorFromAppUserF = (workId: number) => Promise;\n\nexport interface IProps {\n getContractorFromAppUser: ContractorFromAppUserF;\n work: IWork;\n}\n\nexport function ContractorRequirements(props: IProps) {\n const [contractor, setContractor] = React.useState();\n\n const loading = useLoading();\n\n const getContractor = loading.wrap(async () => {\n const c = await props.getContractorFromAppUser(props.work.id);\n\n setContractor(c);\n });\n\n React.useEffect(() => {\n getContractor();\n }, [props.work]);\n\n return
\n {loading.renderBox()}\n\n {contractor &&\n }\n
\n}","import * as React from 'react';\n\nimport {\n F, Message, TabPanel, TabView, Tag,\n useDataTable, useDialogs, useForm, useLoading, useMessage, useRemoteData, useSearch, useTranslation\n} from '@components';\nimport { IContractor, IOption, ISubContractorRequest, IWork, IUserIdentity, ModuleManager } from '@models';\nimport './ManageSubContractorRequests.scss';\n\ntype ProcessF = (workId: number, subContractorRequestId: number, reason?: string) => IOption;\n\nexport interface IProps {\n acceptSubContractorRequest: ProcessF;\n getContractorFromAppUser: Function;\n getSubContractorRequestsAsTarget: Function;\n rejectSubContractorRequest: ProcessF;\n work: IWork;\n getJob: Function;\n getContractor: Function;\n getJobHasContractor: Function;\n getJobHasContractorFromAppUser: Function;\n user?: IUserIdentity;\n moduleManager: ModuleManager;\n}\n\nfunction RequestState({ request }: { request: ISubContractorRequest }) {\n const { t } = useTranslation();\n\n if (request.rejected) {\n return ;\n }\n else if (!request.acceptedByContractor && !request.acceptedByWork) {\n return ;\n }\n else if (request.acceptedByContractor) {\n return ;\n }\n else if (request.acceptedByWork) {\n return ;\n }\n else {\n return null;\n }\n}\n\nfunction ProcessSubContractorRequest({\n accept, reject,\n onClose, onSuccess, request,\n workId\n}: {\n accept: ProcessF, reject: ProcessF,\n onSuccess: Function,\n onClose: Function, request: ISubContractorRequest,\n workId: number,\n}) {\n const { t } = useTranslation();\n const loading = useLoading();\n const message = useMessage();\n\n const form = useForm({\n initialValues: request,\n });\n\n const doAccept = loading.wrap(async () => {\n const res = await accept(workId, request.id!);\n message.set(res);\n\n if (res.hasValue) {\n onSuccess();\n }\n });\n\n const doReject = loading.wrap(async () => {\n const res = await reject(workId, request.id!, form.get('rejectedReason'));\n message.set(res);\n\n if (res.hasValue) {\n onSuccess();\n }\n });\n\n return
\n
\n \n
\n {request.sourceContractor?.name}\n {t('Has requested you as subcontractor for the job')}\n {request.job?.name}\n {request.job?.code}\n
\n \n \n
\n
\n \n
\n \n \n
\n \n {form.textarea('rejectedReason')}\n \n
\n
\n \n
\n
\n
\n \n
\n\n {message.render()}\n\n
\n {loading.render()}\n
\n \n
\n
\n}\n\nexport function ManageSubContractorRequestsImpl(props: IProps) {\n const { t } = useTranslation();\n const dialogs = useDialogs();\n const [data, setData] = React.useState([]);\n\n const [selfContractorId, setSelfContractorId] = React.useState(0);\n\n React.useEffect(() => {\n props.getContractorFromAppUser(props.work?.id).then((u: IContractor) =>\n setSelfContractorId(u?.id));\n }, [props.work?.id]);\n\n const prepareToProcessRequest = (r: ISubContractorRequest) => {\n dialogs.show('process', r);\n }\n\n const needWorkAcceptance = props.work.settingsObj?.acceptSubContractorRequests ?? false;\n\n const canProcessRequest = (r: ISubContractorRequest) => {\n return !r.rejected\n && !r.acceptedByContractor\n && (r.acceptedByWork || !needWorkAcceptance)\n && (r.targetContractor?.id == selfContractorId);\n }\n\n const query = useRemoteData(\n props.getSubContractorRequestsAsTarget, {\n parameters: [props.work.id],\n });\n\n const invitationSearch = useSearch({\n workId: props.work.id,\n search: 'jobs/subcontractor.invitations.contractors',\n filters: {\n workId: props.work.id,\n contractorId: selfContractorId,\n },\n lazy: true,\n });\n\n const userInvitationsSearch = useSearch({\n workId: props.work.id,\n search: 'jobs/subcontractor.invitations.users',\n filters: {\n workId: props.work.id,\n },\n lazy: true,\n });\n\n const initialize = async () => {\n const req = await query.query();\n const invitations = await invitationSearch.doSearch();\n const userInvitations = await userInvitationsSearch.doSearch();\n\n\n const selfContractor = await props.getContractorFromAppUser(props.work?.id);\n const selfContractorId = selfContractor?.id;\n\n let parentIds: any[] = [];\n\n if (props.user?.roles.includes('Contractor')) {\n parentIds = (invitations.map((i: any) => {\n if (selfContractorId === i.sourceId) {\n return i.jobHasContractorId;\n }\n\n if (selfContractor.name != null && selfContractor.name === i.targetName) {\n return i.jobHasContractorId;\n }\n }));\n\n parentIds.push(selfContractorId);\n } else {\n parentIds = (invitations.map((i: any) => {\n return i.jobHasContractorId;\n }));\n }\n\n\n parentIds = parentIds.filter((i: any) => i != undefined);\n\n invitations.map((x: any) => {\n if (parentIds.includes(x.parentId)) {\n parentIds.push(x.jobHasContractorId);\n }\n });\n\n let invitationsAsRequests: ISubContractorRequest[] = [];\n\n for (const invitation of invitations) {\n if (parentIds.includes(invitation.jobHasContractorId)) {\n let request: ISubContractorRequest = {\n jobsDescription: invitation.description,\n jobId: invitation.jobId,\n shipmentNumber: invitation.shipmentNumber,\n sourceContractorId: invitation.sourceId,\n sourceContractor: await props.getContractor(props.work.id, invitation.sourceId),\n targetContractorId: 0,\n targetContractor: invitation.targetName,\n workId: props.work.id,\n dateTime: invitation.dateTime,\n acceptedByContractorDateTime: invitation.acceptedDate,\n rejected: invitation.accepted != null ? !invitation.accepted : false,\n acceptedByContractor: invitation.accepted,\n job: invitation.jobName,\n id: 0,\n jobHasContractorId: 0\n };\n invitationsAsRequests.push(request);\n }\n }\n\n let userInvitationsAsRequests: ISubContractorRequest[] = [];\n for (const invitation of userInvitations) {\n if (invitation.jobId != null && (invitation.parentId && parentIds.includes(invitation.parentId) || invitation.contractorName === selfContractor?.name)) {\n let request: ISubContractorRequest = {\n jobsDescription: invitation.description,\n jobId: invitation.jobId,\n shipmentNumber: invitation.shipmentNumber,\n sourceContractorId: 0,\n sourceContractor: invitation.source,\n targetContractorId: 0,\n targetContractor: invitation.contractorName,\n dateTime: invitation.dateTime,\n workId: props.work.id,\n rejected: invitation.accepted != null ? !invitation.accepted : false,\n acceptedByContractor: invitation.accepted,\n acceptedByContractorDateTime: invitation.acceptedDate,\n job: invitation.description,\n id: 0,\n jobHasContractorId: 0\n };\n userInvitationsAsRequests.push(request);\n }\n }\n\n setData(req.concat(invitationsAsRequests).concat(userInvitationsAsRequests));\n }\n\n React.useEffect(() => {\n initialize();\n }, [props.work.id]);\n\n const renderRequestedContractor = (r: ISubContractorRequest) => {\n const className = r.targetContractor?.id === selfContractorId\n ? 'strong'\n : undefined;\n return {r.targetContractor?.name ?? r.targetContractor};\n }\n\n const dataTable = useDataTable({\n className: 'a-left',\n columns: [\n { title: t('Date'), sortKey: 'dateTime', className: 'td-datetime a-left', field: 'dateTime', delegate: 'date' },\n { title: t('Applicant'), sortKey: 'sourceContractor', className: 'a-left', render: r => r.sourceContractor?.name ?? r.sourceContractor },\n { title: t('Requested contractor'), sortKey: 'targetContractor', className: 'a-left', render: renderRequestedContractor },\n { title: t('Description'), sortKey: 'jobsDescription', className: 'a-left', field: 'jobsDescription' },\n { title: t('Job'), sortKey: 'job.code', className: 'a-left', render: r => r.job?.name ?? r.job },\n { title: t('State'), sortKey: 'acceptedByContractor', className: 'td-lg a-left', render: r => },\n ],\n actions: [\n { icon: 'play', className: 'a-left', onClick: prepareToProcessRequest, disabled: r => !(canProcessRequest(r)) },\n ],\n data: data,\n loading: query.loading,\n });\n\n const refresh = () => {\n dialogs.clear();\n initialize();\n }\n\n return
\n {dataTable()}\n\n {dialogs.render(\n 'process',\n {},\n (data: ISubContractorRequest) =>\n dialogs.clear()}\n request={data} />)}\n
;\n}\n\nexport function ManageSubContractorRequests(props: IProps) {\n const res = props\n .moduleManager\n .renderComponent('WorkSubContractorRequests', { ...props }, ManageSubContractorRequestsImpl);\n return res;\n}\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as ContractorsStore from '../../store/contractors';\nimport * as JobsStore from '../../store/jobs';\nimport { ManageSubContractorRequests } from '../../components/contractors/ManageSubContractorRequests';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...ContractorsStore.plainActions,\n moduleManager: state.modules.moduleManager,\n }),\n {}\n)(ManageSubContractorRequests as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\nimport { Route } from 'react-router';\n\nimport ContractorRequirements from '@containers/contractors/ContractorRequirementsContainer';\nimport ManageSubContractorRequestsContainer from '@containers/contractors/ManageSubContractorRequestsContainer';\n\nexport interface IProps {}\n\nexport function ContractorModule(props: IProps) {\n return <>\n \n \n ;\n}","import * as React from 'react';\r\n\r\nimport { classNames, useConfirm, useTranslation, useSearchFilters, Tag } from '@components';\r\nimport { IOption, ISecurity, IWork } from '@models';\r\nimport {\r\n messageTypes, IMessage, translateNotificationIcon, messageTitle, MessageType\r\n} from '@models/notifications';\r\nimport { NotificationMessageDisplayName } from './NotificationMessageDisplayName';\r\nimport { NotificationMessageEffect } from './NotificationMessageEffect';\r\nimport { MessageIcon } from './MessageIcon';\r\nimport * as DateUtils from '@utils/date-utils';\r\n\r\nimport './NotificationsCenter.scss';\r\nimport { currentLocale } from '../../i18n';\r\n\r\ntype ResolveMessageF = (id: string) => Promise>;\r\n\r\nexport interface IProps {\r\n className?: string;\r\n messages: IMessage[];\r\n resolveMessage: ResolveMessageF;\r\n security: ISecurity;\r\n work: IWork;\r\n workId: number;\r\n}\r\n\r\nfunction NotificationMessage({ message, resolveMessage, onSelect, checked, onCheck }: {\r\n message: IMessage, resolveMessage: ResolveMessageF, onSelect: Function,\r\n checked: boolean,\r\n onCheck: Function,\r\n}) {\r\n const { t } = useTranslation();\r\n\r\n const confirm = useConfirm({\r\n message: t('notifications.message.close-confirm'),\r\n accept: (messageId: string) => resolveMessage(messageId),\r\n });\r\n\r\n let langRegExp = new RegExp(/(--\\w{2}--)/)\r\n\r\n const detectLanguages: any = (input: string, acc = [], level = 1) => {\r\n const m = langRegExp.exec(input);\r\n\r\n if (m && input.length > 0) {\r\n const lang = m[0];\r\n const index = input.indexOf(lang) + lang.length;\r\n return detectLanguages(input.substring(index), [...acc, lang], level + 1);\r\n }\r\n else {\r\n return acc;\r\n }\r\n }\r\n\r\n const languages: string[] = detectLanguages(message.message);\r\n const localeIncluded = languages.map(d => d.includes(currentLocale()) ? currentLocale() : undefined).filter(d => d !== undefined)[0];\r\n\r\n const getNotificationByLanguage = (input: string, language: string | undefined = undefined) => {\r\n if (language) {\r\n const i = input.indexOf('--' + language + '--');\r\n const l = input.indexOf('--', i + 6);\r\n const start = i >= 0 ? i + 6 : 0;\r\n\r\n return input.substring(start, l >= 0 ? l : input.length);\r\n }\r\n else if (input.indexOf('--') >= 0) {\r\n return input.substring(0, input.indexOf('--'));\r\n }\r\n else {\r\n return input;\r\n }\r\n }\r\n message.message = getNotificationByLanguage(message.message, localeIncluded)\r\n\r\n return \r\n {message.icon &&\r\n onSelect(message)} className={translateNotificationIcon(message.icon)} />}\r\n \r\n\r\n {DateUtils.format(message.date, 'd-m-y h:i')}\r\n\r\n onSelect(message)}>\r\n {messageTitle(message)}\r\n \r\n\r\n onSelect(message)}>\r\n \r\n \r\n\r\n \r\n onCheck()} id={message.id} />\r\n confirm(message.id, e)}\r\n title={t('notifications.message.close')}>\r\n \r\n \r\n
\r\n}\r\n\r\ntype IMessageWithSearch = IMessage & {\r\n jobSearch: string;\r\n contractorSearch: string;\r\n messageSearch: string;\r\n}\r\n\r\nconst filterMessage = (message: IMessageWithSearch, filters: any) => {\r\n return (filters.messageType == undefined || message.notificationType == filters.messageType)\r\n && (filters.job == null || filters.job == '' || message.jobSearch.includes(filters.job.toLowerCase()))\r\n && (filters.contractor == null || filters.contractor == '' || message.contractorSearch.includes(filters.contractor.toLowerCase()))\r\n && (filters.message == null || filters.message == '' || message.messageSearch.includes(filters.message.toLowerCase()))\r\n && (message.message != null)\r\n && (message.message != '')\r\n && (message.notificationType == MessageType.RELOAD_NOTIFICATIONS);\r\n}\r\n\r\nconst filterMessages = (messages: IMessageWithSearch[], filters: any) => {\r\n return messages.filter(m => filterMessage(m, filters));\r\n}\r\n\r\nconst contractorProperties = ['ContractorName', 'ContractorCode'];\r\nconst jobProperties = ['JobCode', 'JobName', 'JobDescription'];\r\n\r\nconst parseMessageProps = (data: any, propNames: string[]) => {\r\n const props = propNames.map(p => data[p] ?? '').join('').toLowerCase();\r\n\r\n return props ?? '';\r\n}\r\n\r\nconst parseMessages = (messages: IMessage[]) => {\r\n return messages.map(m => ({\r\n ...m,\r\n jobSearch: parseMessageProps(m.data ?? {}, jobProperties),\r\n contractorSearch: parseMessageProps(m.data ?? {}, contractorProperties),\r\n messageSearch: m.message?.toLowerCase(),\r\n }));\r\n}\r\n\r\nconst excludeNotificationTypes = [\r\n MessageType.INVALID_ITA,\r\n MessageType.RESOURCE_AUTHORIZED,\r\n MessageType.RESOURCE_REJECTED,\r\n MessageType.REQUIREMENT_EXPIRED,\r\n];\r\n\r\nexport function NotificationsCenter(props: IProps) {\r\n const { t } = useTranslation();\r\n\r\n const confirm = useConfirm({\r\n message: t('notifications.messages.close-confirm'),\r\n accept: () => doRemoveCheckedMessages(),\r\n });\r\n\r\n const originalMessages = React.useRef(\r\n parseMessages(props.messages));\r\n\r\n const [messages, setMessages] = React.useState(originalMessages.current);\r\n const [selectedMessage, setSelectedMessage] = React.useState();\r\n const [checkedMessages, setCheckedMessages] = React.useState([]);\r\n\r\n const filters = props.workId == 21 ? useSearchFilters({\r\n name: 'notifications/list',\r\n workId: props.workId,\r\n references: {\r\n messageType: messageTypes\r\n .filter(m => !excludeNotificationTypes.includes(m.id))\r\n .map(m => ({ ...m, name: t(m.name) })),\r\n },\r\n persist: true\r\n }) : useSearchFilters({\r\n name: 'notifications/list',\r\n workId: props.workId ?? 0,\r\n references: {\r\n messageType: messageTypes.map(m => ({ ...m, name: t(m.name) })),\r\n },\r\n persist: true\r\n });\r\n\r\n React.useEffect(() => {\r\n if (filters.hasFilters()) {\r\n if (props.workId != null) {\r\n setMessages(filterMessages(originalMessages.current, filters.filters)\r\n .filter(om => om.data)\r\n .filter(om => om.data.WorkId == props.workId)\r\n .sort((a, b) =>\r\n new Date(b.date!).getTime() - new Date(a.date!).getTime()))\r\n } else {\r\n setMessages(filterMessages(originalMessages.current, filters.filters)\r\n .sort((a, b) =>\r\n new Date(b.date!).getTime() - new Date(a.date!).getTime()))\r\n }\r\n }\r\n else {\r\n if (props.workId != null) {\r\n setMessages(originalMessages.current\r\n .filter(om => om.data.WorkId == props.workId)\r\n .sort((a, b) =>\r\n new Date(b.date!).getTime() - new Date(a.date!).getTime()));\r\n } else {\r\n setMessages(originalMessages.current\r\n .sort((a, b) =>\r\n new Date(b.date!).getTime() - new Date(a.date!).getTime()));\r\n }\r\n\r\n }\r\n }, [filters.filters]);\r\n\r\n React.useEffect(() => {\r\n const original = parseMessages(props.messages);\r\n originalMessages.current = original;\r\n if (filters.hasFilters()) {\r\n setMessages(filterMessages(original, filters.filters));\r\n }\r\n else {\r\n setMessages(original\r\n .sort((a, b) =>\r\n new Date(b.date!).getTime() - new Date(a.date!).getTime()));\r\n }\r\n }, [props.messages]);\r\n\r\n const doRemoveCheckedMessages = () => {\r\n for (const message of checkedMessages) {\r\n props.resolveMessage(message.id);\r\n }\r\n }\r\n\r\n const doCheckAllMessages = () => {\r\n if (checkedMessages.length == messages.length) {\r\n setCheckedMessages([]);\r\n }\r\n else {\r\n setCheckedMessages(messages);\r\n }\r\n }\r\n\r\n const messagesToRender = messages\r\n .filter(m => m.notificationType != MessageType.RELOAD_NOTIFICATIONS);\r\n\r\n return
\r\n
\r\n {t('Notifications')}\r\n \r\n \"gstore\"\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {filters.renderAsButton()}\r\n
\r\n\r\n
\r\n {console.log('###workId', props.workId)}\r\n {selectedMessage &&\r\n setSelectedMessage(undefined)}\r\n resolveMessage={props.resolveMessage}\r\n security={props.security}\r\n workId={props.workId}\r\n work={props.work} />}\r\n {messagesToRender.map(m =>\r\n setCheckedMessages(checkedMessages.includes(m) ? checkedMessages.filter(r => r != m) : [...checkedMessages, m])}\r\n />)}\r\n
\r\n
\r\n}\r\n","import { connect } from 'react-redux';\r\nimport { ApplicationState } from '../../store';\r\nimport * as NotificationsStore from '@store/notifications';\r\n\r\nimport { NotificationsCenter } from '@components/notifications/NotificationsCenter';\r\n\r\nexport default connect(\r\n (state: ApplicationState) => ({\r\n messages: state.notifications.messages,\r\n ...state.identity,\r\n workId: state.work.work?.id ?? state.user.work?.id\r\n }),\r\n {\r\n resolveMessage: NotificationsStore.actionCreators.clearMessage,\r\n },\r\n)(NotificationsCenter as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n","import * as React from 'react';\n\nimport { Card, useTranslation } from '@components';\nimport NotificationsCenter from '@containers/notifications/NotificationsCenterContainer';\nimport { IWork } from '@models';\n\nimport './SelectWork.scss';\n\nexport interface IProps {\n works: IWork[];\n selectWork: Function;\n}\n\nconst WorkCard = ({ work, selectWork }: {\n work: IWork,\n selectWork: Function,\n}) => {\n // return
selectWork(work.id)}>\n //
\n // gstore\n //
\n //
;\n\n var workClass = `card-select-work pointer work-${work.id}`;\n var isMain = work.id === 19 || work.id === 21 || work.id === 22 || work.id === 23;\n return
selectWork(work.id)}>\n \n
\n {work.name}\n
\n
\n}\n\nexport function SelectWork(props: IProps) {\n const { t } = useTranslation();\n\n return
\n \n\n
\n
\n {t('Clients')}\n \"gstore\"\n
\n
\n {(props.works ?? []).map((w, i) =>\n )}\n
\n
\n {/*
\n
\n {t('Clients')}\n \"gstore\"\n
\n
*/}\n
\n}","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as User from '../../store/user';\n\nimport { SelectWork } from '../../components/user/SelectWork';\n\nexport default connect(\n (state: ApplicationState) => ({\n works: state.user.works ?? [],\n }),\n User.actionCreators,\n)(SelectWork as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","export enum ReportOutputType {\n Table = 0,\n BarChart = 1,\n PieChart = 2,\n}\n\nexport interface IReportColumn {\n name: string;\n title?: string;\n className?: string;\n delegate?: string;\n style?: string;\n hidden?: boolean;\n}\n\nexport interface IReportOutputAction {\n action: string;\n title?: string;\n parameter?: string;\n icon?: string;\n}\n\nexport interface IReportDefinition {\n name: string;\n title: string;\n hidden?: boolean;\n icon?: string;\n className?: string;\n\n outputs: IReportOutput[];\n}\n\nexport interface IReportOutput {\n searchName: string;\n autoStart?: boolean;\n outputType: ReportOutputType;\n columns?: IReportColumn[];\n actions?: IReportOutputAction[];\n canExport?: boolean;\n}\n","import * as React from 'react';\n\ntype DispatcherF = (value: any) => void;\n\nexport default function useSynchronizedDispatch(dispatcher: DispatcherF, delay: number = 200) {\n const r = React.useRef(new SynchronizedDispatch(dispatcher, delay));\n\n return r.current;\n}\n\nexport class SynchronizedDispatch {\n private value?: any;\n private ts: number;\n private sended: boolean;\n\n constructor(\n private dispatchEvent: DispatcherF,\n private delay: number = 2) {\n this.ts = new Date().getTime();\n this.value = undefined;\n\n this.enqueue = this.enqueue.bind(this);\n this.sended = false;\n }\n\n private enqueue() {\n const nts = new Date().getTime();\n if (nts - this.ts > this.delay) {\n if (this.sended) {\n return;\n }\n this.sended = true;\n this.dispatchEvent(this.value);\n }\n else {\n setTimeout(this.enqueue, this.delay);\n }\n }\n\n public append(value: any) {\n const ts = new Date().getTime();\n\n this.sended = this.sended && (JSON.stringify(value) == JSON.stringify(this.value));\n\n this.value = value;\n setTimeout(this.enqueue, this.delay);\n\n this.ts = ts;\n }\n}\n","import * as React from 'react';\r\nimport ReportContainer from '@containers/reports/ReportContainer';\r\nimport { IReportColumn, IReportDefinition, IReportOutput, IReportOutputAction } from '@models/reports';\r\nimport { ISecurity } from '@models';\r\nimport { search, searchExportToXls } from '@store/actions/search';\r\nimport {\r\n useDataTable, useDialogs, useLoading, useTranslation, useSearchFilters, Portal,\r\n classNames,\r\n} from '@components';\r\nimport { downloadBlob } from '@utils/file-utils';\r\nimport { interpolate } from '@utils';\r\nimport './ReportOutputTableComponent.scss';\r\nimport dateUtils from '@utils/date-utils';\r\nimport { useDispatch } from 'react-redux';\r\nimport useSynchronizedDispatch from '@components/custom/useSynchronizedDispatch';\r\n\r\nexport interface IProps {\r\n filtersContext: any;\r\n filterParameters?: any;\r\n report: IReportDefinition;\r\n output: IReportOutput;\r\n security: ISecurity;\r\n workId: number;\r\n}\r\n\r\nconst parseColumn = (c: IReportColumn) => {\r\n if (!c.hidden) {\r\n return {\r\n title: c.title,\r\n className: classNames(c.className, 'center'),\r\n field: c.name,\r\n // render: (d: any) => d[c.name],\r\n delegate: c.delegate,\r\n sortKey: c.name,\r\n };\r\n }\r\n}\r\n\r\nconst parseColumns = (c: IReportColumn[] | undefined) => {\r\n if (c) {\r\n return c.map(parseColumn);\r\n }\r\n else {\r\n return [];\r\n }\r\n}\r\n\r\ninterface ISubReport {\r\n name: string;\r\n data: any;\r\n title?: string;\r\n}\r\n\r\nexport function ReportOutputTableComponent(props: IProps) {\r\n const { t } = useTranslation();\r\n const [data, setData] = React.useState([]);\r\n const [columns, setColumns] = React.useState([]);\r\n const dialogs = useDialogs();\r\n\r\n const loading = useLoading();\r\n\r\n const report = props.report;\r\n const output = props.output;\r\n\r\n const initialize = loading.wrap(async (value: any) => {\r\n setColumns(parseColumns(output.columns));\r\n if (output.autoStart) {\r\n const res = await search(props.workId, output.searchName, {\r\n filters: value.filters ?? userFilters.filters,\r\n });\r\n\r\n if (res.hasValue) {\r\n res.value.map((r:any) => {\r\n let array = Object.getOwnPropertyNames(r);\r\n array.map(a => {\r\n if (new Date(r[a]).toString() === 'Invalid Date') {\r\n r[a] = t(r[a]);\r\n }\r\n })\r\n })\r\n setData(res.value ?? []);\r\n }\r\n }\r\n });\r\n\r\n const dispatcher = useSynchronizedDispatch(initialize);\r\n\r\n const parseAction = (c: IReportOutputAction) => {\r\n if (c.action === 'open') {\r\n return {\r\n icon: c.icon,\r\n title: c.title,\r\n onClick: (r: any) => {\r\n const url = interpolate(c.parameter ?? '', r);\r\n window.open(url, '_blank', 'location=no,status=no');\r\n }\r\n }\r\n }\r\n else if (c.action === 'report' || c.action === 'sublist') {\r\n return {\r\n icon: c.icon,\r\n tooltip: c.title,\r\n onClick: (r: any) => {\r\n dialogs.show('sublist', {\r\n name: c.parameter,\r\n data: r,\r\n title: c.title,\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n return undefined;\r\n }\r\n }\r\n\r\n const parseActions = (c: IReportOutputAction[] | undefined) => {\r\n if (c) {\r\n return c.map(parseAction).filter(t => t);\r\n }\r\n else {\r\n return [];\r\n }\r\n }\r\n\r\n const userFilters = useSearchFilters({\r\n security: props.security,\r\n workId: props.workId,\r\n name: output.searchName,\r\n references: props.filtersContext,\r\n persist: true,\r\n awaitForApply: true,\r\n });\r\n\r\n React.useEffect(() => {\r\n console.log('userFilters', userFilters.filters);\r\n }, [userFilters.filters]);\r\n\r\n React.useEffect(() => {\r\n dispatcher.append({\r\n report: props.report,\r\n parameters: props.filterParameters,\r\n filters: userFilters.filters,\r\n });\r\n }, [props.report, props.filterParameters, userFilters.filters]);\r\n\r\n const actions = parseActions(props.output.actions);\r\n\r\n const dataTable = useDataTable({\r\n actions: actions,\r\n columns: columns,\r\n data: data,\r\n scrollHeight: '100%',\r\n scrollable: true,\r\n className: `ReportOutputTableComponent ${props.report.className}`,\r\n tooltip: true,\r\n resizableColumns: true,\r\n lazy: true,\r\n paginator: true,\r\n rows: 100,\r\n rowsPerPageOptions: [100, 200, 300]\r\n });\r\n\r\n const exportToXls = async (filters: any, filename: string | undefined = undefined) => {\r\n const resp = await searchExportToXls(props.workId, output.searchName, {\r\n filters: filters,\r\n });\r\n downloadBlob(resp, filename ?? (report.title + '.xlsx') ?? 'export.xlsx');\r\n }\r\n\r\n return
\r\n {loading.renderBox()}\r\n \r\n
\r\n {output.canExport && \r\n exportToXls(userFilters.filters)}\r\n style={{ height: '23px', marginTop: '3px' }} />\r\n }\r\n {userFilters.renderAsButton({ className: 'fas fa-filter pointer' })}\r\n
\r\n
\r\n\r\n {dataTable()}\r\n\r\n {dialogs.render('sublist', {}, (data: ISubReport) =>\r\n
\r\n
\r\n {data.title}\r\n dialogs.clear()} />\r\n
\r\n \r\n
)}\r\n
\r\n}\r\n","import * as React from 'react';\nimport { IReportDefinition, IReportOutput } from '@models/reports';\nimport { ISecurity } from '@models';\nimport { EChart, useLoading, useTranslation } from '@components';\nimport { search } from '@store/actions/search';\n\nexport interface IProps {\n report: IReportDefinition;\n output: IReportOutput;\n security: ISecurity;\n workId: number;\n}\n\nexport function ReportOutputBarChartComponent(props: IProps) {\n const loading = useLoading(true);\n const { t } = useTranslation();\n const [options, setOptions] = React.useState({});\n const [data, setData] = React.useState([]);\n\n const initialize = loading.wrap(async () => {\n const r = await search(props.workId, props.output.searchName, {});\n const rows = r.value;\n setData(rows);\n\n const serieLabels = rows.map((r: any) => t(r.name));\n const serieValues = rows.map((r: any) => r.count);\n\n setOptions({\n aria: {\n decal: {\n show: true\n }\n },\n tooltip: {\n trigger: 'item',\n // formatter: '{a}
{b} : {c} ({d}%)'\n formatter: '{b} : {c}'\n },\n xAxis: {\n type: 'category',\n data: serieLabels\n },\n yAxis: {\n type: 'value'\n },\n series: [\n {\n data: serieValues,\n type: 'bar'\n }\n ]\n });\n });\n\n React.useEffect(() => {\n if (props.output.autoStart) {\n initialize();\n }\n }, [props.output]);\n\n return
\n \n
\n}","import * as React from 'react';\nimport { IReportDefinition, IReportOutput, ReportOutputType } from '@models/reports';\nimport { ISecurity } from '@models';\nimport { ReportOutputTableComponent } from './ReportOutputTableComponent';\nimport { ReportOutputBarChartComponent } from '@components/reports/ReportOutputBarChartComponent';\n\nexport interface IProps {\n filtersContext: any;\n filterParameters?: any;\n report: IReportDefinition;\n output: IReportOutput;\n security: ISecurity;\n workId: number;\n className?: string;\n}\n\nexport function ReportOutputComponent(props: IProps) {\n if (props.output.outputType == ReportOutputType.Table) {\n return \n }\n else if (props.output.outputType == ReportOutputType.BarChart) {\n return \n }\n else {\n return
;\n }\n}\n","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { ApplicationState } from '../../store';\r\nimport { ReportComponent } from '@components/reports/ReportComponent';\r\n\r\nimport * as User from '@store/user';\r\n\r\nexport default connect(\r\n (state: ApplicationState, props: any) => {\r\n const reportName = props.reportName || props.match?.params?.reportName;\r\n\r\n return {\r\n reportName: reportName,\r\n report: state.user.reports.find(r => r.name == reportName),\r\n workId: props.workId ?? parseInt(props.match?.params?.workid),\r\n ...state.user,\r\n ...state.identity,\r\n ...User.plainActions,\r\n resourceStatusTypes: state.user.resourceStatusTypes,\r\n workspace: state.user.workspaces,\r\n filterParameters: props.filterParameters ?? [],\r\n moduleManager: state.modules.moduleManager,\r\n };\r\n },\r\n)(ReportComponent as any) as any;\r\n","import * as React from 'react';\r\n\r\nimport { IReportDefinition } from '@models/reports';\r\nimport { IContractor, IJob, IResourceStatusType, ISecurity, IWork, IWorkspace, jobStatusTypes } from '@models';\r\nimport { ReportOutputComponent } from '@components/reports/ReportOutputComponent';\r\nimport { useLoading } from '@utils/hooks';\r\nimport { getReport, getReports } from '@store/actions/reports';\r\nimport { getJobs } from '@store/actions/user';\r\nimport { ModuleManager } from '@models';\r\n\r\nexport interface IProps {\r\n contractors: IContractor[];\r\n filterParameters: any;\r\n reportName: string;\r\n report: IReportDefinition;\r\n security: ISecurity;\r\n workId: number;\r\n resourceStatusTypes: IResourceStatusType[];\r\n workspaces: IWorkspace[];\r\n getJobReferences: Function;\r\n moduleManager: ModuleManager;\r\n work: IWork;\r\n}\r\n\r\nexport function ReportComponent(props: IProps) {\r\n const loading = useLoading(true);\r\n const [report, setReport] = React.useState(props.report);\r\n const [jobs, setJobs] = React.useState([]);\r\n\r\n const loadReferences = loading.wrap(async () => {\r\n const j = await props.getJobReferences(props.workId);\r\n setJobs(j.data.work.jobs.map((j: IJob) => {\r\n const job: Partial = { id: j.id, name: `${j.code} - ${j.name}` };\r\n return job;\r\n }));\r\n });\r\n\r\n const initialize = loading.wrap(async () => {\r\n if (jobs.length == 0) {\r\n await loadReferences();\r\n }\r\n const r = await getReport(props.workId, props.reportName);\r\n setReport(r);\r\n });\r\n\r\n React.useEffect(() => {\r\n initialize();\r\n }, [props.reportName]);\r\n\r\n const filterStatusTypes = props.moduleManager.filterDependency('job.statusTypes', {\r\n security: props.security,\r\n work: props.work,\r\n });\r\n\r\n const jobStatuses = jobStatusTypes.filter(filterStatusTypes);\r\n\r\n const years = (): { name: any, id: number }[] => {\r\n const currentYear = new Date().getFullYear();\r\n return [{ name: currentYear, id: currentYear }, { name: (currentYear - 1), id: currentYear - 1 }];\r\n }\r\n\r\n return
\r\n {loading.renderBox()}\r\n {!loading.isLoading() && (report.outputs ?? []).map((o, i) => {\r\n return ;\r\n })}\r\n
;\r\n}\r\n","import * as React from 'react';\n\nimport {\n BreadcrumbItem, useDispatcher, useDataTable, useSearch, useTranslation, usePermissions,\n} from '@components';\nimport { ResourceStatus } from '@components/common/ResourceStatus';\nimport {\n ISecurity, IWork, IMachinery, ResourceType, IJob,\n ModuleManager,\n} from '@models';\n\ntype MachineryHasJob = {\n name: string;\n jobHasMachineryId: number;\n jobName: string;\n jobCode: string;\n resourceStatusType: number;\n resourceStatusName: string;\n workId: number;\n}\n\nexport interface IProps {\n security: ISecurity;\n moduleManager: ModuleManager;\n work: IWork;\n}\n\nenum FormType {\n None = 0,\n List = 1,\n ShowJobs = 2,\n}\n\nconst renderResourceStatus = (w: MachineryHasJob) => {\n return \n}\n\nexport function Machineries(props: IProps) {\n const { t } = useTranslation();\n\n const [formType, setFormType] = React.useState(FormType.None);\n\n const searchMachineries = useSearch({\n search: props.work.id == 19\n ? 'controlAccess/machineries.19'\n : 'controlAccess/machineries',\n lazy: true,\n normalizeKeys: true,\n workId: props.work.id,\n });\n\n const myJobs = useSearch({\n search: 'controlAccess/own.jobs',\n lazy: false,\n normalizeKeys: true,\n workId: props.work.id,\n });\n\n const searchJobs = useSearch({\n search: 'machinery_has_jobs',\n lazy: true,\n normalizeKeys: true,\n workId: props.work.id\n });\n\n const [machinery, setMachinery] = React.useState();\n\n // parametros de busqueda\n const [code, setCode] = React.useState('');\n const [name, setName] = React.useState('');\n const [licensePlate, setPlate] = React.useState('');\n\n const renderLicensePlate = (m: IMachinery) => {\n if (m.prefixLicenseNumber != null) {\n return
\n {m.prefixLicenseNumber + '' + m.licenseNumber + '' + m.suffixLicenseNumber}\n
;\n }\n else {\n return null;\n }\n }\n\n React.useEffect(() => {\n setFormType(machinery != undefined ? FormType.ShowJobs : FormType.List);\n if (machinery != undefined) {\n const filters = {\n machineryId: machinery.id\n };\n searchJobs.doSearch(filters);\n }\n }, [machinery]);\n\n React.useEffect(() => {\n setFormType(FormType.List);\n }, [searchMachineries.value]);\n\n let workersTable = null;\n\n if (props.work.id != 19) {\n workersTable = useDataTable({\n data: searchMachineries.value ?? [],\n columns: ['name', 'code',\n { title: t('License plate'), render: d => renderLicensePlate(d) },\n 'contractorName'\n ],\n actions: [\n { text: t('Select'), className: 'alt slim', headerClassName: 'td-md', onClick: setMachinery }\n ]\n });\n }\n else {\n workersTable = useDataTable({\n data: searchMachineries.value ?? [],\n columns: [\n { title: t('License plate'), render: d => renderLicensePlate(d) },\n 'contractorName'\n ],\n actions: [\n { text: t('Select'), className: 'alt slim', headerClassName: 'td-md', onClick: setMachinery }\n ]\n });\n }\n\n const jobsTable = useDataTable({\n data: searchJobs.value ?? [],\n columns: [\n 'contractorName',\n {\n title: t('Job'),\n render: j => j.jobName\n },\n {\n title: t('JobNumber'),\n render: j => j.jobCode\n },\n {\n title: t('accessControl.machinery.state'),\n className: 'td-md',\n render: renderResourceStatus,\n }\n ]\n });\n\n const permissions = usePermissions(props, {\n debug: false,\n }, {\n all: 'accessControl.all',\n });\n\n const doSearch = async (values: any) => {\n const filters: any = {\n workId: props.work.id,\n code: values.code,\n name: values.name,\n licensePlate: values.licensePlate,\n };\n\n if (props.security.isGestorOrWorker()\n && !permissions.get('all')) {\n const jobIds = myJobs.value.map(j => j.id);\n filters['jobId'] = jobIds;\n }\n\n if (filters.name?.length > 0\n || filters.code?.length > 0\n || filters.licensePlate?.length > 0) {\n await searchMachineries.doSearch(filters);\n }\n else {\n searchMachineries.clear();\n }\n }\n\n const dispatcher = useDispatcher({\n dispatch: doSearch,\n handlers: {\n code: setCode,\n name: setName,\n licensePlate: setPlate,\n }\n });\n\n return
\n \n\n
\n {props.work.id != 19 &&
\n \n dispatcher.append('code', e)}\n placeholder={t('1 digit at least')} />\n \n dispatcher.append('name', e)}\n placeholder={t('1 character at least')} />\n
\n }\n\n \n dispatcher.append('licensePlate', e)}\n placeholder={t('1 digit at least')} />\n
\n\n {searchMachineries.renderLoading()}\n\n {formType === FormType.List &&
\n {workersTable()}\n
}\n\n {formType === FormType.ShowJobs &&
\n
\n
\n \n {machinery?.code} \n
\n
\n \n {`${\" \"} ${machinery?.name}`}\n
\n
\n \n {`${machinery?.prefixLicenseNumber}${machinery?.licenseNumber}${machinery?.suffixLicenseNumber}`}\n
\n
\n\n {searchJobs.renderLoading()}\n\n {jobsTable()}\n
}\n
;\n}","import * as React from 'react';\n\nimport {\n BreadcrumbItem, useDataTable, useSearch, useTranslation, useDispatcher, usePermissions,\n} from '@components';\nimport { ResourceStatus } from '@components/common/ResourceStatus';\nimport {\n IJob, ISecurity, IWork, IWorker, ResourceType,\n ModuleManager,\n} from '@models';\n\ntype WorkerHasJob = {\n name: string;\n jobHasWorkerId: number;\n jobName: string;\n jobCode: string;\n resourceStatusType: number;\n resourceStatusName: string;\n workId: number;\n jobId: number;\n}\n\nexport interface IProps {\n security: ISecurity;\n work: IWork;\n job: IJob;\n getContractorFromAppUser: Function;\n moduleManager: ModuleManager;\n}\n\nenum FormType {\n None = 0,\n ListWorkers = 1,\n ShowJobs = 2,\n}\n\nconst renderResourceStatus = (w: WorkerHasJob) => {\n return \n}\n\nexport function Workers(props: IProps) {\n const { t } = useTranslation();\n\n const [formType, setFormType] = React.useState(FormType.None);\n\n const searchWorkers = useSearch({\n search: 'controlAccess/workers',\n lazy: true,\n normalizeKeys: true,\n workId: props.work.id,\n });\n\n const searchJobs = useSearch({\n search: 'worker_has_jobs',\n lazy: true,\n normalizeKeys: true,\n workId: props.work.id,\n filters: {\n workId: props.work.id,\n }\n });\n\n const myJobs = useSearch({\n search: 'controlAccess/own.jobs',\n lazy: false,\n normalizeKeys: true,\n workId: props.work.id,\n });\n\n const [worker, setWorker] = React.useState();\n\n // parametros de busqueda\n const [code, setCode] = React.useState('');\n const [name, setName] = React.useState('');\n\n React.useEffect(() => {\n setFormType(worker != undefined ? FormType.ShowJobs : FormType.ListWorkers);\n if (worker != undefined) {\n const filters = {\n workerId: worker.id,\n RequireContractor: worker.contractorId\n };\n searchJobs.doSearch(filters);\n }\n }, [worker]);\n\n React.useEffect(() => {\n setFormType(FormType.ListWorkers);\n }, [searchWorkers.value]);\n\n const workersTable = useDataTable({\n data: searchWorkers.value ?? [],\n columns: [\n 'name', 'surname',\n {\n title: t('accessControl.worker.code'),\n render: w => w.code,\n },\n 'contractorName'\n ],\n actions: [\n {text: t('Select'), className: 'alt slim', headerClassName: 'td-md', onClick: setWorker}\n ]\n });\n\n const jobsTable = useDataTable({\n data: searchJobs.value ?? [],\n columns: [\n 'contractorName',\n {\n title: t('Job'),\n render: j => j.jobName,\n },\n {\n title: t('JobNumber'),\n render: j => j.jobCode,\n },\n {\n title: t('accessControl.worker.state'),\n className: 'td-md',\n render: renderResourceStatus,\n }\n ]\n });\n\n const permissions = usePermissions(props, {\n debug: false,\n }, {\n all: 'accessControl.all',\n });\n\n const doSearch = async (data: any) => {\n const filters: any = {\n workId: props.work.id,\n name: data.name,\n code: data.code,\n };\n\n if (props.security.isGestorOrWorker()\n && !permissions.get('all')) {\n const jobIds = myJobs.value.map(j => j.id);\n filters['jobId'] = jobIds;\n }\n\n if (filters.name?.length > 0\n || filters.code?.length > 0) {\n searchWorkers.doSearch(filters);\n }\n else {\n searchWorkers.clear();\n }\n }\n\n const dispatcher = useDispatcher({\n dispatch: doSearch,\n handlers: {\n code: setCode,\n name: setName,\n }\n });\n\n return
\n \n\n
\n \n \n \n \n
\n\n {searchWorkers.renderLoading()}\n\n {formType === FormType.ListWorkers &&
\n {workersTable()}\n
}\n\n {formType === FormType.ShowJobs &&
\n
\n \n {worker?.code}\n\n \n {`${worker?.name} ${worker?.surname}`}\n
\n\n {searchJobs.renderLoading()}\n\n {jobsTable()}\n
}\n
;\n}","import * as React from 'react';\nimport { Route } from 'react-router';\n\nimport { userContainer } from '@containers/index';\nimport { Machineries } from './accessControl/Machineries';\nimport { Workers } from './accessControl/Workers';\n\nexport interface IProps {\n children?: any;\n}\n\nexport function WorkAccessControlRoutes(props: IProps) {\n return <>\n \n\n \n ;\n}","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport { WorkAccessControl } from '@components/work/WorkAccessControl';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n work: state.user.work,\n }),\n {}\n)(WorkAccessControl as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { BreadcrumbItem, useTranslation } from '@components';\nimport { ISecurity, IWork } from '@models';\nimport { WorkAccessControlRoutes } from './WorkAccessControlRoutes';\n\nexport interface IProps {\n security: ISecurity;\n work: IWork;\n}\n\nexport function WorkAccessControl(props: IProps) {\n const { t } = useTranslation();\n\n return <>\n \n \n ;\n}","import * as React from 'react';\n\nimport { ISecurity, IWork, IUserIdentity, ModuleManager, ICommunication } from '@models';\nimport './Work.scss';\nimport NotificationsCenter from '@containers/notifications/NotificationsCenterContainer';\nimport { Card, ContextMenu, useTranslation } from '@components';\nimport { redirectTo } from '@utils';\n\nimport { getReports } from '@store/actions/reports';\nimport { IReportDefinition } from \"@models/reports\";\nimport { storageClear } from '@utils/storage';\n\nexport interface IProps {\n work: IWork;\n selectJobs: Function;\n security: ISecurity;\n user: IUserIdentity;\n moduleManager: ModuleManager;\n rm?: any;\n cm?: any;\n communications: ICommunication[];\n}\n\nexport function Work(props: IProps) {\n const { t } = useTranslation();\n const [reportItems, setReportItems] = React.useState([]);\n\n React.useEffect(() => {\n storageClear(k => k.startsWith('filters'));\n }, []);\n\n const fillReportItems = (items: IReportDefinition[]) => {\n setReportItems(items\n .filter(r => !r.hidden)\n .map(r => {\n return {\n label: t(r.title),\n icon: r.icon,\n command: () => redirectTo(`/work/${props.work.id}/reports/${r.name}`),\n };\n }));\n }\n\n React.useEffect(() => {\n if (props.work.id) {\n getReports(props.work.id).then(fillReportItems);\n }\n }, [props.work.id]);\n\n React.useEffect(() => {\n // no redirigir en caso de que ya estemos en communications\n if (props.communications?.length > 0 && !window.location.pathname.includes('communications/current')) {\n // redirigir a communications current\n redirectTo('/work/' + props.work?.id + '/communications/current');\n }\n }, [props.communications, window.location.pathname]);\n\n\n const cm = React.useRef();\n const rm = React.useRef();\n\n const accessControlMenu = [\n { label: t('Machinery'), command: () => redirectTo(`/work/${props.work.id}/access-control/machineries`) },\n { label: t('Workers'), command: () => redirectTo(`/work/${props.work.id}/access-control/workers`) },\n ];\n\n return
\n \n \n \n
\n {props.security.isContractor() &&
\n {t('screen.contractors')}\n \"gstore\"\n
}\n {props.security.isWorker() &&
\n {t('screen.workers')}\n \"gstore\"\n
}\n {props.security.isGestor() &&
\n {t('screen.gestor')}\n \"gstore\"\n
}\n \n
\n \n
\n}\n\nfunction WorkUtilsImpl(props: IProps) {\n const { t } = useTranslation();\n const cm = React.useRef();\n const rm = React.useRef();\n\n const [reportItems, setReportItems] = React.useState([]);\n\n React.useEffect(() => {\n storageClear(k => k.startsWith('filters'));\n }, []);\n\n const fillReportItems = (items: IReportDefinition[]) => {\n setReportItems(items\n .filter(r => !r.hidden)\n .map(r => {\n return {\n label: t(r.title),\n icon: r.icon,\n command: () => redirectTo(`/work/${props.work.id}/reports/${r.name}`),\n };\n }));\n }\n\n React.useEffect(() => {\n if (props.work.id) {\n getReports(props.work.id).then(fillReportItems);\n }\n }, [props.work.id]);\n\n const accessControlMenu = [\n { label: t('Machinery'), command: () => redirectTo(`/work/${props.work.id}/access-control/machineries`) },\n { label: t('Workers'), command: () => redirectTo(`/work/${props.work.id}/access-control/workers`) },\n ];\n\n return (\n <>\n \n \n {(props.security.isGestorOrWorker() || props.security.isContractor()) ? <>\n\n
\n
\n \"gstore\"\n {t('UTILITIES')}\n
\n
\n
\n
cm.current.show(ev)}>\n \n \"\"\n
\n {t('screen.access.control')}\n
\n
\n
\n
\n
\n {/*
redirectTo(`/work/${props.work.id}/reports`)}> */}\n
rm.current.show(ev)}>\n \n \"\"\n
\n {t('Reports')}\n
\n
\n
\n
\n
\n
redirectTo(`/work/${props.work.id}/documents`)}>\n \n \"\"\n
\n {t('Download area')}\n
\n
\n
\n
\n
\n
\n \n : <>}\n );\n}\n\nfunction WorkUtils(props: IProps) {\n return props\n .moduleManager\n .renderComponent('WorkUtils', { ...props, getReports, storageClear }, WorkUtilsImpl);\n}\n\nfunction WorkMenuImpl(props: IProps) {\n const { t } = useTranslation();\n\n return (\n props.security.isGestorOrWorker() ? <>\n
\n
\n
redirectTo(`/work/${props.work.id}/jobs`)}>\n \n \"\"\n
\n {t('Jobs')}\n
\n
\n
\n
\n
\n
redirectTo(`/work/${props.work.id}/contractors`)}>\n \n \"\"\n
\n {t('Contractors')}\n
\n
\n
\n
\n \n
\n gstore\n
\n
\n
\n
redirectTo(`/work/${props.work.id}/subcontractorrequests`)}>\n \n \"\"\n
\n {t('Subcontractors request')}\n
\n
\n
\n
\n
\n
redirectTo(`/work/${props.work.id}/workers`)}>\n \n \"\"\n
\n {t('Workers')}\n
\n
\n
\n
redirectTo(`/work/${props.work.id}/machineries`)}>\n \n \"\"\n
\n {t('Machineries')}\n
\n
\n
\n
\n
\n \n :\n <>\n
\n
\n
redirectTo(`/work/${props.work.id}/contractor/requirements`)}>\n \n \"\"\n
\n {t('Documents')}\n
\n
\n
\n
redirectTo(`/work/${props.work.id}/jobs`)}>\n \n \"\"\n
\n {t('Jobs')}\n
\n
\n
\n
\n
\n
redirectTo(`/work/${props.work.id}/subcontractors`)}>\n \n \"\"\n
\n {t('Subcontractors')}\n
\n
\n
\n
\n \n
\n gstore\n
\n
\n
\n
redirectTo(`/work/${props.work.id}/contractor/subcontractorrequests`)}>\n \n \"\"\n
\n {t('Subcontractors request')}\n
\n
\n
\n
\n
\n
redirectTo(`/work/${props.work.id}/workers`)}>\n \n \"\"\n
\n {t('Workers')}\n
\n
\n
\n
redirectTo(`/work/${props.work.id}/machineries`)}>\n \n \"\"\n
\n {t('Machineries')}\n
\n
\n
\n
\n
\n \n )\n}\n\nfunction WorkMenu(props: IProps) {\n return props\n .moduleManager\n .renderComponent('WorkMenu', props, WorkMenuImpl);\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as User from '../../store/user';\nimport * as Identity from '../../store/identity';\n\nimport { Work } from '../../components/user/Work';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n work: state.user.work,\n user: state.identity?.user,\n moduleManager: state.modules.moduleManager,\n communications: state.user.communications,\n }),\n User.actionCreators,\n)(Work as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as User from '../../store/user';\n\nimport { WorkLoader } from '../../components/user/WorkLoader';\n\nexport default connect(\n (state: ApplicationState) => ({\n work: state.user.work,\n moduleManager: state.modules.moduleManager,\n }),\n User.actionCreators,\n)(WorkLoader as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { IWork, ModuleManager } from '@models';\n\nexport interface IProps {\n work: IWork;\n selectWork: Function;\n children: any;\n match: any;\n moduleManager: ModuleManager;\n}\n\nexport function WorkLoader({ moduleManager, match, work, selectWork, children }: IProps) {\n React.useEffect(() => {\n const workId = match.params.workid;\n if ((work == undefined || work.id != workId) && workId) {\n selectWork(Number(workId), false);\n }\n }, [match.params, work]);\n\n React.useEffect(() => {\n if (work?.id == match.params.workid) {\n const workModules = work\n .activeModules?.filter(m => m.hasFrontend ?? false) ?? [];\n const loadedModules = workModules\n .map(m => moduleManager.getModule(m.name))\n .filter(m => m != undefined);\n\n setModulesLoaded(loadedModules.length == workModules.length);\n }\n }, [ moduleManager.getId(), work]);\n\n const [modulesLoaded, setModulesLoaded] = React.useState(false);\n\n const canRender = work?.id == match.params.workid\n && modulesLoaded;\n\n if (canRender) {\n return children;\n }\n else {\n return null;\n }\n}\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport { WorkReports } from '@components/work/WorkReports';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n work: state.user.work,\n }),\n {}\n)(WorkReports as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { ISecurity, IWork } from '@models';\n\nexport interface IProps {\n security: ISecurity;\n work: IWork;\n}\n\nexport function WorkReports(props: IProps) {\n return
\n
\n}","import * as React from 'react';\n\nimport {\n F, Message, TabPanel, TabView, Tag, useDataTable, useDialogs, useForm,\n useLoading, useMessage, useRemoteData, useSearch, useTranslation, useTreeTable\n} from '@components';\nimport { IContractor, IOption, ISecurity, ISubContractorRequest, IWork, ModuleManager, IUserIdentity } from '@models';\nimport DateUtils from '@utils/date-utils';\n\ntype ProcessF = (workId: number, subContractorRequestId: number, reason?: string) => IOption;\n\nexport interface IProps {\n acceptSubContractorRequest: ProcessF;\n getSubContractorRequestsAsWorker: Function;\n rejectSubContractorRequest: ProcessF;\n getContractor: Function;\n getJob: Function;\n work: IWork;\n security: ISecurity;\n moduleManager: ModuleManager;\n user: IUserIdentity\n}\n\nfunction RequestState({ request }: { request: ISubContractorRequest }) {\n const { t } = useTranslation();\n\n if (request.rejected) {\n return ;\n }\n else if (!request.acceptedByContractor && !request.acceptedByWork) {\n return ;\n }\n else if (request.acceptedByContractor) {\n return ;\n }\n else if (request.acceptedByWork) {\n return ;\n }\n else {\n return null;\n }\n}\n\nfunction ProcessSubContractorRequest({\n accept, reject,\n onClose, onSuccess, request,\n workId\n}: {\n accept: ProcessF, reject: ProcessF,\n onSuccess: Function,\n onClose: Function, request: ISubContractorRequest,\n workId: number,\n}) {\n const { t } = useTranslation();\n const loading = useLoading();\n const message = useMessage();\n\n const form = useForm({\n initialValues: request,\n });\n\n const doAccept = loading.wrap(async () => {\n const res = await accept(workId, request.id!);\n message.set(res);\n\n if (res.hasValue) {\n onSuccess();\n }\n });\n\n const doReject = loading.wrap(async () => {\n const res = await reject(workId, request.id!, form.get('rejectedReason'));\n message.set(res);\n\n if (res.hasValue) {\n onSuccess();\n }\n });\n\n return
\n
\n \n
\n {request.sourceContractor?.name}\n {t('Has requested {{name}} as subcontractor for the job', { name: request.targetContractor?.name })}\n {request.job?.name}\n {request.job?.code}\n
\n \n \n
\n
\n \n
\n \n \n
\n \n {form.textarea('rejectedReason')}\n \n
\n
\n \n
\n
\n \n \n
\n\n {message.render()}\n\n
\n {loading.render()}\n
\n \n
\n
\n}\n\nconst renderRequestInfo = (r: ISubContractorRequest) => {\n if (r.rejected) {\n return <>\n {DateUtils.format(r.rejectedDateTime)}\n {r.rejectedReason}\n ;\n }\n else if (r.acceptedByContractor) {\n return <>\n {DateUtils.format(r.acceptedByContractorDateTime)}\n ;\n }\n}\n\nexport function WorkSubContractorRequestsImpl(props: IProps) {\n const { t } = useTranslation();\n const dialogs = useDialogs();\n const [data, setData] = React.useState([]);\n\n const prepareToProcessRequest = (r: ISubContractorRequest) => {\n dialogs.show('process', r);\n }\n\n const query = useRemoteData(\n props.getSubContractorRequestsAsWorker,\n {\n parameters: [props.work.id],\n });\n\n const invitationSearch = useSearch({\n workId: props.work.id,\n search: 'jobs/subcontractor.invitations.contractors',\n filters: {\n workId: props.work.id,\n },\n lazy: true,\n });\n\n const userInvitationsSearch = useSearch({\n workId: props.work.id,\n search: 'jobs/subcontractor.invitations.users',\n filters: {\n workId: props.work.id,\n },\n lazy: true,\n });\n\n const initialize = async () => {\n const req = await query.query();\n const invitations = await invitationSearch.doSearch();\n const userInvitations = await userInvitationsSearch.doSearch();\n\n let invitationsAsRequests: ISubContractorRequest[] = [];\n for (const invitation of invitations) {\n const job = await props.getJob(props.work.id, invitation.jobId);\n let request: ISubContractorRequest = {\n jobsDescription: invitation.description,\n jobId: invitation.jobId,\n shipmentNumber: invitation.shipmentNumber,\n sourceContractorId: invitation.sourceId,\n sourceContractor: await props.getContractor(props.work.id, invitation.sourceId),\n targetContractorId: 0,\n targetContractor: invitation.targetName,\n workId: props.work.id,\n dateTime: invitation.dateTime,\n acceptedByContractorDateTime: invitation.acceptedDate,\n rejected: invitation.accepted != null ? !invitation.accepted : false,\n acceptedByContractor: invitation.accepted,\n job: job.data.work.job,\n id: 0,\n jobHasContractorId: invitation.jobHasContractorId,\n };\n invitationsAsRequests.push(request);\n }\n\n let userInvitationsAsRequests: ISubContractorRequest[] = [];\n for (const invitation of userInvitations) {\n if (invitation.jobId != null) {\n const job = await props.getJob(props.work.id, invitation.jobId);\n let request: ISubContractorRequest = {\n jobsDescription: invitation.description,\n jobId: invitation.jobId,\n shipmentNumber: invitation.shipmentNumber,\n sourceContractorId: 0,\n sourceContractor: invitation.source,\n targetContractorId: 0,\n targetContractor: invitation.contractorName,\n dateTime: invitation.dateTime,\n workId: props.work.id,\n rejected: invitation.accepted != null ? !invitation.accepted : false,\n acceptedByContractor: invitation.accepted,\n acceptedByContractorDateTime: invitation.acceptedDate,\n job: job.data.work.job,\n id: 0,\n jobHasContractorId: invitation.jobHasContractorId,\n };\n userInvitationsAsRequests.push(request);\n }\n }\n\n const totalInvitations = req.concat(invitationsAsRequests).concat(userInvitationsAsRequests);\n const result = filter(totalInvitations);\n setData(result);\n }\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const filter = (data: ISubContractorRequest[]) => {\n const ctx = {\n props: props,\n };\n const filterData = props.moduleManager.filterDependency('work.invitations', ctx);\n\n const result = data.filter(filterData);\n return result;\n }\n\n const dataTable = useDataTable({\n columns: [\n { title: t('Date'), sortKey: 'dateTime', className: 'td-datetime', field: 'dateTime', delegate: 'date' },\n { title: t('Job'), sortKey: 'job.code', render: r => <>{r.job?.name} },\n { title: t('Applicant'), sortKey: 'sourceContractor', render: r => r.sourceContractor?.name ?? r.sourceContractor },\n { title: t('Requested contractor'), sortKey: 'targetContractor', render: r => r.targetContractor?.name ?? r.targetContractor },\n { title: t('Description'), sortKey: 'jobsDescription', field: 'jobsDescription' },\n { title: t('State'), className: 'td-lg', sortKey: 'accepted', render: r => },\n { render: renderRequestInfo }\n ],\n actions: [\n { icon: 'play', onClick: prepareToProcessRequest, disabled: r => r.acceptedByContractor || r.acceptedByWork || r.rejected || r.id == 0 || props.security.isWorker() },\n ],\n data: data,\n loading: query.loading && invitationSearch.loading && userInvitationsSearch.loading,\n });\n\n const refresh = () => {\n dialogs.clear();\n query.query();\n }\n\n return
\n {dataTable()}\n\n {dialogs.render(\n 'process',\n {},\n (data: ISubContractorRequest) =>\n dialogs.clear()}\n request={data} />)}\n
;\n}\n\nexport function WorkSubContractorRequests(props: IProps) {\n const res = props\n .moduleManager\n .renderComponent('WorkSubContractorRequests', { ...props }, WorkSubContractorRequestsImpl);\n return res;\n}","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as ContractorsStore from '../../store/contractors';\nimport * as JobsStore from '../../store/jobs';\nimport { WorkSubContractorRequests } from '../../components/work/WorkSubContractorRequests';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...state.constants,\n ...ContractorsStore.plainActions,\n ...JobsStore.plainActions,\n moduleManager: state.modules.moduleManager,\n }),\n {}\n)(WorkSubContractorRequests as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport {\n useDataTable, useLoading, useMessage, useRemoteData, useSearch, useTranslation, Tag, usePermissions\n} from '@components';\nimport { IMachinery, IOption, ISecurity, IWork, ModuleManager } from '@models';\nimport './MachineryJobsDialog.scss'\n\ntype ActivateF = (workId: number, jobId: number, machineryId: number, jobHasContractorId: number | undefined) => Promise>;\ntype GetMachineryF = (workId: number, id: number) => Promise;\n\nexport interface IProps {\n requestClose: Function;\n activateJobHasMachinery: ActivateF;\n saveJobHasMachinery: Function;\n security: ISecurity;\n machinery: IMachinery;\n machineryId: number;\n machineryTitle?: string;\n moduleManager: ModuleManager;\n getMachinery: GetMachineryF;\n work: IWork;\n removeJobHasMachinery: Function;\n}\n\ntype SearchR = {\n endDate?: Date;\n jobId: number;\n jobHasMachineryId?: number;\n isRelated?: boolean;\n currentStatusType?: number;\n parentContractorName?: string;\n jobHasContractorId?: number;\n name?: string;\n code?: string;\n description?: string;\n}\n\nfunction MachineryJobsForm(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const messages = useMessage();\n\n const search = useSearch({\n search: 'contractorJobsHasMachinery.list',\n normalizeKeys: true,\n workId: props.work.id,\n filters: {\n machineryId: props.machineryId,\n contractorId: props.machinery.contractorId\n }\n });\n\n React.useEffect(() => {\n search.doSearch();\n }, []);\n\n const saveMachineryRelation = loading.wrap(async (jobId: number, jobHasContractorId: number) => {\n const data = {\n machineryId: props.machineryId,\n jobId,\n };\n const resp = await props.saveJobHasMachinery(props.work.id, jobId, data, jobHasContractorId);\n messages.set(resp);\n await search.doSearch();\n });\n\n const activateMachineryRelation = loading.wrap(async (jobId: number, d: SearchR) => {\n const resp = await props.activateJobHasMachinery(props.work.id, jobId, props.machineryId, d.jobHasMachineryId);\n messages.set(resp);\n await search.doSearch();\n });\n\n const removeMachineryRelation = loading.wrap(async (jobId: number, jobHasMachineryId: number) => {\n const resp = await props.removeJobHasMachinery(props.work.id, jobId, jobHasMachineryId);\n messages.set(resp);\n await search.doSearch();\n });\n\n const jobName = (d: SearchR) => {\n if (props.work.id != 23) { //TODO: remove magic number\n return d.name;\n } else {\n return <>{d.name}\n }\n }\n\n const perms = usePermissions(props, {}, {\n add: 'jobs.machineries.add',\n remove: 'jobHasMachinery.remove',\n });\n\n const dataTable = useDataTable({\n columns: [\n { title: 'Job', render: (d: any) => jobName(d) },\n {\n title: 'Description',\n render: (d: SearchR) => {d.description},\n field: 'description',\n },\n {\n title: 'Contractor',\n field: 'parentContractorName',\n render: (d: SearchR) => {d.parentContractorName}\n },\n {\n title: 'Associated',\n delegate: 'boolean',\n field: 'isRelated',\n className: 'td-md'\n },\n {\n title: 'End date',\n delegate: 'date',\n field: 'endDate',\n className: 'td-lg',\n },\n ],\n actions: [\n {\n actions: [\n perms.get('add')\n ? {\n title: t('Associate'),\n onClick: d => saveMachineryRelation(d.jobId, d.jobHasContractorId),\n disabled: d => (d.isRelated == true || d.currentStatusType == 3),\n } : undefined,\n perms.get('add')\n ? {\n title: t('Reactivate'),\n disabled: d => d.endDate == undefined,\n onClick: d => activateMachineryRelation(d.jobId, d)\n } : undefined,\n perms.get('remove')\n ? {\n title: t('Finalize'),\n disabled: d => (!d.isRelated || d.endDate != null),\n onClick: d => removeMachineryRelation(d.jobId, d.jobHasMachineryId)\n } : undefined,\n ]\n }\n ],\n data: search.value\n })\n\n return
\n {search.renderLoading()}\n {dataTable()}\n
\n \n
\n
\n}\n\nexport function MachineryJobsDialog(props: IProps) {\n const machinery = useRemoteData(props.getMachinery, {\n parameters: [props.work.id, props.machineryId]\n });\n\n return
\n {machinery.renderLoading()}\n {machinery.value && }\n
\n}","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport * as User from '../../store/user';\nimport * as MachineriesStore from '@store/machineries';\nimport { MachineryJobsDialog } from '@components/machineries/MachineryJobsDialog';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.user,\n ...state.identity,\n ...JobsStore.plainActions,\n ...User.plainActions,\n ...MachineriesStore.plainActions,\n moduleManager: state.modules.moduleManager,\n }),\n JobsStore.actionCreators,\n)(MachineryJobsDialog as any) as any; // CHANGE","import * as React from 'react';\n\nimport {\n BreadcrumbItem,\n G,\n InputSwitch,\n RequireRole,\n SplitButton,\n Tag,\n useConfirm,\n useDataTable,\n useDialogs,\n useForm,\n useLoading,\n useMessage,\n useNumberState,\n useObjectState,\n usePaginator,\n useInputSearch,\n useResolveName,\n useSearch,\n useSearchFilters,\n useSearchPaginate,\n useTranslation,\n useWorkFormSettings,\n ValidationBuilder,\n} from '@components';\nimport { DynamicProperties } from '@components/user/DynamicProperties';\nimport { IMachinery, ISecurity, IUserIdentity, IWork } from '@models';\nimport { IContractor, IMachinerySubType, IMachineryType, IResourceStatusType, ResourceType } from '@models/resources';\nimport { IFieldValidation, IPropertyGroupType, PropertyGroupObjectType } from '@models/works';\n\nimport './ViewMachineries.scss';\nimport { redirectTo } from '@utils';\nimport { ResourceStatus } from '@components/common/ResourceStatus';\nimport MachineryJobsDialog from '@containers/machineries/MachineryJobsDialogContainer';\nimport { goToMachineryRequirements } from '@components/routes';\nimport { ModuleManager } from '@modules';\n\nexport interface IProps {\n getMachineries: Function;\n machinery: IMachinery;\n machineryTypes: IMachineryType[];\n propertyGroupTypes: IPropertyGroupType[];\n resourceStatusTypes: IResourceStatusType[];\n saveMachinery: Function;\n reactivateMachinery: Function;\n removeMachinery: Function;\n security: ISecurity;\n work: IWork;\n appUsers: IUserIdentity[];\n contractors: IContractor[];\n modules: ModuleManager;\n}\n\nexport interface IMachinerySubTypeWithDisabling extends IMachinerySubType {\n disabled?: boolean;\n}\n\nfunction AddMachinery({\n machineryTypes, onChange, propertyGroupTypes, saveMachinery, workId, security, fieldValidations, contractors, work\n}: {\n machineryTypes: IMachineryType[],\n contractors: IContractor[],\n onChange: Function,\n propertyGroupTypes: IPropertyGroupType[],\n saveMachinery: Function,\n workId: number,\n security: ISecurity;\n fieldValidations: IFieldValidation[];\n work: IWork;\n}) {\n const machinerySettings = work.machinerySettings;\n const { t } = useTranslation();\n const messages = useMessage({\n successMessage: t('Machinery added successfully'),\n autoClear: true,\n });\n\n const loading = useLoading();\n const [subTypes, setSubTypes] = React.useState([]);\n\n const settings = useWorkFormSettings({ work: work, scope: 'machinery' });\n\n const selectedMachineryType = useNumberState();\n const selectedSubType = useNumberState();\n const selectedContractor = useNumberState();\n\n const [createJobRelations, setCreateJobRelations] = React.useState(false);\n const [selectedMachineryTypeId, setSelectedMachineryTypeId] = React.useState(0);\n\n const GRUA_AUTOPROPULSADA = 104;\n const CAMION_PLUMA = 105;\n const TURISMO_FURGONETA_Y_CAMIONES = 106;\n const MAQUINARIA_SIN_MATRICULA = 110;\n const MAQUINARIA_CON_MATRICULA = 109;\n const PLATAFORMA_ELEVADORA = 103;\n const EQUIPOS_DE_TRABAJO = 111;\n\n\n const formInit = () => {\n if (workId == 21) {\n return useForm({\n initialValues: {\n id: 0,\n workId: workId,\n name: '',\n code: '',\n machineryTypeId: selectedMachineryType.value,\n machinerySubTypeId: selectedSubType.value,\n contractorId: selectedContractor.value,\n prefixLicenseNumber: '',\n licenseNumber: '',\n suffixLicenseNumber: '',\n },\n validateOnMount: true,\n validate: ValidationBuilder\n .new()\n .notEmpty('machineryTypeId')\n .notEmptyIf(machinerySettings?.subTypeMandatory, 'machinerySubTypeId')\n .withFieldValidations(ResourceType.Machinery, fieldValidations)\n .notEmpty('licenseNumber', t('LicenseNumber/N.Serierequired'))\n .lift()\n });\n } else if (workId == 23) {\n return useForm({\n initialValues: {\n id: 0,\n workId: workId,\n name: '',\n code: '',\n machineryTypeId: selectedMachineryType.value,\n machinerySubTypeId: selectedSubType.value,\n contractorId: selectedContractor.value,\n prefixLicenseNumber: '',\n licenseNumber: '',\n suffixLicenseNumber: '',\n },\n validateOnMount: true,\n validate: (data: IMachinery) => ValidationBuilder\n .create(data)\n .notEmpty('machineryTypeId')\n .notEmptyIf(machinerySettings?.subTypeMandatory && subTypes.length > 0, 'machinerySubTypeId')\n .notEmptyIf([GRUA_AUTOPROPULSADA, CAMION_PLUMA, TURISMO_FURGONETA_Y_CAMIONES, MAQUINARIA_CON_MATRICULA].includes(data.machineryTypeId ?? 0), 'licenseNumber', t('code is required'))\n .notEmptyIf([MAQUINARIA_SIN_MATRICULA, PLATAFORMA_ELEVADORA, EQUIPOS_DE_TRABAJO].includes(data.machineryTypeId ?? 0), 'code', t('code is required'))\n .withFieldValidations(ResourceType.Machinery, fieldValidations)\n .build()\n })\n } else {\n return useForm({\n initialValues: {\n id: 0,\n workId: workId,\n name: '',\n code: '',\n machineryTypeId: selectedMachineryType.value,\n machinerySubTypeId: selectedSubType.value,\n contractorId: selectedContractor.value,\n prefixLicenseNumber: '',\n licenseNumber: '',\n suffixLicenseNumber: '',\n },\n validateOnMount: true,\n validate: ValidationBuilder\n .new()\n .notEmpty('machineryTypeId')\n .notEmptyIf(machinerySettings?.subTypeMandatory && subTypes.length > 0, 'machinerySubTypeId')\n .withFieldValidations(ResourceType.Machinery, fieldValidations)\n .lift()\n });\n }\n }\n\n const form = formInit();\n\n React.useEffect(() => {\n setSelectedMachineryTypeId(form.values.machineryTypeId);\n }, [form.values.machineryTypeId]);\n\n React.useEffect(() => {\n selectedSubType.set(undefined);\n form.setFieldValue('machinerySubTypeId', undefined);\n\n if (form.values.machineryTypeId) {\n const mt = machineryTypes.find(mt => mt.id == form.values.machineryTypeId);\n setSubTypes(mt?.subTypes ?? []);\n }\n else {\n setSubTypes([]);\n }\n }, [form.values.machineryTypeId]);\n\n const addRecord = useObjectState({ properties: [] });\n\n const doAdd = loading.wrap(async (..._: any) => {\n const newRecord: IMachinery = {\n ...addRecord.value,\n ...form.values,\n isActive: true,\n };\n\n const resp = await saveMachinery(workId, newRecord, createJobRelations);\n messages.set(resp);\n if (resp.hasValue) {\n onChange();\n }\n });\n\n React.useEffect(() => {\n if (workId == 21 && subTypes.some(st => st.name == \"Autocarro\")) {\n subTypes.find(st => st.name == \"Autocarro\")!.disabled = true;\n }\n }, [subTypes]);\n\n return
\n
\n \n {form.select('machineryTypeId', { options: machineryTypes.sort((a, b) => a.name.localeCompare(b.name)) })}\n \n {subTypes.length > 0 &&\n \n {form.select('machinerySubTypeId', { options: subTypes.sort((a, b) => a.name.localeCompare(b.name)) })}\n \n }\n {settings.show('name') &&\n \n {form.input('name')}\n }\n {(settings.show('code') && workId !== 23 || (workId === 23 && [MAQUINARIA_SIN_MATRICULA, PLATAFORMA_ELEVADORA, EQUIPOS_DE_TRABAJO].includes(selectedMachineryTypeId))) &&\n \n {form.input('code')}\n }\n {(workId !== 23 || (workId === 23 && [GRUA_AUTOPROPULSADA, CAMION_PLUMA, TURISMO_FURGONETA_Y_CAMIONES, MAQUINARIA_CON_MATRICULA].includes(selectedMachineryTypeId))) &&\n \n {work.machinerySettings?.onlyLicenseNumber == false &&\n form.inputs(\n ['prefixLicenseNumber', 'licenseNumber', 'suffixLicenseNumber'],\n {\n 'prefixLicenseNumber': { placeholder: t('Letter'), className: 'flat', containerStyle: { width: '40%' } },\n 'licenseNumber': { placeholder: t('Number'), containerClassName: '', className: 'flat' },\n 'suffixLicenseNumber': { placeholder: t('Letter'), className: 'flat-left', containerStyle: { width: '40%' } },\n }\n )\n }\n {work.machinerySettings?.onlyLicenseNumber == true &&\n form.input('licenseNumber')\n }\n }\n \n \n {form.select('contractorId', { options: contractors, filter: true })}\n \n \n\n
\n\n \n\n
\n\n {messages.render()}\n\n
\n {work.settingsObj?.createJobRelations == true &&\n
\n setCreateJobRelations(e.target.value)} />\n {t('createJobRelations.machineries')}\n
}\n
\n {loading.render()}\n \n {t('Add')}\n \n
\n
\n
\n}\n\nenum FormType {\n List = 0,\n AddMachinery = 1,\n}\n\ntype IMachineryRow = IMachinery & {\n contractorName: string;\n validatedCount?: number;\n totalCount?: number;\n}\n\nexport function ViewMachineriesImpl(props: IProps) {\n const loading = useLoading();\n const { t } = useTranslation();\n const dialogs = useDialogs();\n\n const filterKey = `filters.machineries[workId=${props.work.id}]`;\n\n const filter = useInputSearch({ filterKey });\n const settings = useWorkFormSettings({ work: props.work, scope: 'machinery' });\n\n const [machinerySubtypes, setMachinerySubtypes] = React.useState([]);\n\n const [formType, setFormType] = React.useState(FormType.List);\n\n const userFilters = useSearchFilters({\n security: props.security,\n workId: props.work.id,\n name: 'machineries/list',\n references: {\n contractor: props.contractors,\n machinery_type: props.machineryTypes,\n machinery_sub_type: machinerySubtypes,\n },\n persist: true,\n });\n\n\n React.useEffect(() => {\n if (props.work.id === 23) {\n calculateSubTypes(userFilters.filters.machinery_type)\n }\n }, [userFilters.filters.machinery_type]);\n\n const calculateSubTypes = (machineryTypeId: number) => {\n const subTypes = props.machineryTypes.map(mt => mt.subTypes).reduce((a: any, b) => a.concat(b), []);\n const filteredSubTypes = subTypes.filter((st: any) => st.parentId == machineryTypeId);\n setMachinerySubtypes(filteredSubTypes);\n }\n\n const paginateData = useSearchPaginate({\n search: 'machineries/list',\n workId: props.work.id,\n filters: userFilters.merge({ name: filter.value, workId: props.work.id }),\n dependencies: [filter.value, userFilters.filters],\n lazy: true,\n persist: true,\n limit: props.work.id == 21 ? 100 : 10,\n });\n\n const paginator = usePaginator({\n data: paginateData.value,\n onChange: (page, limit) => paginateData.doSearch(\n userFilters.merge({ name: filter.value, workId: props.work.id }),\n page,\n limit),\n onExport: () => paginateData.exportToXls(\n userFilters.merge({ workId: props.work.id }),\n t('machineries.export.filename')),\n });\n\n const resolveMachineryType = useResolveName(props.machineryTypes, { translate: true });\n\n const resolveMachinerySubType = (m: IMachinery) => {\n const smt = props.machineryTypes.find(mt => mt.id == m.machineryTypeId)?.subTypes?.find(st => st.id == m.machinerySubTypeId)?.name;\n return smt;\n }\n\n const renderMachineryType = (m: IMachinery) => {\n const value = t(resolveMachineryType(m.machineryTypeId));\n return
\n {value}\n
\n }\n\n const renderMachinerySubType = (m: IMachinery) => {\n const value = t(resolveMachinerySubType(m) ?? '');\n return
\n {value}\n
\n }\n\n const contractors = useSearch({\n workId: props.work.id,\n search: 'machineries/contractors',\n filters: {\n workId: props.work.id,\n },\n });\n\n const reload = loading.wrap(async () => {\n await paginateData.doSearch(userFilters.merge({ name: (filter instanceof String || typeof filter === 'string') ? filter.value : undefined, workId: props.work.id }));\n });\n\n const initialize = loading.wrap(async (doReload: boolean = false) => {\n await paginateData.doSearch(userFilters.merge({ workId: props.work.id }));\n setFormType(FormType.List);\n const subTypes = props.machineryTypes.map(mt => mt.subTypes).reduce((a: any, b) => a.concat(b), []);\n setMachinerySubtypes(subTypes);\n if (doReload) {\n await reload();\n }\n });\n\n const selectMachinery = (machinery: IMachinery | undefined) => {\n if (machinery) {\n redirectTo(`/work/${props.work.id}/machineries/${machinery.id}`);\n }\n }\n\n const machineryRequirements = (id: number) => {\n redirectTo(`/work/${props.work.id}/machineries/${id}/requirements`);\n }\n\n const renderLicensePlate = (m: IMachinery) => {\n const value = m.prefixLicenseNumber + '' + m.licenseNumber + '' + m.suffixLicenseNumber;\n if (m.prefixLicenseNumber != null) {\n return
\n {value}\n
;\n }\n else {\n return null;\n }\n }\n\n const renderStatus = (machinery: IMachinery) =>\n ;\n\n const doActivateMachinery = loading.wrap(async (i: IMachinery) => {\n await props.reactivateMachinery(props.work.id, i.id);\n await initialize();\n });\n\n const confirmActivate = useConfirm({\n message: t('resource.activate.machinery.confirm'),\n accept: doActivateMachinery\n });\n\n const doDeactivateMachinery = loading.wrap(async (i: IMachinery) => {\n await props.removeMachinery(i.id, props.work.id, false);\n await initialize();\n });\n\n const doRemoveMachinery = loading.wrap(async (i: IMachinery) => {\n await props.removeMachinery(i.id, props.work.id, true);\n await initialize();\n });\n\n const confirmDeactivate = useConfirm({\n message: t('resource.deactivate.machinery.confirm'),\n accept: doDeactivateMachinery\n })\n\n const confirmRemove = useConfirm({\n message: t('resource.remove.machinery.confirm'),\n accept: doRemoveMachinery\n })\n\n const dataTable = useDataTable({\n columns: [\n { title: t('License plate'), render: renderLicensePlate, className: `${props.work.id != 21 ? 'td-min left' : 'td-md'}`, sortKey: 'licenseNumber', },\n settings.show('name')\n ? { title: t('Name'), render: d => {d.name}, field: 'name', className: 'td-lg left', sortKey: 'name' }\n : undefined,\n settings.show('code')\n ? { title: t('machinery.codes'), render: d => {d.code}, field: 'code', className: `${props.work.id != 21 ? 'td-min center left' : 'td-md center'}`, sortKey: 'code', }\n : undefined,\n { title: t('Machinery type'), render: renderMachineryType, className: `${props.work.id != 21 ? 'td-max center' : 'td-md'}`, sortKey: 'machineryType' },\n { title: t('Machinery subtype'), render: renderMachinerySubType, className: 'td-md', sortKey: 'machinerySubtype' },\n {\n title: t('Contractor'),\n render: d => {d.contractorName},\n className: `${props.work.id != 21 ? 'td-max center left' : 'td-md'}`,\n sortKey: 'contractorName',\n },\n props.work.id != 19\n ? {\n title: 'Documentation', className: `${props.work.id != 21 ? 'w-7 center' : 'td-indicator td-sm center'}`,\n render: d =>\n goToMachineryRequirements(props.work.id, d.id)} className='pointer'>\n \n \n }\n : undefined,\n props.work.id != 19 && props.work.id != 23\n ? { title: t('Status'), field: 'currentStatusType', render: renderStatus, className: 'td-md' }\n : undefined\n ],\n actions: [\n {\n headerClassName: 'td-sm', actions: [\n { title: t('View data'), onClick: selectMachinery },\n { title: t('Requirements'), onClick: d => machineryRequirements(d.id) },\n { title: t('Jobs'), disabled: r => r.contractorId == undefined, onClick: r => dialogs.show('jobs-dialog', r) },\n (props.security.hasPermission('machineries.force.status'))\n ? { title: t('resource.deactivate'), disabled: r => r.isActive == false, onClick: confirmDeactivate }\n : undefined,\n (props.security.hasPermission('machineries.force.status'))\n ? { title: t('resource.activate'), disabled: r => r.isActive == true, onClick: confirmActivate }\n : undefined,\n (props.security.isGestor())\n ? { title: t('resource.remove'), onClick: confirmRemove }\n : undefined,\n ]\n }\n ],\n data: paginateData.data,\n onSort: (key, order) => paginateData.sortBy(key, order),\n });\n\n const getActions = () => {\n const actions = [];\n const security = props.security;\n actions.push({\n label: t('machineries.list'),\n command: () => setFormType(FormType.List),\n });\n\n if (security.hasPermission('machineries.add') || security.isContractor()) {\n actions.push({\n label: t('machineries.add'),\n command: () => setFormType(FormType.AddMachinery),\n });\n }\n\n return actions;\n }\n\n const actions = getActions();\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n React.useEffect(() => {\n initialize(true)\n }, [userFilters.filters]);\n\n return
\n \n\n
\n
\n
\n \n\n {filter.render()}\n\n {userFilters.renderAsButton()}\n {loading.renderBox()}\n \n \n \n
\n {formType === FormType.List && <>\n {dialogs.render('jobs-dialog',\n {\n style: { width: '60vw' },\n title: (r: IMachinery) => t('Jobs') + ': ' + r.name,\n className: 'table-bg'\n },\n (r: IMachinery) =>\n
\n \n
\n )}\n
\n {dataTable()}\n
\n
\n {paginator()}\n }\n {formType === FormType.AddMachinery && <>\n
\n \n
\n }\n
\n
\n
\n}\n\nexport const ViewMachineries = React.memo(ViewMachineriesImpl, (prev, next) => {\n return prev.work.id === next.work.id;\n});","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as MachineriesStore from '../../store/machineries';\nimport { ViewMachineries } from '@components/machineries/ViewMachineries';\nimport { isMachineryPropertyGroupType } from '@models';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...MachineriesStore.plainActions,\n propertyGroupTypes: state.user.propertyGroupTypes.filter(isMachineryPropertyGroupType)\n }),\n MachineriesStore.actionCreators,\n)(ViewMachineries as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any","import * as React from 'react';\n\nimport {\n useDataTable, useTranslation, useRemoteData,\n useMessage, useLoading, useSearch, Loading, Tag, usePermissions\n} from '@components';\nimport {\n IWorker, IWork, ISecurity, ModuleManager\n} from '@models';\nimport './WorkerJobsDialog.scss'\n\ntype GetWorkerF = (workId: number, id: number) => Promise;\n\nexport interface IProps {\n activateJobHasWorker: Function;\n requestClose: Function;\n saveJobHasWorker: Function;\n security: ISecurity;\n worker: IWorker;\n workerId: number;\n getWorker: GetWorkerF;\n work: IWork;\n removeJobHasWorker: Function;\n moduleManager: ModuleManager;\n}\n\ntype SearchR = {\n endDate?: Date;\n jobId: number;\n jobHasWorkerId?: number;\n jobHasContractorId?: number;\n isRelated?: boolean;\n currentStatusType?: number;\n parentContractorName?: string;\n name?: string;\n code?: string;\n description?: string;\n}\n\nfunction WorkerJobsFormImpl(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const messages = useMessage();\n\n const search = useSearch({\n search: 'contractorJobsHasWorker.list',\n normalizeKeys: true,\n workId: props.work.id,\n filters: {\n workerId: props.workerId,\n contractorId: props.worker.contractorId\n }\n });\n\n React.useEffect(() => {\n search.doSearch();\n }, []);\n\n const jobName = (d: SearchR) => {\n if (props.work.id != 23) { //TODO: remove magic number\n return d.name;\n } else {\n return <>{d.name}\n }\n }\n\n const perms = usePermissions(props, {}, {\n add: 'jobHasWorker.add',\n remove: 'jobHasWorker.remove',\n });\n\n const dataTable = useDataTable({\n columns: [\n { title: 'Job', render: (d: any) => jobName(d) },\n {\n title: 'Description',\n field: 'description',\n render: (d: SearchR) => \n {d.description}\n \n },\n {\n title: 'Contractor',\n field: 'parentContractorName',\n render: (d: SearchR) => \n {d.parentContractorName}\n \n },\n {\n title: 'Associated',\n delegate: 'boolean',\n field: 'isRelated',\n className: 'td-md'\n },\n {\n title: 'End date',\n delegate: 'date',\n field: 'endDate',\n className: 'td-lg'\n },\n ],\n actions: [\n {\n actions: [\n perms.get('add')\n ? {\n title: t('Associate'),\n onClick: d => saveWorkerRelation(d.jobId, d.jobHasContractorId),\n disabled: d => (d.isRelated == true || d.currentStatusType == 3),\n }\n : undefined,\n perms.get('add')\n ? {\n title: t('Reactivate'),\n disabled: d => (d.endDate == undefined),\n onClick: d => reactiveWorkerRelation(d.jobId, d.jobHasWorkerId, d.jobHasContractorId, d)\n }\n : undefined,\n perms.get('remove')\n ? {\n title: t('Finalize'),\n disabled: d => (!d.isRelated || d.endDate != null),\n onClick: d => removeWorkerRelation(d.jobId, d.jobHasWorkerId)\n } : undefined,\n ]\n }\n ],\n data: search.value,\n loading: loading,\n });\n\n const saveWorkerRelation = loading.wrap(async (jobId: number, jobHasContractorId: number) => {\n const data = {\n workerId: props.workerId,\n jobId,\n jobHasContractorId: jobHasContractorId,\n };\n const resp = await props.saveJobHasWorker(props.work.id, data);\n messages.set(resp);\n await search.doSearch();\n });\n\n const removeWorkerRelation = loading.wrap(async (jobId: number, jobHasWorkerId: number) => {\n const resp = await props.removeJobHasWorker(props.work.id, jobId, jobHasWorkerId);\n messages.set(resp);\n await search.doSearch();\n });\n\n const reactiveWorkerRelation = loading.wrap(async (jobId: number, jobHasWorkerId: number, jobHasContractorId: number, d: SearchR) => {\n const resp = await props.activateJobHasWorker(props.work.id, jobId, props.workerId, d.jobHasWorkerId);\n messages.set(resp);\n await search.doSearch();\n });\n\n return
\n {search.renderLoading()}\n {dataTable()}\n
\n \n
\n
\n}\n\nexport function WorkerJobsDialog(props: IProps) {\n const worker = useRemoteData(props.getWorker, {\n parameters: [props.work.id, props.workerId]\n });\n\n return
\n {worker.renderLoading()}\n {worker.value && }\n
\n}\n\n\n// export function WorkerJobsForm(props: IProps) {\n//TODO: llevar al modulo de Azsa\n// const res = props\n// .moduleManager\n// .renderComponent('WorkerJobsForm', { ...props }, WorkerJobsFormImpl);\n\n// return res;\n// }","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as JobsStore from '../../store/jobs';\nimport * as User from '../../store/user';\nimport * as WorkersStore from '@store/workers';\nimport { WorkerJobsDialog } from '../../components/workers/WorkerJobsDialog';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.user,\n ...state.identity,\n ...JobsStore.plainActions,\n ...User.plainActions,\n ...WorkersStore.plainActions,\n moduleManager: state.modules.moduleManager,\n }),\n JobsStore.actionCreators,\n)(WorkerJobsDialog as any) as any;\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as User from '../../store/user';\nimport * as WorkersStore from '@store/workers';\nimport { ProfessionalQualificationsDialog } from '../../components/workers/ProfessionalQualificationsDialog';\nimport { isWorkerPropertyGroupType } from '@models';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.user,\n ...state.identity,\n ...User.plainActions,\n ...WorkersStore.plainActions,\n propertyGroupTypes: state.user.propertyGroupTypes.filter(isWorkerPropertyGroupType),\n }),\n WorkersStore.actionCreators,\n)(ProfessionalQualificationsDialog as any) as any;\n","import * as React from 'react';\n\nimport {\n useTranslation,\n useLoading, useForm, usePermissions\n} from '@components';\nimport {\n IWorker, IWork, ISecurity, IPropertyGroupType, PropertyGroupObjectType, ModuleManager,\n} from '@models';\nimport './WorkerJobsDialog.scss'\nimport { DynamicProperties } from '@components/user/DynamicProperties';\nimport { redirectTo } from '@utils';\n\ntype GetWorkerF = (workId: number, id: number) => Promise;\n\nexport interface IProps {\n work: IWork;\n moduleManager: ModuleManager;\n requestClose: Function;\n security: ISecurity;\n workerId: number;\n worker: IWorker;\n getWorker: GetWorkerF;\n propertyGroupTypes: IPropertyGroupType[];\n saveWorker: Function;\n}\n\nexport function ProfessionalQualificationsDialog(props: IProps) {\n const form = useForm();\n const loading = useLoading();\n const worker = React.useRef();\n\n const [propertyGroup, setPropertyGroups] = React.useState(\n props.propertyGroupTypes.find(x => x.name == 'Competencias Profesionales'));\n\n React.useEffect(() => {\n const p = props.propertyGroupTypes.find(x => x.name == 'Competencias Profesionales');\n if (p) {\n p.properties = p.properties?.sort((a, b) => a.title.localeCompare(b.title)) ?? [];\n setPropertyGroups(p);\n }\n }, [props.propertyGroupTypes]);\n\n const doSave = async () => {\n const data = await props.getWorker(props.work.id, props.workerId);\n const newWorker = { ...data, properties: form.values.properties };\n const _ = await props.saveWorker(props.work.id, newWorker);\n\n if (props.work.id != 23) {\n redirectTo(`/work/${props.work.id}/workers/${props.workerId}/requirements`);\n } else {\n props.requestClose();\n }\n\n };\n\n const initialize = loading.wrap(async () => {\n loading.start();\n const data = await props.getWorker(props.work.id, props.workerId);\n worker.current = data;\n form.setFieldValue({ properties: data.properties ?? [] });\n loading.stop();\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const { t } = useTranslation();\n\n const perms = usePermissions(props, {}, {\n edit: 'workers.qualifications.edit',\n });\n\n return
\n {loading.render()}\n {!loading.isLoading() && worker.current != undefined && propertyGroup != null && <>\n form.setFieldValue('properties', v)}\n objectType={PropertyGroupObjectType.Worker}\n propertyGroupTypes={[propertyGroup]}\n readonly={!perms.get('edit')}\n />\n
\n \n {perms.get('edit') && \n {t('Save')}\n }\n
\n }\n
\n}\n","import * as React from 'react';\r\n\r\nimport {\r\n BreadcrumbItem,\r\n G,\r\n RequireRole,\r\n SignalManager,\r\n SplitButton,\r\n InputSwitch,\r\n Tag,\r\n useConfirm,\r\n useDataTable,\r\n useDialogs,\r\n useForm,\r\n useInputSearch,\r\n useLoading,\r\n useMessage,\r\n useNumberState,\r\n useObjectState,\r\n usePaginator,\r\n useResolveName,\r\n useSearch,\r\n useSearchPaginate,\r\n useSearchFilters,\r\n useTranslation,\r\n ValidationBuilder,\r\n Avatar,\r\n usePermissions,\r\n} from '@components'\r\nimport {\r\n IFieldValidation,\r\n IPropertyGroupType,\r\n IResourceStatusType,\r\n ISecurity,\r\n IUserIdentity,\r\n IWork,\r\n IWorker,\r\n ModuleManager,\r\n PropertyGroupObjectType,\r\n ResourceType\r\n} from '@models';\r\nimport { DynamicProperties } from '@components/user/DynamicProperties';\r\nimport './ViewWorkers.scss';\r\nimport { IContractor, ILegalForm, IWorkerDocumentType, IWorkerType } from '@models/resources';\r\nimport { ResourceStatus } from '@components/common/ResourceStatus';\r\nimport WorkerJobsDialog from '@containers/workers/WorkerJobsDialogContainer';\r\nimport ProfessionalQualificationsDialog from '@containers/workers/ProfessionalQualificationsDialogContainer';\r\n\r\nimport { goToWorker, goToWorkerRequirements } from '@components/routes';\r\nimport useContractorFromAppUser from '@components/custom/useContractorFromAppUser';\r\nimport { useWorkFormSettings } from '@components/custom/useWorkFormSettings';\r\n\r\nconst ADD_PERMISSION = 'workers.add';\r\n\r\nexport interface IProps {\r\n getWorkers: Function;\r\n propertyGroupTypes: IPropertyGroupType[];\r\n resourceStatusTypes: IResourceStatusType[];\r\n saveWorker: Function;\r\n reactivateWorker: Function;\r\n removeWorker: Function;\r\n security: ISecurity;\r\n work: IWork;\r\n worker: IWorker;\r\n appUsers: IUserIdentity[];\r\n workerTypes: IWorkerType[];\r\n workerDocumentTypes: IWorkerDocumentType[];\r\n contractors: IContractorProperties[];\r\n getRequirements: Function;\r\n legalForms: ILegalForm[];\r\n moduleManager: ModuleManager;\r\n}\r\n\r\nexport interface IContractorProperties extends IContractor {\r\n value: string;\r\n propertyGroupTypeId: number;\r\n}\r\n\r\nfunction AddWorker({\r\n onChange, propertyGroupTypes, saveWorker, workId, work, security, workerTypes,\r\n workerDocumentTypes, fieldValidations, contractors, legalForms, moduleManager\r\n}: {\r\n onChange: Function,\r\n propertyGroupTypes: IPropertyGroupType[],\r\n saveWorker: Function,\r\n workId: number,\r\n work: IWork,\r\n security: ISecurity,\r\n workerTypes: IWorkerType[],\r\n workerDocumentTypes: IWorkerDocumentType[],\r\n contractors: IContractorProperties[],\r\n fieldValidations: IFieldValidation[],\r\n legalForms: ILegalForm[],\r\n moduleManager: ModuleManager,\r\n}) {\r\n const settings = useWorkFormSettings({ work: work, scope: 'worker' })\r\n const { t } = useTranslation();\r\n const messages = useMessage({\r\n successMessage: t('Worker added successfully'),\r\n autoClear: true,\r\n });\r\n const selectedWorkerType = useNumberState();\r\n const selectedWorkerDocumentType = useNumberState();\r\n const selectedContractor = useNumberState();\r\n\r\n const [availableWorkerTypes, setAvailableWorkerTypes] = React.useState([]);\r\n\r\n const [selectedFile, setSelectedFile] = React.useState();\r\n const [createJobRelations, setCreateJobRelations] = React.useState(false);\r\n\r\n const [shouldValidateCode, setShouldValidateCode] = React.useState(false);\r\n\r\n const loading = useLoading();\r\n\r\n const workerSettings = work.workerSettings;\r\n\r\n const form = useForm({\r\n initialValues: {\r\n id: 0,\r\n workId: workId,\r\n name: '',\r\n surname: '',\r\n code: '',\r\n workerTypeId: selectedWorkerType.value,\r\n workerDocumentTypeId: selectedWorkerDocumentType.value,\r\n contractorId: selectedContractor.value,\r\n },\r\n validateOnMount: true,\r\n validate: ValidationBuilder\r\n .new()\r\n .notEmpty('name')\r\n .notEmpty('surname', 'Apellido obligatorio')\r\n .notEmpty('code')\r\n .notEmpty('workerDocumentTypeId')\r\n .notEmptyIf(workerSettings?.workerTypeIsMandatory, 'workerTypeId')\r\n .withFieldValidations(ResourceType.Worker, shouldValidateCode ? fieldValidations : undefined)\r\n .lift(),\r\n validateOnChange: true,\r\n });\r\n\r\n React.useEffect(() => {\r\n const res = moduleManager.validateData('WorkerCode', { workerDocumentTypeId: form.values.workerDocumentTypeId });\r\n setShouldValidateCode(res ?? false);\r\n form.setFieldValue('code', '');\r\n }, [form.values.workerDocumentTypeId]);\r\n\r\n const addRecord = useObjectState({ properties: [] });\r\n\r\n const doAdd = loading.wrap(async (..._: any) => {\r\n const newRecord: IWorker = {\r\n ...addRecord.value,\r\n ...form.values,\r\n isActive: true,\r\n properties: addRecord.value.properties,\r\n };\r\n\r\n const resp = await saveWorker(workId, newRecord, { createJobRelations, imageFile: selectedFile });\r\n messages.set(resp);\r\n\r\n if (resp.hasValue) {\r\n onChange(true);\r\n }\r\n });\r\n\r\n const contractorUser = useContractorFromAppUser(workId, security);\r\n\r\n const contractorData = useSearch({\r\n workId: workId,\r\n search: 'workers/contractor.get',\r\n lazy: true\r\n });\r\n\r\n React.useEffect(() => {\r\n if (contractorUser || form.values.contractorId) {\r\n contractorData.doSearch({\r\n contractorId: contractorUser ?? form.values.contractorId\r\n });\r\n }\r\n }, [form.values.contractorId, contractorUser]);\r\n\r\n const onSelectPhoto = (e: React.ChangeEvent) => {\r\n const file = e.target.files![e.target.files?.length! - 1];\r\n setSelectedFile(file);\r\n }\r\n\r\n const contractor = contractorData.value && contractorData.value.length > 0\r\n ? contractorData.value[0]\r\n : undefined;\r\n\r\n const sm = SignalManager.create(work.settingsObj?.signals, 'worker');\r\n\r\n const cannotSave = () => {\r\n if (work.workerSettings?.showWorkerImage == true) {\r\n if ((form.isInvalid() || selectedFile == undefined || selectedFile.type != 'image/jpeg')) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n if (form.isInvalid()) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n //TODO: refactor this\r\n if (workId != 21 && workId != 19) {\r\n if (form.values.contractorId) {\r\n workerTypeCalculator(form.values.contractorId);\r\n }\r\n if (contractor) {\r\n workerTypeCalculator(contractor.id);\r\n }\r\n }\r\n else {\r\n setAvailableWorkerTypes(workerTypes);\r\n }\r\n }, [form.values.contractorId, contractor]);\r\n\r\n\r\n const workerTypeCalculator = (contractorId: number) => {\r\n const contractor = contractors.find(x => x.id == contractorId);\r\n const selectedLegalForm = contractor?.legalFormId;\r\n const selectedWorkerTypes = legalForms.find(x => x.id == selectedLegalForm)?.workerTypes?.map(x => x.workerType).map(x => x.id) ?? [];\r\n\r\n if (selectedWorkerTypes.length > 0) {\r\n setAvailableWorkerTypes(workerTypes.filter(x => selectedWorkerTypes?.includes(x.id)));\r\n }\r\n else {\r\n //TODO\r\n if (workId != 19) {\r\n const value = JSON.parse(contractor?.value ?? \"[]\");\r\n const c: any[] = [workerTypes.find(x => x.name == \"TRABAJADOR AUTONOMO SOCIO\")];\r\n if (Object.keys(value).length) {\r\n if (value.Metal == true) {\r\n c.push(workerTypes.find(x => x.name == \"TRABAJADOR REGIMEN GENERAL CONVENIO METAL\"));\r\n }\r\n if (value.Construcción == true) {\r\n c.push(workerTypes.find(x => x.name == \"TRABAJADOR REGIMEN GENERAL CONVENIO CONSTRUCCION\"));\r\n }\r\n if (value[\"Madera y Mueble\"] == true) {\r\n c.push(workerTypes.find(x => x.name == \"TRABAJADOR REGIMEN GENERAL CONVENIO MADERA\"));\r\n }\r\n if (value[\"Vidrio y Rotulación\"] == true) {\r\n c.push(workerTypes.find(x => x.name == \"TRABAJADOR REGIMEN GENERAL CONVENIO VIDRIO, ROTULACION Y CERAMICA\"));\r\n }\r\n if (value.Otros != undefined) {\r\n c.push(workerTypes.find(x => x.name == \"TRABAJADOR REGIMEN GENERAL\"));\r\n }\r\n }\r\n setAvailableWorkerTypes(c);\r\n }\r\n }\r\n }\r\n\r\n sm.current.setValues(form.values, { contractor });\r\n\r\n const filterDocumentTypes = moduleManager\r\n .filterDependency('worker.documentTypes', {\r\n contractor\r\n });\r\n\r\n const documentTypes = workerDocumentTypes\r\n .filter(filterDocumentTypes);\r\n\r\n return
\r\n
\r\n
\r\n
\r\n \r\n {form.input('name')}\r\n \r\n \r\n {form.input('surname')}\r\n \r\n \r\n {form.select('workerDocumentTypeId', { options: documentTypes })}\r\n \r\n \r\n {form.input('code')}\r\n \r\n \r\n \r\n {form.select('contractorId', { options: contractors, filter: true })}\r\n \r\n \r\n {settings.show('workerTypeId') &&\r\n \r\n {form.select('workerTypeId', { options: availableWorkerTypes })}\r\n \r\n }\r\n {work.workerSettings?.showWorkerImage == true &&\r\n \r\n }\r\n {(work.workerSettings?.showWorkerImage == true && selectedFile == null) &&\r\n {t('You must upload a JPEG')}\r\n }\r\n {(work.workerSettings?.showWorkerImage == true && selectedFile != null && selectedFile.type != 'image/jpeg') &&\r\n {t('You must upload a JPEG')}}\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n {messages.render()}\r\n
\r\n {work.settingsObj?.createJobRelations! == true &&\r\n
\r\n setCreateJobRelations(e.target.value)} />\r\n {t('createJobRelations.workers')}\r\n
}\r\n \r\n {loading.render()}\r\n \r\n {t('Add')}\r\n \r\n
\r\n
\r\n}\r\n\r\nenum FormType {\r\n List = 0,\r\n AddWorker = 1,\r\n}\r\n\r\ntype IWorkerResult = IWorker & {\r\n contractorName: string;\r\n validatedCount: number;\r\n totalCount: number;\r\n photoId?: number;\r\n}\r\n\r\nfunction ViewWorkersImpl(props: IProps) {\r\n const loading = useLoading();\r\n const { t } = useTranslation();\r\n const dialogs = useDialogs();\r\n const filterKey = `filters.workers[workId=${props.work.id}]`;\r\n const filter = useInputSearch({ filterKey });\r\n const searchTerm = filter;\r\n const settings = useWorkFormSettings({ work: props.work, scope: 'worker' });\r\n\r\n const [formType, setFormType] = React.useState(FormType.List);\r\n\r\n const reload = loading.wrap(async () => {\r\n await paginateData.doSearch(userFilters.merge({ name: (filter instanceof String || typeof filter === 'string') ? searchTerm.value : undefined, workId: props.work.id }));\r\n });\r\n\r\n const initialize = loading.wrap(async (doReload: boolean = false) => {\r\n setFormType(FormType.List);\r\n\r\n if (doReload) {\r\n await reload();\r\n }\r\n });\r\n\r\n const selectWorker = (worker: IWorker | undefined) => {\r\n if (worker) {\r\n goToWorker(props.work.id, worker.id);\r\n }\r\n }\r\n const viewWorkerRequirements = (id: number) => {\r\n goToWorkerRequirements(props.work.id, id);\r\n }\r\n\r\n const renderStatus = (worker: IWorker) =>\r\n ;\r\n\r\n const resolveWorkerType = useResolveName(props.workerTypes, { translate: true });\r\n const resolveWorkerDocumentType = useResolveName(props.workerDocumentTypes, { translate: true });\r\n\r\n const renderWorkerType = (w: IWorker) => {\r\n return
\r\n {resolveWorkerType(w.workerTypeId)}\r\n
;\r\n }\r\n\r\n const renderWorkerDocumentType = (w: IWorker) => {\r\n return
\r\n {t(resolveWorkerDocumentType(w.workerDocumentTypeId))}\r\n
;\r\n }\r\n\r\n const doActivateWorker = loading.wrap(async (i: IWorker) => {\r\n await props.reactivateWorker(props.work.id, i.id);\r\n await reload();\r\n });\r\n\r\n const doDeactivateWorker = loading.wrap(async (i: IWorker) => {\r\n await props.removeWorker(i.id, props.work.id, false);\r\n await reload();\r\n });\r\n\r\n const doRemoveWorker = loading.wrap(async (i: IWorker) => {\r\n await props.removeWorker(i.id, props.work.id, true);\r\n await reload();\r\n });\r\n\r\n const confirmActivate = useConfirm({\r\n message: t('resource.activate.worker.confirm'),\r\n accept: doActivateWorker\r\n });\r\n const confirmDeactivate = useConfirm({\r\n message: t('resource.deactivate.worker.confirm'),\r\n accept: doDeactivateWorker\r\n });\r\n const confirmRemove = useConfirm({\r\n message: t('resource.remove.worker.confirm'),\r\n accept: doRemoveWorker\r\n });\r\n\r\n const userFilters = useSearchFilters({\r\n security: props.security,\r\n workId: props.work.id,\r\n name: 'workers/list',\r\n references: {\r\n contractor: props.contractors,\r\n },\r\n persist: true\r\n });\r\n\r\n const paginateData = useSearchPaginate({\r\n search: 'workers/list',\r\n workId: props.work.id,\r\n filters: userFilters.merge({ name: searchTerm.value, workId: props.work.id }),\r\n dependencies: [searchTerm.value, userFilters.filters],\r\n lazy: true,\r\n persist: true,\r\n //TODO\r\n limit: props.work.id == 21 ? 100 : 10,\r\n });\r\n\r\n const paginator = usePaginator({\r\n data: paginateData.value,\r\n onChange: (page, limit) => paginateData.doSearch(\r\n userFilters.merge({ name: searchTerm.value, workId: props.work.id }),\r\n page,\r\n limit),\r\n onExport: () => paginateData.exportToXls(\r\n { name: searchTerm.value, workId: props.work.id },\r\n t('workers.export.filename')),\r\n });\r\n\r\n const renderPhoto = (w: IWorkerResult) => {\r\n if (w.photoId) {\r\n return \r\n }\r\n else {\r\n return \r\n }\r\n }\r\n\r\n const perms = usePermissions(props, {}, {\r\n deactivate: 'resource.deactivate',\r\n remove: 'workers.complete.remove',\r\n });\r\n\r\n const getWorkerActions = () => {\r\n const openQualificationsDialog = (d: any) => dialogs.show('professional-qualifications', d);\r\n return [\r\n { title: t('View data'), onClick: selectWorker },\r\n { title: t('Requirements'), onClick: (d: IWorkerResult) => viewWorkerRequirements(d.id) },\r\n { title: t('Jobs'), onClick: (r: IWorkerResult) => dialogs.show('jobs-dialog', r) },\r\n (props.security.hasPermission('workers.qualifications')) ? props.moduleManager.injectAction('professional-qualifications', { openQualificationsDialog: openQualificationsDialog }) : undefined,\r\n perms.get('deactivate')\r\n ? { title: t('resource.deactivate'), disabled: (r: IWorkerResult) => r.isActive == false, onClick: confirmDeactivate }\r\n : undefined,\r\n props.security.hasPermission('workers.force.status')\r\n ? { title: t('resource.activate'), disabled: (r: IWorkerResult) => r.isActive == true, onClick: confirmActivate }\r\n : undefined,\r\n perms.get('remove')\r\n ? { title: t('resource.remove'), onClick: confirmRemove }\r\n : undefined,\r\n ];\r\n };\r\n\r\n\r\n const dataTable = useDataTable({\r\n className: `workers-table workers-table${'-' + props.work.id}`,\r\n columns:\r\n [\r\n props.work.workerSettings?.showWorkerImage == true\r\n ? { title: '', render: renderPhoto, className: 'td-avatar' }\r\n : undefined,\r\n {\r\n title: t('Name'),\r\n render: d => {d.name},\r\n field: 'name',\r\n className: 'td-md left',\r\n sortKey: 'name',\r\n },\r\n {\r\n title: t('Surname'),\r\n render: d => {d.surname},\r\n field: 'surname',\r\n className: 'td-md left',\r\n sortKey: 'surname',\r\n },\r\n {\r\n title: t('Contractor'),\r\n render: (d: IWorkerResult) => d.contractorName\r\n ? {d.contractorName}\r\n : null,\r\n className: 'w-25 left',\r\n sortKey: 'contractorName',\r\n },\r\n settings.show('workerTypeId')\r\n ? { title: t('Worker type'), render: renderWorkerType, className: 'td-lg', sortKey: 'workerType' }\r\n : undefined,\r\n props.work.workerSettings?.showGeneralIndicators == true\r\n ? {\r\n title: 'Documentation', className: 'td-indicator td-md center',\r\n render: (d: IWorkerResult) =>\r\n goToWorkerRequirements(props.work.id, d.id)} className='pointer'>\r\n \r\n \r\n }\r\n : undefined,\r\n settings.show('currentStatusType') && props.work.id != 23\r\n ? { field: 'currentStatusType', render: renderStatus, className: 'td-md' }\r\n : undefined,\r\n { title: t('Worker document type'), render: renderWorkerDocumentType, className: 'w-10 center', sortKey: 'workerDocumentType' },\r\n { title: t('worker.code'), render: d => {d.code}, field: 'code', className: 'w-10 center', sortKey: 'code' },\r\n ],\r\n actions: [\r\n {\r\n headerClassName: 'td-sm',\r\n actions: getWorkerActions()\r\n }\r\n ],\r\n data: paginateData.data,\r\n onSort: (key, order) => paginateData.sortBy(key, order),\r\n });\r\n\r\n const getActions = () => {\r\n const actions = [];\r\n const security = props.security;\r\n\r\n actions.push({\r\n label: t('workers.list'),\r\n command: () => setFormType(FormType.List),\r\n });\r\n if (security.hasPermission(ADD_PERMISSION) || security.isContractor() || security.isGestor()) {\r\n actions.push({\r\n label: t(ADD_PERMISSION),\r\n command: () => setFormType(FormType.AddWorker)\r\n });\r\n }\r\n\r\n return actions;\r\n }\r\n\r\n const contractors = useSearch({\r\n workId: props.work.id,\r\n search: 'machineries/contractors',\r\n filters: {\r\n workId: props.work.id,\r\n },\r\n });\r\n\r\n const actions = getActions();\r\n\r\n React.useEffect(() => {\r\n initialize(true);\r\n }, []);\r\n\r\n return
\r\n setFormType(FormType.List)}\r\n text={t('Workers')} />\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n {filter.render()}\r\n\r\n CTRL+F\r\n {userFilters.renderAsButton()}\r\n {loading.renderBox()}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {dialogs.render('professional-qualifications', { title: t('Professional qualifications'), className: 'g pd', style: { maxHeight: 'fit-content', minHeight: 'fit-content', maxWidth: '80vw', minWidth: '80vw' } }, (r: IWorker) =>\r\n
\r\n \r\n
)}\r\n {formType === FormType.List && <>\r\n {dialogs.render('jobs-dialog', {\r\n title: (w: IWorker) => t('Jobs') + ': ' + w.name + ' ' + w.surname,\r\n className: 'g pd',\r\n style: { width: '60vw' }\r\n }, (r: IWorker) =>\r\n
\r\n \r\n
\r\n )}\r\n
\r\n {dataTable()}\r\n
\r\n
\r\n {paginator()}\r\n }\r\n {formType === FormType.AddWorker && <>\r\n
\r\n \r\n
\r\n }\r\n
\r\n
\r\n
\r\n}\r\n\r\nexport const ViewWorkers = React.memo(ViewWorkersImpl, (prev, next) => {\r\n return prev.work.id === next.work.id;\r\n});\r\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as WorkersStore from '../../store/workers';\nimport * as RequirementsStore from '../../store/requirements';\nimport { ViewWorkers } from '../../components/workers/ViewWorkers';\nimport { isWorkerPropertyGroupType } from '@models';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...WorkersStore.plainActions,\n ...RequirementsStore.plainActions,\n propertyGroupTypes: state.user.propertyGroupTypes.filter(isWorkerPropertyGroupType),\n moduleManager: state.modules.moduleManager,\n }),\n WorkersStore.actionCreators,\n)(ViewWorkers as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any","import { Action, Reducer } from 'redux';\nimport {\n} from '../models';\nimport * as DocumentActions from './actions/documents';\n\nexport interface IDocumentsState {\n}\n\n// types\nenum Types {\n}\n\nexport type KnownAction = {type: undefined};\n\nexport const plainActions = {\n pushTemporalResource: DocumentActions.pushTemporalResource,\n getDocumentsAndFolders: DocumentActions.getDocumentsAndFolders,\n getDocuments: DocumentActions.getDocuments,\n saveDocument: DocumentActions.saveDocument,\n getFolders: DocumentActions.getFolders,\n saveFolder: DocumentActions.saveFolder,\n removeDocument: DocumentActions.removeDocument,\n removeFolder: DocumentActions.removeFolder,\n}\n\nexport const actionCreators = {\n};\n\nexport const reducer: Reducer = (state: IDocumentsState | undefined, incomingAction: Action): IDocumentsState => {\n if (state === undefined) {\n return { };\n }\n\n const action = incomingAction as KnownAction;\n\n switch (action.type) {\n default:\n return state;\n }\n};\n","import { get as i18n } from '../i18n';\r\n\r\nexport interface IDocument {\r\n id: number;\r\n name: string;\r\n description?: string;\r\n userId: number;\r\n documentTypeId?: number;\r\n workId: number;\r\n folderId?: number;\r\n versions?: IDocumentVersion[];\r\n\r\n mimeType?: string;\r\n size?: number;\r\n dateTime: Date;\r\n tags?: string;\r\n title?: string;\r\n hasActiveVersion: boolean;\r\n\r\n temporalResource?: string;\r\n\r\n areaDownload?: boolean;\r\n\r\n sortOrder?: number;\r\n code?: string;\r\n edition?: string;\r\n year?: number;\r\n uploadDateTime?: string;\r\n documentKind?: DocumentKind;\r\n}\r\n\r\nexport interface IDocumentVersion {\r\n id: number;\r\n name: string;\r\n documentId: number;\r\n userId: number;\r\n mimeType?: string;\r\n size?: number;\r\n dateTime: Date;\r\n}\r\n\r\nexport interface IFolder {\r\n id?: number;\r\n workId: number;\r\n name: string;\r\n description?: string;\r\n parentFolderId?: number;\r\n userId?: number;\r\n dateTime?: string;\r\n folderKind?: FolderKind;\r\n\r\n sortOrder?: number;\r\n}\r\n\r\nexport interface IDocumentLog {\r\n id: number;\r\n workId: number;\r\n userId: number;\r\n documentId: number;\r\n documentLogTypeId: number;\r\n dateTime?: string;\r\n}\r\n\r\nexport enum DocumentLogType {\r\n VIEW = 1,\r\n CREATE = 2,\r\n UPDATE = 3,\r\n CREATE_FILE = 4,\r\n UPDATE_FILE = 5\r\n}\r\n\r\nexport enum DocumentKind {\r\n INTERNAL = 1,\r\n CONTRACTOR = 2,\r\n ALL = 3,\r\n}\r\n\r\nexport enum FolderKind {\r\n INTERNAL = 1,\r\n CONTRACTOR = 2,\r\n ALL = 3,\r\n}\r\n\r\nexport const documentKindOptions = [\r\n { id: DocumentKind.INTERNAL, name: i18n('document.kind.internal') },\r\n { id: DocumentKind.CONTRACTOR, name: i18n('document.kind.contractor') },\r\n { id: DocumentKind.ALL, name: i18n('document.kind.all') },\r\n];\r\n\r\nexport const folderKindOptions = [\r\n { id: FolderKind.INTERNAL, name: i18n('folder.kind.internal') },\r\n { id: FolderKind.CONTRACTOR, name: i18n('folder.kind.contractor') },\r\n { id: FolderKind.ALL, name: i18n('folder.kind.all') },\r\n];\r\n\r\nexport const documentLogTypes = [\r\n { id: DocumentLogType.VIEW, name: i18n('document.view') },\r\n { id: DocumentLogType.CREATE, name: i18n('document.logs.create') },\r\n { id: DocumentLogType.UPDATE, name: i18n('document.logs.update') },\r\n { id: DocumentLogType.CREATE_FILE, name: i18n('document.logs.create-file') },\r\n { id: DocumentLogType.UPDATE_FILE, name: i18n('document.logs.update-file') },\r\n]\r\n\r\nexport const documentIcons: any = {\r\n 'pdf': 'fas fa-file-pdf',\r\n 'jpeg': 'fas fa-image',\r\n 'png': 'fas fa-image',\r\n 'jpg': 'fas fa-image',\r\n 'rar': 'fas file-archive',\r\n 'zip': 'fas file-archive',\r\n 'tar': 'fas file-archive',\r\n 'xls': 'fas file-excel',\r\n 'xlsx': 'fas file-excel',\r\n '*': 'fas fa-file',\r\n};\r\n","import * as React from 'react';\n\nimport { useResolveName, useSearch, useTranslation, Timeline, classNames } from '@components';\nimport { DocumentLogType, IDocumentLog, documentLogTypes } from '@models/documents';\nimport DateUtils from '@utils/date-utils';\nimport { IWork } from '@models';\n\nexport interface IProps {\n workId: number;\n documentId: number;\n work: IWork;\n}\n\ntype SearchRow = IDocumentLog & { userName: string };\n\nexport function DocumentLogs(props: IProps) {\n const { t } = useTranslation();\n const resolveLogType = useResolveName(documentLogTypes);\n\n const filters = {\n documentId: props.documentId\n };\n const data = useSearch({\n search: 'documents.logs',\n workId: props.workId,\n normalizeKeys: true,\n filters,\n });\n\n const icons: { [key: number]: string | undefined } = {\n [DocumentLogType.UPDATE]: 'pi pi-pencil',\n [DocumentLogType.CREATE]: 'pi pi-info-circle',\n [DocumentLogType.UPDATE_FILE]: 'pi pi-upload',\n [DocumentLogType.VIEW]: 'pi pi-download',\n [DocumentLogType.CREATE_FILE]: 'pi pi-file',\n }\n\n const getIcon = (r: SearchRow) => {\n return icons[r.documentLogTypeId] ?? 'pi pi-question';\n }\n\n const documentLog2Event = (r: SearchRow) => ({\n id: r.id,\n date: r.dateTime,\n className: 'danger',\n icon: getIcon(r),\n status: r.documentLogTypeId,\n eventName: resolveLogType(r.documentLogTypeId),\n appUserId: r.userId,\n kind: 'documentLog',\n userName: r.userName,\n });\n\n const showEvent = (r: SearchRow) =>\n [\n DocumentLogType.CREATE,\n DocumentLogType.UPDATE,\n DocumentLogType.CREATE_FILE,\n DocumentLogType.UPDATE_FILE,\n ]\n .includes(r.documentLogTypeId);\n\n const logEvents = (data.value ?? []).filter(showEvent).map(documentLog2Event);\n\n return
\n {data.renderLoading()}\n <>\n {item.eventName}\n {item.leftIcon && }\n {item.displayDate &&\n {DateUtils.format(item.displayDate)}}\n }\n content={item => <>\n {DateUtils.formatDateTimeFromUtc(item.date)}\n {item.userName}\n }\n marker={(item) => }\n value={logEvents} />\n
\n}","import * as React from 'react';\r\n\r\nimport { useForm, useTranslation, G, ValidationBuilder } from '@components';\r\nimport { IFolder, folderKindOptions } from '@models/documents';\r\n\r\nexport interface IProps {\r\n folder?: IFolder;\r\n loading?: boolean;\r\n\r\n onCancel?: Function;\r\n onSubmit?: Function;\r\n\r\n workId: number;\r\n}\r\n\r\nexport function FolderForm(props: IProps) {\r\n const { t } = useTranslation();\r\n\r\n const form = useForm>({\r\n initialValues: props.folder ?? { workId: props.workId, name: '' },\r\n validateOnMount: true,\r\n validate: f => ValidationBuilder.create(f).notEmpty('name').build(),\r\n });\r\n\r\n return
\r\n
\r\n \r\n {form.input('name', { autoFocus: true })}\r\n \r\n \r\n {form.input('sortOrder', { type: 'number' })}\r\n \r\n \r\n {form.select('folderKind', {\r\n blank: true,\r\n options: folderKindOptions,\r\n })}\r\n \r\n\r\n {form.errorBox()}\r\n
\r\n
\r\n {props.onCancel && props.onCancel?.()}\r\n className={'button'}>{t('Cancel')}}\r\n {props.onSubmit && props.onSubmit?.(form.values)}>{t('Save')}}\r\n
\r\n
;\r\n}\r\n","import * as React from 'react';\r\n\r\nimport { G, Loading, Message, useForm, useTranslation, ValidationBuilder } from '@components';\r\nimport { folderKindOptions } from '@models/documents';\r\n\r\nexport interface IProps {\r\n folderId?: number;\r\n loading?: boolean;\r\n onCancel?: Function;\r\n onSave?: Function;\r\n workId: number;\r\n}\r\n\r\ntype IFileFormData = {\r\n name: string;\r\n title?: string;\r\n description?: string;\r\n folderId?: number;\r\n workId: number;\r\n code?: string;\r\n edition?: string;\r\n year?: number;\r\n}\r\n\r\nexport function UploadFileForm(props: IProps) {\r\n const { t } = useTranslation();\r\n const form = useForm({\r\n initialValues: {\r\n name: '',\r\n title: '',\r\n description: '',\r\n code: '',\r\n edition: '',\r\n year: undefined,\r\n folderId: props.folderId,\r\n workId: props.workId,\r\n },\r\n validate: d => ValidationBuilder\r\n .create(d)\r\n .notEmpty('title')\r\n // .custom('You must select one file', () => selectedFile.current != null)\r\n .build(),\r\n });\r\n\r\n const selectedFile = React.useRef();\r\n\r\n const handleFile = (e: any) => {\r\n e.persist();\r\n const files = e.target.files;\r\n if (files.length > 0) {\r\n selectedFile.current = files[0];\r\n form.setFieldValue('name', files[0].name);\r\n }\r\n }\r\n\r\n const handleSave = (...e: any[]) => {\r\n props.onSave?.(form.values, selectedFile.current);\r\n }\r\n\r\n return
\r\n
\r\n \r\n {form.span('name', { autoFocus: true })}\r\n \r\n \r\n {form.input('title')}\r\n \r\n \r\n {form.input('code')}\r\n \r\n \r\n {form.input('edition')}\r\n \r\n \r\n {form.input('year', { type: 'number' })}\r\n \r\n \r\n {form.input('sortOrder', { type: 'number' })}\r\n \r\n \r\n {form.select('folderKind', {\r\n blank: true,\r\n options: folderKindOptions,\r\n })}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n {props.loading &&
\r\n \r\n
}\r\n\r\n {form.isInvalid() &&
\r\n {'Invalid form'}\r\n
}\r\n\r\n {form.errorBox()}\r\n
\r\n\r\n
\r\n {props.onCancel && }\r\n {props.onSave && {t('Save')}}\r\n
\r\n
\r\n}\r\n","import * as React from 'react';\r\n\r\nimport { G, useForm, useTranslation, ValidationBuilder } from '@components';\r\nimport { IDocument, documentKindOptions } from '@models/documents';\r\n\r\nexport interface IProps {\r\n document: IDocument;\r\n folderId?: number;\r\n loading?: boolean;\r\n onCancel?: Function;\r\n onSave?: Function;\r\n workId: number;\r\n}\r\n\r\ntype IFileFormData = {\r\n name: string;\r\n title?: string;\r\n description?: string;\r\n folderId?: number;\r\n workId: number;\r\n}\r\n\r\n\r\nexport function EditDocumentForm(props: IProps) {\r\n const { t } = useTranslation();\r\n const form = useForm({\r\n initialValues: props.document,\r\n validate: d => ValidationBuilder\r\n .create(d)\r\n .customValidations([\r\n {\r\n name: 'sortOrder',\r\n msg: t('SortOrderMustBeGreaterThanZero'),\r\n validation: (d: any) => d.sortOrder > 0,\r\n }\r\n ])\r\n .build()\r\n ,\r\n });\r\n\r\n const selectedFile = React.useRef();\r\n\r\n const handleFile = (e: any) => {\r\n e.persist();\r\n const files = e.target.files;\r\n if (files.length > 0) {\r\n selectedFile.current = files[0];\r\n form.setFieldValue('name', files[0].name);\r\n }\r\n }\r\n\r\n const handleSave = (...e: any[]) => {\r\n props.onSave?.(form.values, selectedFile.current);\r\n }\r\n\r\n return
\r\n
\r\n \r\n {form.span('name', { autoFocus: true })}\r\n \r\n \r\n {form.input('title')}\r\n \r\n \r\n {form.input('code')}\r\n \r\n \r\n {form.input('edition')}\r\n \r\n \r\n {form.input('year', { type: 'number' })}\r\n \r\n \r\n {form.input('sortOrder', { type: 'number' })}\r\n \r\n \r\n {form.select('documentKind', {\r\n blank: true,\r\n options: documentKindOptions,\r\n })}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n {form.errorBox()}\r\n
\r\n\r\n
\r\n {props.onCancel && }\r\n {props.onSave && {t('Save')}}\r\n
\r\n
\r\n}\r\n","import * as React from 'react';\r\n\r\nimport { Tree } from 'primereact/tree';\r\nimport TreeNode from \"primereact/treenode/treenode\";\r\nimport { Toast } from \"primereact/toast\";\r\n\r\nimport {\r\n useDialogs, useLoading, useMessage, useRemoteData, useTranslation, SplitButton,\r\n IPermissions,\r\n usePermissions,\r\n classNames,\r\n Tag,\r\n useTreeTable,\r\n} from '@components';\r\nimport { ModuleManager, IOption, ISecurity, IWork } from '@models';\r\nimport { documentIcons, DocumentKind, IDocument, IFolder, } from '@models/documents';\r\nimport { downloadFileFromUrl } from '@utils';\r\n\r\nimport { DocumentLogs } from './DocumentLogs';\r\nimport { FolderForm } from './FolderForm';\r\nimport { UploadFileForm } from './UploadFileForm';\r\nimport { EditDocumentForm } from './EditDocumentForm';\r\nimport './ManageDocuments.scss';\r\nimport { useConfirm } from '@utils/hooks';\r\nimport dateUtils from '@utils/date-utils';\r\n\r\ntype SaveDocumentT = (workId: number, doc: IDocument) => Promise>;\r\ntype RemoveDocumentT = (workId: number, docId: number) => Promise>;\r\ntype RemoveFolderT = (workId: number, folderId: number) => Promise>;\r\ntype SaveFolderT = (workId: number, folder: IFolder) => Promise>;\r\n\r\nexport interface IProps {\r\n moduleManager: ModuleManager;\r\n getDocuments: Function;\r\n getFolders: Function;\r\n removeDocument: RemoveDocumentT;\r\n removeFolder: RemoveFolderT;\r\n pushTemporalResource: Function;\r\n saveDocument: SaveDocumentT;\r\n saveFolder: SaveFolderT;\r\n security: ISecurity;\r\n work: IWork;\r\n}\r\n\r\nconst createFolderNode = (f: IFolder) => {\r\n return {\r\n key: `folder_${f.id}`,\r\n icon: 'pi pi-folder',\r\n draggable: true,\r\n droppable: true,\r\n label: f.name,\r\n data: f,\r\n children: [],\r\n sortOrder: f.sortOrder,\r\n }\r\n}\r\n\r\nconst createDocumentNode = (f: IDocument) => {\r\n return {\r\n key: `document_${f.id}`,\r\n icon: iconForDocument(f.name),\r\n draggable: true,\r\n droppable: true,\r\n label: f.title ?? f.name,\r\n data: f,\r\n children: [],\r\n sortOrder: (f.sortOrder ?? 100) * 10000\r\n }\r\n}\r\n\r\nconst iconForDocument = (name: string) => {\r\n const icons = documentIcons;\r\n\r\n const n = name.toLowerCase();\r\n const k = Object.keys(icons)\r\n .find(k => n.includes(k)) ?? '*';\r\n\r\n return icons[k];\r\n}\r\n\r\ntype FolderOrDoc = IFolder | IDocument;\r\n\r\nfunction isDocument(o: any): o is IDocument {\r\n return o.__typename === 'Document';\r\n}\r\n\r\nfunction isFolder(o: any): o is IFolder {\r\n return o.__typename === 'Folder';\r\n}\r\n\r\nconst createDocumentsModel = (folders: IFolder[], documents: IDocument[]) => {\r\n const nodes: TreeNode[] = [];\r\n const hierarchy: any = {};\r\n\r\n const stack: FolderOrDoc[] = [...folders, ...documents];\r\n let it = 0;\r\n\r\n while (stack.length > 0 && it < 100000) {\r\n const f = stack.pop();\r\n\r\n if (isFolder(f)) {\r\n if (f && f.parentFolderId === null) {\r\n const n = createFolderNode(f);\r\n nodes.push(n);\r\n hierarchy[f.id!] = n;\r\n } else if (f && f.parentFolderId && hierarchy[f.parentFolderId!]) {\r\n const n = createFolderNode(f);\r\n hierarchy[f.id!] = n;\r\n hierarchy[f.parentFolderId!].children.push(n);\r\n hierarchy[f.parentFolderId!].children =\r\n hierarchy[f.parentFolderId!]\r\n .children\r\n .sort((a: any, b: any) => a.sortOrder - b.sortOrder);\r\n } else if (f) {\r\n stack.splice(0, 0, f);\r\n }\r\n }\r\n else if (isDocument(f)) {\r\n if (f.folderId && hierarchy[f.folderId!]) {\r\n const n = createDocumentNode(f);\r\n hierarchy[f.folderId!].children.push(n);\r\n hierarchy[f.folderId!].children =\r\n hierarchy[f.folderId!]\r\n .children\r\n .sort((a: any, b: any) => a.sortOrder - b.sortOrder);\r\n } else if (f && f.folderId === null) {\r\n const n = createDocumentNode(f);\r\n nodes.push(n);\r\n } else if (f) {\r\n stack.splice(0, 0, f);\r\n }\r\n }\r\n\r\n it++;\r\n }\r\n\r\n return nodes.sort((a: any, b: any) => a.sortOrder - b.sortOrder);;\r\n}\r\n\r\nconst nodeIsFolder = (key: string) => {\r\n return key?.startsWith('folder_') ?? false;\r\n}\r\n\r\nconst nodeIsDocument = (key: string) => {\r\n return key?.startsWith('document_') ?? false;\r\n}\r\n\r\nconst nodeKeyGetId = (key: string) => {\r\n return parseInt(key.split('_')[1]);\r\n}\r\n\r\ntype CreateMenuOpts = {\r\n actions: any;\r\n security: ISecurity;\r\n permissions: IPermissions;\r\n}\r\n\r\nconst createMenu = (t: Function, key: string, opts: CreateMenuOpts) => {\r\n const actions = opts.actions ?? {};\r\n const security = opts.security;\r\n const perms = opts.permissions;\r\n const isGestor = security.isGestor();\r\n\r\n if (nodeIsFolder(key)) {\r\n const id = nodeKeyGetId(key);\r\n return [\r\n {\r\n label: t('Add folder'),\r\n icon: 'pi pi-plus',\r\n command: () => actions.addFolder(id),\r\n iF: perms.get('addFolder'),\r\n },\r\n {\r\n label: t('Edit folder'),\r\n icon: 'pi pi-pencil',\r\n command: () => actions.editFolder(id),\r\n iF: perms.get('addFolder'),\r\n },\r\n {\r\n label: t('Upload file'),\r\n icon: 'pi pi-upload',\r\n command: () => actions.uploadFile(id),\r\n iF: perms.get('addFile'),\r\n },\r\n {\r\n label: t('Remove folder'),\r\n icon: 'pi pi-trash',\r\n command: () => actions.removeFolder(id),\r\n iF: perms.get('addFolder'),\r\n }\r\n ].filter(f => f.iF == undefined || f.iF == true);\r\n }\r\n else if (nodeIsDocument(key)) {\r\n const id = nodeKeyGetId(key);\r\n const items = [\r\n {\r\n label: t('Download file'),\r\n icon: 'pi pi-download',\r\n command: (_: any) => actions.downloadFile(id),\r\n },\r\n {\r\n label: t('document.show-logs'),\r\n icon: 'pi pi-list',\r\n command: (_: any) => actions.showDocumentLogs(id),\r\n iF: perms.get('addFolder'),\r\n },\r\n {\r\n label: t('Edit document'),\r\n icon: 'pi pi-pencil',\r\n command: (ev: any) => actions.editDocument(id, ev),\r\n iF: perms.get('removeFile'),\r\n },\r\n {\r\n label: t('Remove file'),\r\n icon: 'pi pi-trash',\r\n command: (ev: any) => actions.removeDocument(id, ev),\r\n iF: perms.get('removeFile'),\r\n }\r\n ];\r\n\r\n return items.filter(f => f.iF == undefined || f.iF == true);\r\n }\r\n}\r\n\r\ntype Node = {\r\n type: 'document' | 'folder',\r\n label: string,\r\n data: any,\r\n icon?: string | undefined,\r\n id: string,\r\n parentId: string | undefined,\r\n code: string | undefined,\r\n year: number | undefined,\r\n edition: string | undefined,\r\n date: string | undefined,\r\n sortOrder: number | undefined,\r\n};\r\n\r\nexport function ManageDocuments(props: IProps) {\r\n const loading = useLoading();\r\n const messages = useMessage();\r\n const { t } = useTranslation();\r\n\r\n const cm = React.useRef(null);\r\n const toast = React.useRef(null);\r\n\r\n const [model, setModel] = React.useState([]);\r\n const [expandedKeys, setExpandedKeys] = React.useState({});\r\n const [selectedNode, setSelectedNode] = React.useState();\r\n\r\n const [documents, setDocuments] = React.useState();\r\n const [folders, setFolders] = React.useState();\r\n\r\n const [includeDocumentKinds, setIncludeDocumentKinds] = React.useState([]);\r\n\r\n const perms = usePermissions(props, {}, {\r\n includeDocumentKinds: 'includeDocumentKinds'\r\n });\r\n\r\n const foldersQuery = useRemoteData(\r\n props.getFolders,\r\n { parameters: [props.work.id, includeDocumentKinds] });\r\n\r\n\r\n const documentsQuery = useRemoteData(\r\n props.getDocuments,\r\n { parameters: [props.work.id, includeDocumentKinds] });\r\n\r\n const dialogs = useDialogs();\r\n\r\n React.useEffect(() => {\r\n setModel(createDocumentsModel(folders ?? [], documents ?? []));\r\n }, [folders, documents]);\r\n\r\n React.useEffect(() => {\r\n foldersQuery.query();\r\n documentsQuery.query();\r\n }, [includeDocumentKinds])\r\n\r\n React.useEffect(() => {\r\n setFolders(foldersQuery.value);\r\n }, [foldersQuery.value])\r\n\r\n React.useEffect(() => {\r\n setDocuments(documentsQuery.value);\r\n }, [documentsQuery.value]);\r\n\r\n\r\n React.useEffect(() => {\r\n const include = perms.get('includeDocumentKinds');\r\n\r\n if (include) {\r\n setIncludeDocumentKinds([1, 2, 3]);\r\n }\r\n }, [ perms.get('includeDocumentKinds')])\r\n\r\n const initializeFolders = loading.wrap(async () => {\r\n await foldersQuery.query();\r\n setFolders(foldersQuery.value);\r\n });\r\n const initializeDocuments = loading.wrap(async () => {\r\n await documentsQuery.query();\r\n setDocuments(documentsQuery.value);\r\n });\r\n\r\n // Acciones\r\n const doDownloadFile = (documentId: number) => {\r\n const document = documents?.find(d => d.id === documentId)!;\r\n const name = document.name;\r\n const url = `/api/files/${props.work.id}/document/${documentId}`;\r\n\r\n downloadFileFromUrl(url, name);\r\n }\r\n\r\n const doMoveFolder = async (folderId: number, target: number) => {\r\n const f = folders?.find(s => s.id === folderId)!;\r\n f.parentFolderId = target;\r\n\r\n const result = await props.saveFolder(props.work.id, f);\r\n messages.set(result);\r\n\r\n await initializeFolders();\r\n }\r\n\r\n const doRemoveFolder = loading.wrap(async (folderId: number) => {\r\n const f = foldersQuery.value.find(s => s.id === folderId)!;\r\n const result = await props.removeFolder(props.work.id, f.id!);\r\n messages.set(result);\r\n\r\n await initializeFolders();\r\n });\r\n\r\n const confirmRemove = useConfirm({\r\n message: t('documents.remove.confirm'),\r\n icon: 'pi pi-trash',\r\n accept: (id: number) => doRemoveDocument(id),\r\n });\r\n\r\n const doRemoveDocument = loading.wrap(async (documentId: number) => {\r\n const f = documents?.find(s => s.id === documentId)!;\r\n const result = await props.removeDocument(props.work.id, f.id!);\r\n messages.set(result);\r\n\r\n await initializeDocuments();\r\n });\r\n\r\n const doSaveFolder = loading.wrap(async (f: IFolder) => {\r\n const resp = await props.saveFolder(props.work.id, f);\r\n messages.clear();\r\n if (resp.hasValue) {\r\n dialogs.clear();\r\n await initializeFolders();\r\n }\r\n else {\r\n messages.set(resp);\r\n }\r\n });\r\n\r\n const doSaveDocument = loading.wrap(async (f: IDocument) => {\r\n f.areaDownload = true;\r\n const resp = await props.saveDocument(props.work.id, f);\r\n messages.clear();\r\n if (resp.hasValue) {\r\n dialogs.clear();\r\n await initializeDocuments();\r\n }\r\n else {\r\n messages.set(resp);\r\n }\r\n });\r\n\r\n const doUploadFile = loading.wrap(async (d: any, file: File) => {\r\n const fileId = file\r\n ? await props.pushTemporalResource(file)\r\n : undefined;\r\n const doc = {\r\n ...d,\r\n temporalResource: fileId?.value,\r\n folderId: d.folderId === true ? undefined : d.folderId,\r\n areaDownload: true,\r\n };\r\n\r\n const resp = await props.saveDocument(props.work.id, doc);\r\n messages.set(resp);\r\n\r\n dialogs.clear();\r\n\r\n await initializeDocuments();\r\n });\r\n\r\n const doSaveFile = loading.wrap(async (d: any, file: File) => {\r\n const fileId = file\r\n ? await props.pushTemporalResource(file)\r\n : undefined;\r\n const doc: IDocument = {\r\n ...d,\r\n temporalResource: fileId?.value,\r\n areaDownload: true,\r\n };\r\n\r\n const resp = await props.saveDocument(props.work.id, doc);\r\n messages.set(resp);\r\n\r\n dialogs.clear();\r\n\r\n await initializeDocuments();\r\n });\r\n\r\n const menuActions = {\r\n addFolder: (id: number) => dialogs.show('folder', { workId: props.work.id, name: '', parentFolderId: id }),\r\n downloadFile: (id: number) => doDownloadFile(id),\r\n editFolder: (id: number) => dialogs.show('folder', foldersQuery.value.find(f => f.id === id)),\r\n uploadFile: (folderId: number) => dialogs.show('upload-file', folderId),\r\n showDocumentLogs: (id: number) => dialogs.show('logs', id),\r\n removeFolder: doRemoveFolder,\r\n removeDocument: confirmRemove,\r\n editDocument: (id: number) => dialogs.show('edit-document', documentsQuery.value.find(d => d.id == id)),\r\n };\r\n\r\n const permissions = usePermissions(props, { debug: false }, {\r\n addFile: { name: 'work.add.file', default: props.security.isGestor(), },\r\n addFolder: { name: 'work.add.folder', default: props.security.isGestor(), },\r\n removeFile: { name: 'work.removeDocument', default: props.security.isGestor(), }\r\n });\r\n\r\n const createNodeMenu = (nodeKey: string) => {\r\n return createMenu(t, nodeKey, {\r\n actions: menuActions,\r\n security: props.security,\r\n permissions: permissions,\r\n });\r\n }\r\n\r\n const handleDragAndDrop = async (event: any) => {\r\n const dragNode = event.dragNode;\r\n const dropNode = event.dropNode ?? event.dropIndex;\r\n if (!isNaN(dropNode)) {\r\n const movingObject = dragNode;\r\n movingObject.data.sortOrder = dropNode;\r\n const newModel = [...model];\r\n\r\n const k = model.find(d => d.key == dragNode.key)!;\r\n const index = model.indexOf(k);\r\n\r\n const [dragNodeObj] = newModel.splice(index, 1);\r\n newModel.splice(dropNode, 0, dragNodeObj);\r\n\r\n for (let i = 0; i < newModel.length; i++) {\r\n newModel[i].data.sortOrder = i;\r\n\r\n if (isFolder(newModel[i].data)) {\r\n await props.saveFolder(props.work.id, newModel[i].data);\r\n }\r\n else {\r\n await props.saveDocument(props.work.id, newModel[i].data);\r\n }\r\n }\r\n\r\n setModel([...newModel]);\r\n }\r\n\r\n else if (nodeIsFolder(dropNode.key) && nodeIsFolder(dragNode.key)) {\r\n await doMoveFolder(dragNode.data.id, dropNode.data.id);\r\n }\r\n else if (nodeIsFolder(dropNode.key) && nodeIsDocument(dragNode.key)) {\r\n const documentId = nodeKeyGetId(dragNode.key);\r\n const doc: IDocument = documents?.find(d => d.id === documentId)!;\r\n const folderId = dropNode.data.id;\r\n doc.folderId = folderId;\r\n\r\n await doSaveDocument(doc);\r\n }\r\n }\r\n\r\n const permissionIcons: { [key: number]: string | undefined } = {\r\n [DocumentKind.INTERNAL]: 'internal',\r\n [DocumentKind.CONTRACTOR]: 'contractor',\r\n [DocumentKind.ALL]: 'all',\r\n };\r\n\r\n const renderPermissions = (node: TreeNode | Node) => {\r\n const icon = permissionIcons[node.data.documentKind] ?? 'all';\r\n return ;\r\n }\r\n\r\n const renderDocumentLabel = (data: any, label: string | any) => {\r\n if (data) {\r\n const icon = typeof (label) === 'object' ? label.icon : undefined;\r\n const text = typeof (label) === 'object' ? label.title : label;\r\n const info = typeof (label) === 'object' ? label.info : undefined;\r\n const pre = text ? `${text}: ` : '';\r\n return \r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n const createNodeTemplate = (node: TreeNode) => {\r\n const documentId = nodeKeyGetId(node.key as string);\r\n const actions = createNodeMenu(node.key as string);\r\n\r\n if (nodeIsDocument(node.key as string)) {\r\n return
doDownloadFile(documentId)}>\r\n {permissions.get('addFile') && renderPermissions(node)}\r\n {permissions.get('addFile') && node.data.sortOrder &&\r\n ({node.data.sortOrder})}\r\n {node.data.title ?? node.label}\r\n \r\n {props.work.id != 21 &&\r\n
\r\n {renderDocumentLabel(node.data.code, {\r\n info: t('document.code'),\r\n icon: 'pi pi-bars',\r\n })}\r\n {renderDocumentLabel(node.data.edition, {\r\n info: t('document.edition'),\r\n icon: 'pi pi-bookmark'\r\n })}\r\n {renderDocumentLabel(node.data.year, {\r\n icon: 'pi pi-sort-numeric-up',\r\n info: t('document.year'),\r\n })}\r\n {renderDocumentLabel(\r\n dateUtils.formatFromUtc(node.data.uploadDateTime),\r\n { icon: 'pi pi-calendar', info: t('document.upload-time') })}\r\n
}\r\n \r\n
\r\n }\r\n else {\r\n return
\r\n {permissions.isGestor() && node.data.sortOrder &&\r\n ({node.data.sortOrder})}\r\n\r\n {node.label}\r\n \r\n \r\n
\r\n }\r\n }\r\n\r\n const document2Node = (d: IDocument) => {\r\n return {\r\n label: d.title,\r\n data: d,\r\n id: `document_${d.id}`,\r\n parentId: `folder_${d.folderId}`,\r\n code: d.code,\r\n year: d.year,\r\n edition: d.edition,\r\n date: dateUtils.formatFromUtc(d.uploadDateTime),\r\n icon: iconForDocument(d.name),\r\n sortOrder: 1000 * (d.sortOrder ?? 1000),\r\n\r\n } as Node\r\n }\r\n\r\n const folder2Node = (f: IFolder) => {\r\n return {\r\n label: f.name,\r\n data: f,\r\n id: `folder_${f.id}`,\r\n parentId: `folder_${f.parentFolderId}`,\r\n icon: 'pi pi-folder',\r\n sortOrder: f.sortOrder,\r\n } as Node\r\n }\r\n\r\n const createNodes = (docs: IDocument[], folders: IFolder[]) => {\r\n let res: Node[] = [];\r\n if (docs != undefined) {\r\n res = res.concat(docs\r\n .sort((a: IDocument, b: IDocument) => (b.sortOrder ?? 0) - (a.sortOrder ?? 0))\r\n .map(document2Node));\r\n }\r\n if (folders != undefined) {\r\n res = res\r\n .concat(\r\n folders\r\n .sort((a: IFolder, b: IFolder) => (b.sortOrder ?? 0) - (a.sortOrder ?? 0))\r\n .map(folder2Node));\r\n }\r\n\r\n return res;\r\n }\r\n\r\n const [treeNodes, setTreeNodes] = React.useState([]);\r\n React.useEffect(() => {\r\n const data = createNodes(documentsQuery.value, foldersQuery.value);\r\n setTreeNodes(data);\r\n }, [includeDocumentKinds, foldersQuery.value, documentsQuery.value]);\r\n\r\n const treeTable = useTreeTable({\r\n data: treeNodes,\r\n sortProperty: 'sortOrder',\r\n selectable: true,\r\n columns: [\r\n {\r\n title: '',\r\n className: 'td-expand',\r\n render: (node: Node) => {\r\n return \r\n {node.icon && }\r\n {permissions.get('addFile') && renderPermissions(node)}\r\n {permissions.get('addFile') && node.data.sortOrder &&\r\n ({node.data.sortOrder})}\r\n {node.data.title ?? node.label}\r\n ;\r\n }\r\n },\r\n { title: 'document.code', field: 'code', className: 'td-md' },\r\n { title: 'document.year', field: 'year', className: 'td-md' },\r\n { title: 'document.edition', field: 'edition', className: 'td-md' },\r\n { title: 'document.upload-time', field: 'date', className: 'td-md' },\r\n {\r\n title: '',\r\n className: 'td-actions',\r\n render: (node: Node) => {\r\n const nodeActions = createNodeMenu(node.id as string);\r\n\r\n if ((nodeActions?.length ?? 0) > 0) {\r\n return \r\n\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n },\r\n ]\r\n });\r\n\r\n return
\r\n {dialogs.render('edit-document', { title: t('Edit document'), className: 'g pd' }, (document: IDocument) =>\r\n \r\n )}\r\n {dialogs.render('upload-file', { title: t('Upload file'), className: 'g pd' }, (folderId: number) =>\r\n \r\n )}\r\n {dialogs.render('folder', { title: t('Folder'), className: 'g pd' }, (data: any) =>\r\n )}\r\n {dialogs.render('logs', { title: t('document.logs'), className: 'g pd' }, (id: number) =>\r\n )}\r\n\r\n
\r\n {messages.render()}\r\n {foldersQuery.renderLoading({ className: 'lg md pd center' })}\r\n \r\n {permissions.get('addFile') &&\r\n }\r\n {permissions.get('addFolder') &&\r\n }\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n {t('document.kind.contractor')}\r\n \r\n {t('document.kind.internal')}\r\n \r\n {t('document.kind.all')}\r\n
\r\n \r\n {props.work.id != 21 && false && <>\r\n
{t(\"document.code\")}
\r\n
{t(\"Edition\")}
\r\n
{t(\"Year\")}
\r\n
{t(\"Upload date\")}
\r\n }\r\n
\r\n\r\n {(![21, 23].includes(props.work.id)) && treeTable()}\r\n {props.work.id == 23 && <>
{treeTable()}
}\r\n {props.work.id == 21 &&\r\n setExpandedKeys(e.value)}\r\n contextMenuSelectionKey={selectedNode}\r\n onContextMenuSelectionChange={event => setSelectedNode(event.value)}\r\n // onContextMenu={event => cm.current.show(event.originalEvent)}\r\n value={model} />}\r\n
\r\n
\r\n}\r\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as DocumentsStore from '@store/documents';\nimport { ManageDocuments } from '@components/documents/ManageDocuments';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...DocumentsStore.plainActions,\n\tmoduleManager: state.modules.moduleManager,\n work: state.user.work,\n }),\n {}\n)(ManageDocuments as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as DocumentsStore from '@store/documents';\nimport { WorkDocuments } from '@components/work/WorkDocuments';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...DocumentsStore.plainActions,\n work: state.user.work,\n }),\n {}\n)(WorkDocuments as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { BreadcrumbItem, useTranslation } from '@components';\nimport ManageDocuments from '@containers/documents/ManageDocumentsContainer';\nimport { IWork } from '@models';\n\nexport interface IProps {\n work: IWork;\n}\n\nexport function WorkDocuments(props: IProps) {\n const { t } = useTranslation();\n\n return
\n \n \n
\n}\n","import * as React from 'react';\nimport { connect } from 'react-redux';\n\nimport { ApplicationState } from '../../store';\nimport * as User from '@store/user';\nimport * as AdminActions from '@store/admin';\nimport { ManageWorkerAppUser } from '@components/users/ManageWorkerAppUser';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...User.plainActions,\n work: state.user.work,\n ...AdminActions.plainActions,\n }),\n User.actionCreators,\n)(ManageWorkerAppUser as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { G, ValidationBuilder, useLoading, useForm, useTranslation, Tag, Accordion, AccordionTab, InputText, classNames } from '@components';\nimport { IWork, IWorker } from '@models';\nimport { useMessage } from '@utils/hooks';\nimport './ManageWorkerAppUser.scss';\n\ntype IWorkerWithAppUser = IWorker & {\n userEmail?: string;\n appUser?: number;\n id?: string;\n password?: string;\n passwordConfirmation?: string;\n}\n\nexport interface IProps {\n associateAppUserToWorker: Function;\n onCancel: Function;\n onSuccess: Function;\n work: IWork;\n worker: IWorkerWithAppUser;\n}\n\ntype NewUser = {\n email: string;\n userName: string;\n password: string;\n passwordConfirmation: string;\n}\n\nexport function ManageWorkerAppUser(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n\n const message = useMessage();\n\n const validate = (data: NewUser) => {\n return ValidationBuilder.create(data)\n .notEmpty('email', 'Email is required')\n .email('email',)\n .notEmpty('userName', 'Username is required')\n .notEmpty('password')\n .match('passwordConfirmation', data.password, 'Passwords do not match')\n .build()\n }\n\n const form = useForm({\n initialValues: {\n email: '',\n userName: '',\n password: '',\n passwordConfirmation: '',\n },\n validateOnMount: true,\n validate: validate,\n });\n\n const renderCreateUser = () => {\n return
\n
\n \n {form.input('email')}\n \n \n {form.input('userName')}\n \n \n {form.input('password', { type: 'password' })}\n \n \n {form.input('passwordConfirmation', { type: 'password' })}\n \n
\n
\n {form.errorBox()}\n
\n
;\n }\n\n const doCreateUser = loading.wrap(async () => {\n const user = {\n userName: form.values.userName,\n email: form.values.email,\n password: form.values.password,\n passwordConfirmation: form.values.passwordConfirmation,\n roles: [\"worker\"]\n };\n\n const resp = await props.associateAppUserToWorker(\n props.work.id,\n props.worker.id,\n user,\n true);\n\n\n message.set(resp);\n\n if (resp.hasValue) {\n props.onSuccess(form.values);\n }\n });\n\n return
\n
\n {props.worker.appUser == undefined && renderCreateUser()}\n {props.worker.appUser != null &&
\n {t('rrhh.worker.email')}\n {props.worker?.userEmail}\n
}\n
\n {message.renderIfError()}\n\n
\n {loading.render()}\n \n {props.worker.appUser == undefined &&\n \n }\n
\n
;\n}\n","import * as React from 'react';\n\nimport { G, ValidationBuilder, useForm, useTranslation } from '@components';\nimport { IDepartment, IWork, IWorker, IWorkspace } from '@models';\n\nexport interface IProps {\n worker?: IWorker;\n departments: IDepartment[];\n onCancel: Function;\n onSaveClicked: Function;\n workspaces: IWorkspace[];\n work: IWork;\n disabled?: boolean;\n}\n\nexport function WorkerForm(props: IProps) {\n const { t } = useTranslation();\n const form = useForm({\n initialValues: props.worker ?? {\n workId: props.work.id,\n name: '',\n code: '',\n surname: '',\n phone: '',\n isActive: true,\n },\n validateOnMount: true,\n validate: ValidationBuilder.create()\n .notEmpty('name')\n .notEmpty('surname')\n .notEmpty('code')\n .lift()\n });\n\n return
\n
\n \n {form.input('name')}\n \n \n {form.input('surname')}\n \n \n {form.input('code')}\n \n \n {form.input('phone')}\n \n \n {form.multiselect('departments', props.departments)}\n \n \n {form.multiselect('workspaces', props.workspaces)}\n \n
\n\n
\n \n \n
\n
;\n}\n","import * as React from 'react';\nimport { connect } from 'react-redux';\n\nimport { ApplicationState } from '../../store';\nimport * as User from '@store/user';\nimport { WorkUsers } from '@components/users/WorkUsers';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...User.plainActions,\n work: state.user.work,\n }),\n User.actionCreators,\n)(WorkUsers as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport {\n Portal,\n useDialogs,\n useLoading, useDataTable, useSearch, useTranslation,\n} from '@components';\nimport { IDepartment, IWork, IWorker, IWorkerWithRelations, IWorkspace } from '@models';\nimport ManageWorkerAppUser from '@containers/users/ManageWorkerAppUserContainer';\nimport { WorkerForm } from './WorkerForm';\n\nexport interface IProps {\n departments: IDepartment[];\n saveWorker: Function;\n workspaces: IWorkspace[];\n work: IWork;\n}\n\ntype Row = {\n id: number;\n name: string;\n surname: string;\n remarks?: string;\n code: string;\n phone?: string;\n departmentNames: string;\n workspaceNames: string;\n userEmail?: string;\n appUser?: number;\n}\n\nexport function WorkUsers(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n\n const dialogs = useDialogs();\n\n const data = useSearch({\n workId: props.work.id,\n search: 'gestor/workUsers',\n normalizeKeys: true,\n filters: {\n workId: props.work.id,\n }\n });\n\n const dataTable = useDataTable({\n columns: [\n { title: t('Name'), render: d => d.name },\n { title: t('Surname'), field: 'surname' },\n { title: t('Phone'), field: 'phone' },\n { title: t('Code'), field: 'code' },\n { title: t('Workspaces'), field: 'workspaceNames' },\n { title: t('Departments'), field: 'departmentNames' },\n { title: t('UserName'), field: 'userEmail' }\n ],\n actions: [\n { icon: 'pi pi-pencil', onClick: r => dialogs.show('edit', r) },\n { icon: 'pi pi-lock', onClick: r => dialogs.show('app-user', r) },\n ],\n data: data.value,\n loading: data.loading,\n });\n\n const doSave = loading.wrap(async (worker: IWorkerWithRelations) => {\n const input = {\n id: worker.id,\n name: worker.name,\n code: worker.code,\n surname: worker.surname,\n departments: worker.departments,\n workspaces: worker.workspaces,\n phone: worker.phone,\n workId: worker.workId,\n isActive: worker.isActive,\n };\n const res = await props.saveWorker(input);\n\n data.doSearch();\n dialogs.clear();\n });\n\n const refresh = () => {\n dialogs.clear();\n data.doSearch();\n }\n\n return
\n \n \n \n\n {loading.render()}\n\n {dialogs.render('add', {title: t('rrhh.worker.add')}, () =>\n )}\n\n {dialogs.render('edit', {title: t('rrhh.worker.edit')}, (r: IWorkerWithRelations) =>\n )}\n\n {dialogs.render('app-user', {title: t('rrhh.worker.manageappuser')}, (r: any) =>\n )}\n {dataTable()}\n
\n}\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as DocumentsStore from '@store/documents';\nimport * as RequirementsStore from '@store/requirements';\nimport { ViewRequirementDocument } from '@components/requirements/ViewRequirementDocument';\nimport { getQueryParameter } from '@utils';\n\nexport default connect(\n (state: ApplicationState, ownProps: any) => ({\n ...state.identity,\n ...state.user,\n ...DocumentsStore.plainActions,\n work: state.user.work,\n requirementId: parseInt(ownProps.match.params.requirementid),\n documentId: parseInt(ownProps.match.params.documentid),\n ...RequirementsStore.plainActions,\n versionId: getQueryParameter(\n window.location.search,\n 'versionId',\n { map: parseInt }),\n }),\n {}\n)(ViewRequirementDocument as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { IWork } from '@models';\nimport { IRequirement } from '@models/requirements';\nimport { DocumentViewer } from '@components/viewers/DocumentViewer';\n\nimport './ViewRequirementDocument.scss';\n\ntype GetRequirementF = (\n workId: number,\n targetType: number,\n targetId: number,\n id: number\n) => Promise;\n\nexport interface IProps {\n documentId: number;\n getRequirement: GetRequirementF;\n requirementId: number;\n work: IWork;\n versionId?: number;\n}\n\nexport function ViewRequirementDocument(props: IProps) {\n const [req, setReq] = React.useState();\n const [docUrl, setDocUrl] = React.useState();\n const [mimeType, setMimeType] = React.useState();\n\n const loadRequirement = async () => {\n const req = await props.getRequirement(props.work.id, 0, 0, props.requirementId);\n setReq(req);\n\n if (req) {\n const documentUrl = props.versionId\n ? `/api/files/${req.workId}/document/${req.documents?.[0].document.id}/version/${props.versionId}`\n : `/api/files/${req.workId}/document/${req.documents?.[0].document.id}`;\n setMimeType(req.documents?.[0].document.mimeType);\n setDocUrl(documentUrl);\n }\n };\n\n React.useEffect(() => {\n loadRequirement();\n }, []);\n\n return
\n {docUrl &&\n }\n
\n}","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as ContractorsStore from '@store/contractors';\nimport { EditContractorForm } from '@components/contractors/EditContractorForm';\nimport { isJobHasContractorPropertyGroupType } from '@models';\nimport { ModuleManager } from '@modules';\n\nexport default connect(\n (state: ApplicationState, props: any) => ({\n workId: props.workId ?? parseInt(props.match.params.workid),\n contractorId: props.contractorId ?? parseInt(props.match.params.contractorid),\n work: state.user.work,\n ...state.identity,\n ...state.user,\n ...ContractorsStore.plainActions,\n modules: state.modules.moduleManager,\n resourceStatusTypes: state.user.resourceStatusTypes,\n propertyGroupTypes: state.user.propertyGroupTypes.filter(isJobHasContractorPropertyGroupType),\n constants: state.constants,\n }),\n ContractorsStore.actionCreators,\n)(EditContractorForm as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import './EditContractor.scss';\r\n\r\nimport * as React from 'react';\r\n\r\nimport {\r\n FieldsBox, G, Portal, useForm, useLoading, useToast, useTranslation, useWorkFormSettings,\r\n ValidationBuilder\r\n} from '@components';\r\nimport { CountryRegionSelect } from '@components/common/CountryRegionSelect';\r\nimport useContractorFromAppUser from '@components/custom/useContractorFromAppUser';\r\nimport { DynamicProperties } from '@components/user/DynamicProperties';\r\nimport {\r\n IConstants, ICountry, IFieldValidation, IPropertyGroup, IPropertyGroupType, ISecurity, IWork,\r\n PropertyGroupObjectType, PropertyTypes, ResourceType\r\n} from '@models';\r\nimport {\r\n IActivityType, IContractor, ILegalForm, IMachinery, IMachinerySubType, IResourceStatusType\r\n} from '@models/resources';\r\nimport { delay, redirectTo } from '@utils';\r\n\r\ntype GetContractorF = (workId: number, id: number) => Promise;\r\n\r\nexport interface IProps {\r\n propertyGroupTypes: IPropertyGroupType[];\r\n legalForms: ILegalForm[];\r\n activityTypes: IActivityType[];\r\n constants: IConstants;\r\n getContractor: GetContractorF;\r\n work: IWork;\r\n contractor: IContractor;\r\n contractorId: number;\r\n security: ISecurity;\r\n saveContractor: Function;\r\n resourceStatusTypes: IResourceStatusType[];\r\n showRequirements?: boolean;\r\n}\r\n\r\nconst validateContractorF = (fieldValidations: IFieldValidation[] | undefined) =>\r\n ValidationBuilder\r\n .new()\r\n .notEmpty('name')\r\n .withFieldValidations(ResourceType.Contractor, fieldValidations)\r\n .lift();\r\n\r\nexport function EditContractorForm(props: IProps) {\r\n const { t } = useTranslation();\r\n const loading = useLoading();\r\n const toast = useToast();\r\n\r\n const settings = useWorkFormSettings({ work: props.work, scope: 'contractor' });\r\n\r\n const [selectedLegalForm, setSelectedLegalForm] = React.useState();\r\n\r\n const propertiesInvalid = React.useRef();\r\n\r\n const saveContractor = loading.wrap(async (req: IContractor) => {\r\n const resp = await props.saveContractor(props.work.id, req);\r\n\r\n if (resp.hasValue) {\r\n toast.show(t('Contractor saved successfully'));\r\n if (props.work.id != 21) {\r\n await delay(2000);\r\n redirectTo(`/work/${props.work.id}/contractors`)\r\n }\r\n }\r\n else {\r\n toast.error(t(resp.error))\r\n }\r\n });\r\n\r\n const doSave = (..._: any) => {\r\n if (selectedLegalForm?.hideContractorProperties) {\r\n form.values.properties.map((p: IPropertyGroup) => {\r\n if (props.propertyGroupTypes.find(g => g.id == p.propertyGroupTypeId)?.hidable) {\r\n p.value = \"{}\";\r\n p.valueObj = \"{}\";\r\n }\r\n });\r\n }\r\n saveContractor(form.values);\r\n }\r\n\r\n\r\n const initializeCountries = (workId: number) => {\r\n let countries: ICountry[] = [];\r\n props.constants.countries.forEach(c => countries.push(Object.assign({}, c)));\r\n if (workId == 19) {\r\n for (let c in countries) {\r\n if (countries[c].regions.length > 0) {\r\n countries[c].regions = [];\r\n }\r\n }\r\n }\r\n return countries;\r\n };\r\n\r\n const canSave = props.security.hasPermission('contractors.edit');\r\n\r\n const validateContractor = validateContractorF(props.work.validations);\r\n\r\n const form = useForm({\r\n readonly: !canSave,\r\n initialValues: {\r\n id: props.contractorId,\r\n workId: props.work.id,\r\n name: props.contractor.name,\r\n code: props.contractor.code,\r\n legalFormId: props.contractor.legalFormId,\r\n activityTypeId: props.contractor.activityTypeId,\r\n otherActivityType: props.contractor.otherActivityType,\r\n address: props.contractor.address,\r\n postalCode: props.contractor.postalCode,\r\n countryId: props.contractor.countryId,\r\n regionId: props.contractor.regionId,\r\n countyId: props.contractor.countyId,\r\n isActive: props.contractor.isActive,\r\n properties: props.contractor.properties,\r\n phone: props.contractor.phone,\r\n remarks: props.contractor.remarks,\r\n providerCode: props.contractor.providerCode,\r\n city: props.contractor.city,\r\n contactPerson: props.contractor.contactPerson,\r\n creationDate: props.contractor.creationDate\r\n },\r\n validate: validateContractor,\r\n onSubmit: (data: IContractor) => {\r\n return saveContractor(data);\r\n }\r\n })\r\n\r\n const updateRegion = ({ countryId, regionId, countyId }: any) => {\r\n form.setFieldValue('countryId', countryId);\r\n if (props.work.id == 21) {\r\n form.setFieldValue('regionId', regionId);\r\n form.setFieldValue('countyId', countyId);\r\n }\r\n }\r\n\r\n const calculateFormPropertiesAreValid = () => {\r\n const mandatoryPropertyIds: number[] = [];\r\n const mandatoryPropertyNames: string[] = [];\r\n\r\n //Si existen el formulario, evaluamos las propiedades dinámicas acordes a las existentes\r\n if (form.values.properties != undefined && form.values.properties.length > 0) {\r\n let hiddens: number = 0;\r\n if (props.propertyGroupTypes != undefined && props.propertyGroupTypes.length > 0) {\r\n const boolTextNames: string[] = [];\r\n props.propertyGroupTypes.map(g => {\r\n // ¿Está ocultada esta propiedad por la forma legal y la propiedad hidable del grupo de propiedades?\r\n const isHidden = selectedLegalForm?.hideContractorProperties && g.hidable;\r\n if (!isHidden) {\r\n if (g.mandatory) {\r\n // Si el grupo de propiedades no está oculto y es obligatorio -> cargamos su ID y los nombres de sus propiedades\r\n mandatoryPropertyIds.push(g.id!);\r\n if (g.properties != undefined && g.properties.length > 0) {\r\n g.properties.map(p => {\r\n mandatoryPropertyNames.push(p.name);\r\n // Si alguna de las propiedades es de tipo BoolText, la almacenamos\r\n if (p.typeId == PropertyTypes.BOOLTEXT) {\r\n boolTextNames.push(p.name);\r\n }\r\n })\r\n }\r\n }\r\n }\r\n else {\r\n // Si está ocultada, ya sea por:\r\n // 1- El grupo de propiedades no es ocultable\r\n // 2- La forma legal no oculta las propiedades\r\n // -> La contabilizamos\r\n hiddens += 1;\r\n }\r\n });\r\n if (mandatoryPropertyIds != undefined && mandatoryPropertyIds.length > 0) {\r\n const properties: any[] = [];\r\n\r\n // Evaluamos cuáles son las propiedades del formulario que son obligatorias\r\n form.values.properties.map((p: any) => {\r\n mandatoryPropertyIds.map(m => {\r\n if (p.propertyGroupTypeId == m) {\r\n properties.push(p);\r\n }\r\n })\r\n });\r\n if (properties != undefined && properties.length > 0) {\r\n const values: boolean[] = []\r\n\r\n properties.map(p => {\r\n // Si cualquiera de estas propiedades tiene valor, lo evaluamos\r\n if (p.valueObj != \"{}\") {\r\n mandatoryPropertyNames.map(m => {\r\n // Evaluamos si los BoolTexts hallados tienen valor de texto\r\n if (boolTextNames.includes(m)) {\r\n boolTextNames.map(b => {\r\n if (b == m) {\r\n if (p.valueObj != undefined) {\r\n if (p.valueObj[m + \"_text\"] != undefined) {\r\n const valueText = p.valueObj[m + \"_text\"];\r\n if (valueText == \"\" || valueText == undefined) {\r\n values.push(false);\r\n }\r\n else {\r\n values.push(true);\r\n }\r\n }\r\n }\r\n else {\r\n const value = JSON.parse(p.value)[m + \"_text\"];\r\n if (value == undefined || value == \"\") {\r\n values.push(false);\r\n }\r\n else {\r\n values.push(true);\r\n }\r\n }\r\n }\r\n })\r\n }\r\n // Obtenemos su valor teniendo en cuenta que undefined es false\r\n else {\r\n if (p.valueObj != undefined) {\r\n const value = p.valueObj[m];\r\n if (value != undefined) {\r\n values.push(value);\r\n }\r\n else {\r\n values.push(false);\r\n }\r\n }\r\n else {\r\n const value = JSON.parse(p.value)[m];\r\n if (value != undefined) {\r\n values.push(value);\r\n }\r\n else {\r\n values.push(false);\r\n }\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n values.push(false);\r\n }\r\n });\r\n // Si existe algún true en el array, entonces el grupo de propiedades es válido\r\n if (values.some(v => v)) {\r\n propertiesInvalid.current = false;\r\n }\r\n else {\r\n if (hiddens < props.propertyGroupTypes.length) {\r\n propertiesInvalid.current = true;\r\n }\r\n }\r\n }\r\n }\r\n if (hiddens == props.propertyGroupTypes.filter(g => g.mandatory).length) {\r\n propertiesInvalid.current = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n calculateFormPropertiesAreValid();\r\n }, [form.values.properties, selectedLegalForm])\r\n\r\n React.useEffect(() => {\r\n const legalForm = props.legalForms.find(l => l.id == form.values.legalFormId);\r\n setSelectedLegalForm(legalForm);\r\n }, [form.values.legalFormId])\r\n\r\n return
\r\n\r\n \r\n {loading.render()}\r\n \r\n\r\n {toast.render()}\r\n\r\n {props.contractor &&\r\n
\r\n
\r\n \r\n {form.input('name', { autoFocus: true })}\r\n \r\n {/*// TODO: Revisar si es necesario */}\r\n \r\n {form.input('code')}\r\n \r\n {props.work.contractorSettings?.legalFormMandatory == true\r\n ? \r\n {form.select('legalFormId', props.legalForms)}\r\n \r\n : undefined\r\n }\r\n {settings.show('activityTypeId') &&\r\n \r\n {form.select('activityTypeId', props.activityTypes)}\r\n \r\n }\r\n {props.work.id != 21 &&\r\n \r\n {form.input('otherActivityType')}\r\n }\r\n \r\n {form.input('providerCode')}\r\n \r\n \r\n \r\n {form.input('address')}\r\n \r\n \r\n {form.input('postalCode')}\r\n \r\n {/* //TODO: Revisar si es necesario */}\r\n \r\n \r\n \r\n {/* //TODO: Revisar si es necesario */}\r\n {props.work.id != 21 &&\r\n \r\n {form.input('city')}\r\n }\r\n {/* //TODO: Revisar si es necesario */}\r\n {props.work.id != 21 &&\r\n {form.input('contactPerson')}}\r\n \r\n {form.input('phone')}\r\n \r\n \r\n {form.textarea('remarks')}\r\n \r\n \r\n
\r\n form.setFieldValue('properties', v)}\r\n embedPortal={'#embed-properties'}\r\n objectType={PropertyGroupObjectType.JobHasContractor}\r\n propertyGroupTypes={props.propertyGroupTypes} />\r\n {propertiesInvalid.current && {t('dynamic.properties.error')}}\r\n
\r\n\r\n {form.errorBox()}\r\n\r\n {props.security.isGestor() && < G label={t('DateTime.platform.start')}>\r\n {form.input('creationDate', { type: 'date' })}\r\n }\r\n\r\n
\r\n
\r\n \r\n {canSave &&\r\n \r\n {t('Save')}\r\n }\r\n
\r\n
\r\n
\r\n }\r\n
\r\n}\r\n","import * as React from 'react';\n\nimport { G, Message, useForm, useLoading, useTranslation, validate, validations as V } from '@components';\nimport { IWork, IContractor } from '@models';\n\nexport interface IProps {\n createWorkContractorAppUser: Function;\n contractor: IContractor;\n onCancel: Function;\n onSuccess: Function;\n work: IWork;\n}\n\ntype FormData = {\n contractorId?: number;\n startDate: Date;\n userName: string;\n email: string;\n password1: string;\n password2: string;\n};\n\nexport const validateData = (data: FormData, i18n: Function|undefined = undefined) => {\n const t = i18n ?? function(n: string) { return n; };\n\n let errors: any = {};\n validate(data, 'userName', errors, V.notEmpty, t('Name is required'));\n validate(data, 'email', errors, V.notEmpty, t('Email is required'));\n validate(data, 'password1', errors, V.notEmpty, t('Password is required'));\n validate(data, 'password2', errors, V.notEmpty, t('Passwords do not match'));\n\n return errors;\n}\n\nexport function CreateWorkContractorAppUser(props: IProps) {\n const { t } = useTranslation();\n\n const loading = useLoading();\n\n const [error, setError] = React.useState();\n\n const saveUser = loading.wrap(async (formData: FormData) => {\n setError(undefined);\n const data = {\n userName: formData.userName,\n email: formData.email,\n password: formData.password1,\n };\n const resp = await props.createWorkContractorAppUser(props.work.id, props.contractor.id, data);\n if (resp.hasValue) {\n props.onSuccess(resp.value);\n }\n else {\n setError(resp.error);\n }\n });\n\n const form = useForm({\n initialValues: {\n contractorId: props.contractor.id,\n startDate: new Date(),\n userName: '',\n email: '',\n password1: '',\n password2: '',\n },\n validate: (data: FormData) => validateData(data, t),\n onSubmit: async (data: FormData) => {\n await saveUser(data);\n return { ok: true};\n }\n });\n\n return
\n \n {form.input('userName', { autoFocus: true })}\n \n \n {form.input('email', { type: 'email' })}\n \n \n {form.input('password1', { type: 'password' })}\n \n \n {form.input('password2', { type: 'password' })}\n \n\n
\n {loading.renderBox()}\n {error && }\n {form.errorBox()}\n
\n\n
\n \n
\n \n \n {t('Create')}\n \n
\n
\n
\n}","import * as React from 'react';\n\nimport { useLoading, useTranslation } from '@components';\n\ntype IColumn = string | Function | { title?: string; field: string; body?: Function; };\n\nexport interface IProps {\n source: T;\n footer?: any;\n columns: IColumn[];\n load: Function;\n onSelect: Function;\n\n onRequestCreate?: Function;\n createText?: string;\n}\n\nexport function ManageRelations(props: IProps) {\n const { t } = useTranslation();\n\n const loading = useLoading(true);\n const [listData, setListData] = React.useState([]);\n const [rows, setRows] = React.useState([]);\n const [filter, setFilter] = React.useState('');\n\n const fillList = loading.wrap(() => {\n const res = props.load();\n if (res.then) {\n res.then((d: R[]) => setListData(d));\n }\n else {\n setListData(res);\n }\n });\n\n React.useEffect(() => {\n fillList();\n }, []);\n\n React.useEffect(() => {\n if (filter == '') {\n setRows(listData);\n }\n else {\n setRows(listData.filter(r => JSON.stringify(r).includes(filter)));\n }\n }, [filter, listData]);\n\n const renderHeader = (l: IColumn, i: number) =>\n \n {typeof(l) === 'string' && l}\n {typeof(l) === 'object' && l.title && l.title}\n ;\n\n const renderRow = (l: IColumn, i: number, d: any) =>\n \n {typeof(l) === 'string' && d[l]}\n {typeof(l) === 'object' && l.body == undefined && d[l.field]}\n {typeof(l) === 'object' && l.body != undefined && l.body(d)}\n ;\n\n const requestCreate = (e: any) => {\n e.preventDefault();\n e.stopPropagation();\n\n props.onRequestCreate && props.onRequestCreate(props.source);\n }\n\n return
\n
\n
\n \n setFilter(e.target.value)}\n placeholder={t('Search')}\n value={filter} />\n
\n {props.onRequestCreate &&\n \n {props.createText}\n }\n
\n
\n {loading.render()}\n\n
\n \n \n \n {props.columns.map((l, i) => renderHeader(l, i))}\n \n \n \n {rows.map((d, i) =>\n props.onSelect(d)}>\n {props.columns.map((l, i) => renderRow(l, i, d))}\n )}\n \n
\n
\n
\n
\n {props.footer}\n
\n
\n}","import * as React from 'react';\n\nimport { CreateWorkContractorAppUser } from './CreateWorkContractorAppUser';\nimport { useConfirm, useDataTable, useFormDialog, useLoading, useRemoteData, useTranslation } from '@components';\nimport { ManageRelations } from '@components/common/ManageRelations';\nimport { IContractor, ISecurity, IUserIdentity, IWork } from '@models';\n\ntype GetContractorF = (workId: number, id: number) => Promise;\n\nexport interface IProps {\n contractor: IContractor;\n createWorkContractorAppUser: Function;\n getWorkUsers: Function;\n getContractorAppUsers: Function;\n hasPermission: Function;\n work: IWork;\n removeContractorAppUser: Function;\n contractorId: number;\n getContractor: GetContractorF;\n security: ISecurity;\n}\n\nfunction ContractorAccessDataForm(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const [users, setUsers] = React.useState([]);\n const [data, setData] = React.useState([]);\n\n const doRemoveAppUserRelation = loading.wrap(async (rel: IUserIdentity) => {\n await props.removeContractorAppUser(\n props.work.id,\n rel.id,\n props.contractorId\n );\n await initialize();\n });\n\n const initialize = loading.wrap(async () => {\n const userResp = await props.getWorkUsers(props.work.id);\n setUsers(userResp);\n const resp = await props.getContractorAppUsers(\n props.work.id,\n props.contractor.id);\n setData(resp);\n setUsers(userResp);\n });\n\n const appUsersDialog = useFormDialog({\n addTitle: t('Associate app user')\n });\n\n const createAppUser = useFormDialog({\n addTitle: t('Create app user'),\n });\n\n const confirmRemove = useConfirm({\n message: t('Are you sure to remove the app user associated with this contractor?'),\n accept: doRemoveAppUserRelation,\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const dataTable = useDataTable({\n columns: [\n {title: 'Username', render: (d: IUserIdentity) => d.userName},\n {title: 'Email', render: (d: IUserIdentity) => d.email},\n ],\n actions: [\n (props.security.isGestor())\n ? {icon: 'trash', onClick: confirmRemove, tooltip: t('Remove app user relation')}\n : undefined\n ],\n data\n })\n\n const renderAppUserRelations = () => {\n return users}\n onRequestCreate={(w: IContractor) => {\n appUsersDialog.clear();\n createAppUser.showAdd();\n initialize();\n }}\n onSelect={async (user: IUserIdentity) => {\n appUsersDialog.clear();\n await associateAppUser(user);\n initialize();\n }}\n source={props.contractor}/>\n }\n\n const associateAppUser = async (user: IUserIdentity|number) => {\n const appUserId = typeof(user) === 'number' ? user : user.id;\n const resp = await props.createWorkContractorAppUser(\n props.work.id,\n props.contractorId,\n {\n id: appUserId,\n }\n )\n appUsersDialog.clear();\n await initialize();\n }\n\n const renderCreateAppUser = () => {\n return createAppUser.clear()}\n onSuccess={(_: any) => initialize() && createAppUser.clear()}\n work={props.work} />\n }\n\n return
\n
\n {t('Edit contractor access data')}\n
\n
\n {loading.renderBox()}\n {dataTable()}\n {appUsersDialog.render(renderAppUserRelations)}\n {createAppUser.render(renderCreateAppUser)}\n
\n \n {props.security.hasPermission('contractors.access.create') &&\n
\n \n
\n \n
\n
\n }\n
\n}\n\nexport function WorkContractorAccessData(props: IProps) {\n const data = useRemoteData(props.getContractor, {\n parameters: [props.work.id, props.contractorId]\n });\n return
\n {data.renderLoading()}\n {data.value && }\n
\n}","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as ContractorsStore from '@store/contractors';\nimport { WorkContractorAccessData } from '@components/contractors/WorkContractorAccessData';\nimport { hasPermission } from '@utils/security';\n\nexport default connect(\n (state: ApplicationState, params: any) => ({\n ...ContractorsStore.plainActions,\n contractorId: params.contractorId ?? parseInt(params.match?.params?.contractorid),\n workId: params.workId ?? parseInt(params.match?.params?.workId),\n ...state.identity,\n ...state.user,\n ...ContractorsStore.plainActions,\n hasPermission: (p: string) => hasPermission(p, {\n user: state.identity?.user,\n explicit: true,\n }),\n }),\n ContractorsStore.actionCreators,\n)(WorkContractorAccessData as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any","import * as React from 'react';\nimport { Route } from 'react-router';\n\nimport { IContractor } from '@models';\nimport { DataLoader, useTranslation } from '@components';\nimport EditRequirements from '@containers/requirements/EditRequirementsContainer';\nimport { getIntParams } from '@utils';\n\nimport { getContractor } from '@store/actions/contractors';\nimport { RequirementTargetType } from '@models/requirements';\nimport EditContractorContainer from '@containers/contractors/EditContractorContainer';\nimport EditContractorFormContainer from './EditContractorFormContainer';\nimport WorkContractorAccessDataContainer from '@containers/contractors/WorkContractorAccessDataContainer';\n\nexport interface IProps {\n children?: any;\n clearContractorForm: Function;\n contractor: IContractor;\n}\n\nconst WrappedContractorRequirements = (props: any) => {\n const { t } = useTranslation();\n const { contractorid, workid } = getIntParams(props.match.params);\n\n return getContractor(workid, contractorid)}>\n {(contractor: IContractor) =>
\n
\n {t('Contractor requirements')}\n
\n
\n \n
\n
}\n
\n}\n\nconst WrappedContractorForm = (props: any) => {\n const { contractorid, workid } = getIntParams(props.match.params);\n\n return getContractor(workid, contractorid)}>\n {c => }\n \n}\n\nconst WrappedContractorAccesData = (props: any) => {\n const { contractorid, workid } = getIntParams(props.match.params);\n\n return \n}\n\nexport function ContractorRoutes(props: any) {\n return <>\n \n \n \n \n \n ;\n}","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport { CommmunicationForm } from '@components/communications/CommunicationForm';\nimport * as UserStore from '@store/user';\nimport * as DocumentsStore from '@store/documents';\nimport * as Actions from '@store/actions/resources'\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...state.constants,\n workspaces: state.user.workspaces,\n ...UserStore.plainActions,\n ...DocumentsStore.plainActions,\n ...Actions.getDepartments\n }),\n {},\n)(CommmunicationForm as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport {\n useForm,\n useTranslation,\n ValidationBuilder,\n} from '@components';\nimport { goToCommunications } from '@components/routes';\nimport {\n ICommunicationFile, IDepartment, IJob, IWork, IWorkspace,\n IUserIdentity,\n} from '@models';\nimport { RequirementTargetType } from '@models/requirements';\nimport { useDialogs, useLoading, useMessage } from '@utils/hooks';\nimport DateUtils from '@utils/date-utils';\n\nimport './CommunicationForm.scss';\nimport dateUtils from '@utils/date-utils';\n\nexport interface IProps {\n footer?: any;\n workspaces: IWorkspace[];\n work: IWork;\n getJobs: Function;\n departments: IDepartment[];\n saveCommunication: Function;\n getCommunicationReceivers: Function;\n pushTemporalResource: Function;\n}\n\n\nexport function CommmunicationForm(props: IProps) {\n // referencia al input file\n const inputFile = React.useRef();\n\n const { t } = useTranslation();\n const loading = useLoading();\n const dialogs = useDialogs();\n const messages = useMessage();\n\n // trabajos filtrados por workspace\n const [jobs, setJobs] = React.useState([]);\n // todos los trabajos\n const [allJobs, setAllJobs] = React.useState([]);\n\n // relaciones de la comunicacion (ficheros, trabajos, departamentos y workspaces)\n const [selectedFiles, setSelectedFiles] = React.useState([]);\n const [selectedJobs, setSelectedJobs] = React.useState([]);\n const [selectedDepartments, setSelectedDepartments] = React.useState([]);\n const [selectedWorkspaces, setSelectedWorkspaces] = React.useState([]);\n\n const todayOffset = new Date();\n todayOffset.setDate(todayOffset.getDate() - 1);\n\n const validateForm = (data: any) => {\n return ValidationBuilder.create(data)\n .notEmpty('title', t('Title is required'))\n .notEmpty('description', t('Description is required'))\n .notEmpty('startDate', t('startDate is required'))\n .notEmpty('endDate', t('endDate is required'))\n .notEmpty('users', t('Users is required'))\n .build();\n }\n\n const isValid = (data: any) => {\n return Object.keys(validateForm(data)).length == 0;\n }\n\n const form = useForm>({\n initialValues: {\n },\n validate: validateForm,\n validateOnMount: true,\n });\n\n // activamos el input file para que el usuario seleccione un fichero\n const fireAddFile = () => {\n inputFile.current.click();\n }\n\n // borramos uno de los ficheros seleccionados\n const removeSelectedFile = (f: ICommunicationFile) => {\n setSelectedFiles(fs => fs.filter(r => r != f));\n }\n\n // cuando el usuario selecciona un documento lo almacenamos como recurso temporal\n // y lo anhadimos a la lista selectedFiles (ficheros seleccionados para la comunicación)\n const onSelectDocument = loading.wrap(async (e: any) => {\n const file = e.target.files![e.target.files?.length! - 1];\n const resourceId = await props.pushTemporalResource(file);\n if (resourceId.hasValue) {\n setSelectedFiles(f => [\n {\n fileName: file.name,\n fileSize: file.size,\n temporalResourceId: resourceId.value,\n },\n ...f\n ]);\n }\n else {\n messages.set(resourceId);\n }\n });\n\n // almacenamos todos los trabajos\n //TODO: intentar evitar esto\n const initialize = async () => {\n const jobs = await props.getJobs(props.work.id);\n setAllJobs(jobs.data.work.jobs);\n }\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const cannotSave = () => {\n if (form.values.startDate != null) {\n return loading.isLoading() || form.isInvalid()\n || form.values.endDate < form.values.startDate\n || form.values.endDate == null\n || form.values.startDate == null\n || dateUtils.compareDates(dateUtils.parseDate(form.values.startDate), todayOffset) < 0;\n }\n else {\n return loading.isLoading() || form.isInvalid()\n || form.values.endDate < form.values.startDate\n || form.values.endDate == null\n || form.values.startDate == null\n }\n };\n\n form.observe('workspaces', setSelectedWorkspaces);\n form.observe('users', setSelectedDepartments);\n form.observe('jobs', setSelectedJobs);\n\n // si cambia el workspace filtramos los trabajos (jobs/setJobs) que puede seleccionar el usuario\n React.useEffect(() => {\n if (selectedWorkspaces.length > 0 && allJobs.length > 0) {\n const selectedJobs = allJobs.filter((j: any) => selectedWorkspaces.includes(j.workspaceId ?? 0));\n setJobs(selectedJobs);\n }\n else {\n setJobs([]);\n }\n }, [selectedWorkspaces, allJobs]);\n\n // crea un objeto ICommunication a partir de la información del formulario\n // procesando los archivos/departamentos/trabajos ...\n const getCommunication = () => {\n return {\n title: form.values.title ?? '',\n description: form.values.description ?? '',\n fromDate: form.values.startDate ?? new Date(),\n toDate: form.values.endDate ?? new Date(),\n workId: props.work.id,\n isRecursive: form.values.recursive ?? false,\n jobs: selectedJobs.map(id => ({\n jobId: id,\n })),\n targetType: selectedDepartments.includes(0)\n ? RequirementTargetType.Contractor\n : undefined,\n departments: selectedDepartments\n .filter(id => id > 0) // excluimos el departamento virtual que identifica a contratistas\n .map(id => ({\n departmentId: id\n })),\n workspaces: selectedWorkspaces.map(id => ({\n workspaceId: id,\n })),\n files: selectedFiles,\n };\n }\n\n const doAdd = loading.wrap(async (..._: any) => {\n const data = getCommunication();\n\n const resp = await props.saveCommunication(data);\n messages.set(resp);\n\n if (resp.hasValue) {\n goToCommunications(props.work.id);\n }\n else {\n messages.set(resp);\n }\n });\n\n // previsualizamos los posibles destinatarios\n const previewReceivers = loading.wrap(async () => {\n const c = getCommunication();\n const receivers = await props.getCommunicationReceivers(c);\n dialogs.show('receivers', receivers);\n });\n\n // incluimos un departamento virtual para identificar a los contratistas (targetType == 1)\n const availableDepartments = [\n { id: 0, name: t('Contractors') },\n ...props.departments,\n ];\n\n // listado de receivers de la comunicacion\n const renderReceivers = (receivers: IUserIdentity[]) => {\n if (receivers.length == 0) {\n return
\n \n {t('communications.receivers.empty')}\n \n
\n }\n else {\n receivers.sort((a, b) => a.userName.localeCompare(b.userName));\n return
\n \n \n \n \n \n \n \n \n {receivers.map((r) => \n \n \n )}\n \n
{t('username')}{t('email')}
{r.userName}{r.email}
\n
;\n }\n }\n\n\n const checkStartDate = (value: any) => {\n if (value != null) {\n if (dateUtils.dateIsLessOrEqual(dateUtils.parseDate(value), todayOffset)) {\n return {t('communications.startDate.error')}\n }\n else {\n return null;\n }\n }\n else {\n return null;\n }\n }\n\n const checkEndDate = (value: any) => {\n if (value < form.values.startDate) {\n return {t('communications.endDate.error')}\n }\n else {\n return null;\n }\n }\n\n return
\n {dialogs.render(\n 'receivers',\n { title: (receivers: IUserIdentity[]) => t('communications.receivers') + ` (${receivers.length})` },\n renderReceivers)}\n\n
\n
\n
\n \n {form.input('title', { containerClassName: 'span-5', autoFocus: true })}\n \n
\n {form.input('startDate', { type: 'date' })}\n {checkStartDate(form.values.startDate)}\n
\n \n
\n {form.input('endDate', { type: 'date' })}\n {checkEndDate(form.values.endDate)}\n
\n \n {form.checkBox('recursive')}\n \n {form.multiselect('users', availableDepartments, true)}\n
\n \n {t('communication.workspaces')}\n
\n {form.multiselect('workspaces', props.workspaces, true)}\n \n {form.multiselect('jobs', jobs, true)}\n
\n
\n {form.editor('description', { containerClassName: 'description-container' })}\n\n
\n \n {t('communications.files')}\n \n {selectedFiles.map(f =>
\n removeSelectedFile(f)} />\n {f.fileName}\n
)}\n
\n
\n
\n {form.errorBox()}\n
\n\n {/** FOOTER */}\n
\n {/* */}\n \n \n {loading.render()}\n {props.footer != undefined &&
{props.footer}
}\n\n
\n \n {t('communications.view.receivers')}\n \n\n \n {t('Create')}\n \n
\n
\n
\n \n
\n}","import * as React from 'react';\r\n\r\nimport {\r\n useDialogs,\r\n useLoading,\r\n useTranslation,\r\n usePaginator,\r\n useSearchPaginate,\r\n useDataTable,\r\n ProgressBar,\r\n useSearch,\r\n useSearchFilters,\r\n Portal,\r\n Tag,\r\n G,\r\n useForm,\r\n} from '@components';\r\nimport { ICommunication, ISecurity, IWorkspace } from '@models';\r\n\r\nimport './CommunicationsList.scss';\r\nimport { searchExportToXls } from '@store/actions/search';\r\nimport { downloadBlob } from '@utils/file-utils';\r\nimport dateUtils from '@utils/date-utils';\r\nimport i18next from 'i18next';\r\n\r\nexport interface IProps {\r\n footer?: any;\r\n onChange?: Function;\r\n onSubmit: Function;\r\n workSpaces: IWorkspace[];\r\n workId: number;\r\n saveCommunication: Function;\r\n getCommunication: Function;\r\n getDocuments: Function;\r\n getDepartmentWorkers: Function;\r\n security: ISecurity;\r\n}\r\n\r\ntype CommunicationRow = ICommunication & {\r\n receiverNames: string;\r\n total: number;\r\n validated: number;\r\n createdBy: number;\r\n communicationStatus: boolean;\r\n\r\n //Indica el departamento al que pertenece el usuario que creo la comunicacion\r\n departmentIds: number[];\r\n createdByName: string;\r\n}\r\n\r\nfunction ViewCommunication({ id, workId, row, getCommunication }: {\r\n id: number,\r\n workId: number,\r\n row: CommunicationRow,\r\n getCommunication: Function,\r\n}) {\r\n const { t } = useTranslation();\r\n const loading = useLoading(true);\r\n const [communication, setCommunication] = React.useState();\r\n\r\n const initialize = loading.wrap(async () => {\r\n const c = await getCommunication(workId, id);\r\n setCommunication(c);\r\n });\r\n\r\n React.useEffect(() => {\r\n initialize();\r\n }, []);\r\n\r\n const documents = communication?.documents ?? [];\r\n\r\n return
\r\n {loading.renderBox()}\r\n
\r\n
\r\n
\r\n {t('communications.files')}\r\n {documents.map(d =>
\r\n {d.name}\r\n \r\n \r\n \r\n
)}\r\n
\r\n
\r\n
\r\n}\r\n\r\nfunction EditCommunication({ id, workId, row, saveCommunication, getCommunication, clearDialog, reload }: {\r\n id: number,\r\n workId: number,\r\n row: CommunicationRow,\r\n getCommunication: Function,\r\n saveCommunication: Function,\r\n clearDialog: Function,\r\n reload: Function,\r\n}) {\r\n const { t } = useTranslation();\r\n const loading = useLoading();\r\n const [communication, setCommunication] = React.useState();\r\n\r\n const form = useForm>({\r\n initialValues: {\r\n toDate: row.toDate\r\n }\r\n });\r\n\r\n const initialize = loading.wrap(async () => {\r\n const c = await getCommunication(workId, id);\r\n setCommunication(c);\r\n });\r\n\r\n React.useEffect(() => {\r\n initialize();\r\n }, []);\r\n\r\n const doSave = loading.wrap(async () => {\r\n const comm: ICommunication = {\r\n departments: communication!.departments,\r\n description: communication!.description,\r\n isRecursive: communication!.isRecursive,\r\n fromDate: communication!.fromDate,\r\n toDate: form.values.toDate,\r\n file: communication!.file,\r\n id: communication!.id,\r\n title: communication!.title,\r\n jobs: communication!.jobs,\r\n workId: communication!.workId,\r\n isActive: communication!.isActive,\r\n targetType: communication!.targetType,\r\n workspaces: communication!.workspaces,\r\n }\r\n\r\n\r\n const res = await saveCommunication(comm);\r\n if (res.hasValue) {\r\n clearDialog();\r\n reload();\r\n }\r\n });\r\n\r\n const checkDate = (value: Date) => {\r\n if (value < row.fromDate) {\r\n return {t('communications.endDate.error')}\r\n }\r\n }\r\n\r\n return
\r\n {loading.renderBox()}\r\n
\r\n
\r\n \r\n {form.input('toDate', { type: 'date' })}\r\n \r\n {checkDate(form.values.toDate)}\r\n
\r\n
\r\n \r\n
\r\n}\r\n\r\nfunction RemoveCommunication({ row, deleteCommunication, clearDialog, reload }: {\r\n row: CommunicationRow,\r\n deleteCommunication: Function,\r\n clearDialog: Function,\r\n reload: Function,\r\n}) {\r\n const { t } = useTranslation();\r\n const loading = useLoading();\r\n\r\n const remove = loading.wrap(async () => {\r\n await deleteCommunication(row);\r\n clearDialog();\r\n reload();\r\n });\r\n\r\n return
\r\n {loading.renderBox()}\r\n
\r\n

{t('communication.remove.confirmation')}

\r\n
\r\n \r\n
\r\n}\r\n\r\n\r\nexport function CommunicationsList(props: IProps) {\r\n const { t } = useTranslation();\r\n\r\n const [anyDeleted, setAnyDeleted] = React.useState(false);\r\n\r\n const loading = useLoading();\r\n\r\n const userFilters = useSearchFilters({\r\n workId: props.workId,\r\n security: props.security,\r\n name: 'communications/list',\r\n references: {\r\n },\r\n persist: true,\r\n })\r\n\r\n const data = useSearchPaginate({\r\n search: props.security.isContractor() ? 'communications/list.contractors' : 'communications/list',\r\n filters: userFilters.merge({ workId: props.workId }),\r\n workId: props.workId,\r\n dependencies: [userFilters.filters],\r\n lazy: true,\r\n });\r\n\r\n const paginator = usePaginator({\r\n data: data.value,\r\n onChange: (page, limit) =>\r\n data.doSearch(userFilters.merge({ workId: props.workId }), page, limit),\r\n });\r\n\r\n const dialogs = useDialogs();\r\n\r\n React.useEffect(() => {\r\n if (anyDeleted) {\r\n reload();\r\n setAnyDeleted(false);\r\n }\r\n }, [anyDeleted]);\r\n\r\n const reload = loading.wrap(async () => {\r\n await data.doSearch(userFilters.merge({ workId: props.workId }));\r\n });\r\n\r\n React.useEffect(() => {\r\n reload();\r\n }, [userFilters.filters]);\r\n\r\n const showCommunication = (row: CommunicationRow) => {\r\n dialogs.show('communication', row);\r\n }\r\n\r\n const checkArrays = (arr1: any[], arr2: any[]) => {\r\n for (var i = 0; i < arr1.length; i++) {\r\n for (var j = 0; j < arr2.length; j++) {\r\n if (arr1[i] == arr2[j]) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n const actions = () => {\r\n const actions = [\r\n {\r\n icon: 'fas fa-folder',\r\n title: t('communications.view.data'),\r\n onClick: showCommunication,\r\n disabled: (x: CommunicationRow) => false\r\n },\r\n ];\r\n if (props.security.user?.departments?.some(x => data.data.filter(d => d.departmentIds.includes(x))) || props.security.isGestor() || data.data.some(x => x.createdBy == props.security.user?.id)) {\r\n actions.push({\r\n icon: 'fas fa-edit',\r\n title: t('Edit end date'),\r\n onClick: (row: CommunicationRow) => {\r\n dialogs.show('communication-edit', row);\r\n },\r\n disabled: (x: CommunicationRow) => {\r\n if (props.security.isGestor()) {\r\n return false;\r\n } else {\r\n if (x.createdBy == props.security.user?.id) {\r\n return false;\r\n }\r\n else {\r\n if (checkArrays(x.departmentIds, props.security.user?.departments || [])) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n if (props.security.hasPolicy(\"communication.create\") || props.security.isGestor()) {\r\n actions.push({\r\n icon: 'fas fa-file-excel',\r\n title: t('communications.export'),\r\n onClick: (row: CommunicationRow) => {\r\n exportCommunicationToXls(row);\r\n },\r\n disabled: (x: CommunicationRow) => false\r\n });\r\n }\r\n if (!props.security.isContractor()) {\r\n actions.push({\r\n icon: 'fas fa-list',\r\n title: t('communications.receivers'),\r\n onClick: (row: CommunicationRow) => {\r\n dialogs.show('communication-receivers', row);\r\n },\r\n disabled: (x: CommunicationRow) => false\r\n });\r\n }\r\n if (props.security.isGestor()) {\r\n actions.push({\r\n icon: 'fas fa-trash',\r\n title: t('communications.remove'),\r\n onClick: (x: CommunicationRow) => dialogs.show('communication-delete', x),\r\n disabled: (x: CommunicationRow) => x.isActive == false,\r\n });\r\n }\r\n return actions;\r\n };\r\n\r\n React.useEffect(() => {\r\n actions();\r\n }, [data.data]);\r\n\r\n const cleanHTML = (html: string) => {\r\n const regexp: RegExp = /( |<([^>]+)>)/ig;\r\n return html.replace(regexp, '');\r\n }\r\n\r\n const dataTable = useDataTable({\r\n columns: !props.security.isContractor() ? [\r\n { title: t('UserName'), field: 'createdByName', className: 'center w-10' },\r\n { title: t('creation.date'), field: 'creationDate', className: 'center w-10', delegate: 'date' },\r\n { title: t('communication.fromDate'), field: 'fromDate', className: 'center w-10', delegate: 'date' },\r\n { title: t('communication.toDate'), field: 'toDate', className: 'center w-10', delegate: 'date' },\r\n {\r\n title: t('Title'), className: 'center',\r\n render: d =>\r\n
\r\n {d.title}\r\n
\r\n },\r\n {\r\n title: t('communications.validated'),\r\n render: d => {\r\n const percentage = ((d.validated / d.total) * 100).toFixed(2);\r\n return
\r\n \r\n
\r\n },\r\n //
\r\n // \r\n //
,\r\n className: 'center w-5'\r\n },\r\n { title: t('Status'), render: d => !d.communicationStatus ? {t('Inactive')} : {t('Active')}, className: 'center w-5' },\r\n ] : [\r\n { title: t('creation.date'), field: 'creationDate', className: 'center w-10', delegate: 'date' },\r\n { title: t('communication.fromDate'), field: 'fromDate', className: 'center w-10', delegate: 'date' },\r\n { title: t('communication.toDate'), field: 'toDate', className: 'center w-10', delegate: 'date' },\r\n { title: t('Title'), field: 'title', className: 'center' },\r\n { title: t('Status'), render: d => !d.communicationStatus ? {t('Inactive')} : {t('Active')}, className: 'center w-5' },\r\n ],\r\n actions: [\r\n {\r\n actions: actions(),\r\n }\r\n ],\r\n data: data.data,\r\n });\r\n\r\n\r\n const deleteCommunication = async (row: CommunicationRow) => {\r\n const c = await props.getCommunication(props.workId, row?.id);\r\n const communication: ICommunication = {\r\n id: c.id,\r\n workId: c.workId,\r\n title: c.title,\r\n description: c.description,\r\n fromDate: c.fromDate,\r\n toDate: c.toDate,\r\n departments: c.departments,\r\n jobs: c.jobs,\r\n workspaces: c.workspaces,\r\n file: c.file,\r\n isRecursive: c.isRecursive,\r\n targetType: c.targetType,\r\n }\r\n const res = await props.saveCommunication(communication, true);\r\n if (res.isError === false) {\r\n setAnyDeleted(true);\r\n }\r\n };\r\n\r\n const renderReceivers = (row: CommunicationRow) => {\r\n return \r\n }\r\n\r\n const renderEditCommunication = (row: CommunicationRow) => {\r\n return \r\n }\r\n\r\n const renderRemoveCommunication = (row: CommunicationRow) => {\r\n return \r\n }\r\n\r\n function RenderReceivers({ row }: { row: CommunicationRow }) {\r\n const searchForReceivers = useSearch({\r\n search: 'communications/receivers',\r\n workId: props.workId,\r\n filters: {\r\n communicationId: row.id,\r\n },\r\n lazy: true,\r\n });\r\n\r\n const cleanSearch = (search: any[]) => {\r\n const clean: any[] = [];\r\n search.map((s: any) => {\r\n if (clean.some(c => c.userId == s.userId) === false) {\r\n clean.push(s);\r\n }\r\n })\r\n\r\n return clean;\r\n }\r\n React.useEffect(() => {\r\n searchForReceivers.doSearch({ communicationId: row.id });\r\n }, []);\r\n\r\n const renderValidated = (row: any): string => {\r\n switch (row.status) {\r\n case 'Validated':\r\n return t('Validated')\r\n break;\r\n default:\r\n return t('Not validated')\r\n break;\r\n }\r\n }\r\n\r\n const dataTable = useDataTable({\r\n columns: [\r\n { title: t('name'), field: 'name', sortKey: 'name' },\r\n {\r\n title: t('ResourceType'), render: d => {\r\n switch (d.type) {\r\n case 'Worker':\r\n return t('communication.worker')\r\n break;\r\n default:\r\n return t('communication.contractor')\r\n break;\r\n }\r\n }, sortKey: 'type'\r\n },\r\n {\r\n title: t('Status'), render: d => {\r\n return renderValidated(d);\r\n }, sortKey: 'status'\r\n },\r\n { title: t('Validation date'), render: d => dateUtils.formatDateTimeFromUtc(d.validationDate), sortKey: 'validationDate' },\r\n ],\r\n data: cleanSearch(searchForReceivers.value),\r\n onSort: (key, order) => searchForReceivers.doSearch({ communicationId: row.id, sort: key, order: order }),\r\n });\r\n\r\n return
{dataTable()}
\r\n };\r\n\r\n const renderCommunication = (row: CommunicationRow) => {\r\n return \r\n }\r\n\r\n const exportToXls = async (filters: any, filename: string | undefined = undefined) => {\r\n const resp = await searchExportToXls(props.workId, 'communications/list.report', filters, i18next.languages[0]);\r\n downloadBlob(resp, filename ?? ('communications' + '.xlsx') ?? 'export.xlsx');\r\n }\r\n\r\n const exportCommunicationToXls = async (row: CommunicationRow) => {\r\n const resp = await searchExportToXls(props.workId, 'communications/report', { communicationId: row.id }, i18next.languages[0]);\r\n downloadBlob(resp, row.title + '.xlsx');\r\n }\r\n\r\n return
\r\n {dialogs.render('communication', { maximized: true, title: t('communication') }, renderCommunication)}\r\n {dialogs.render('communication-receivers', { maximized: true, title: t('communications.receivers') }, renderReceivers)}\r\n {dialogs.render('communication-edit', { title: t('Edit end date') }, renderEditCommunication)}\r\n {dialogs.render('communication-delete', { title: t('Delete communication') }, renderRemoveCommunication)}\r\n \r\n
\r\n \r\n exportToXls(userFilters.merge({ workId: props.workId }))}\r\n style={{ height: '23px', marginTop: '3px' }} />\r\n \r\n
\r\n {userFilters.renderAsButton({ className: 'fas fa-filter pointer' })}\r\n
\r\n
\r\n
\r\n {dataTable()}\r\n \r\n {paginator()}\r\n
\r\n}","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport { CommunicationsList } from '@components/communications/CommunicationsList';\nimport * as UserStore from '@store/user';\nimport * as DocumentsStore from '@store/documents';\nimport * as Actions from '@store/actions/resources'\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...state.constants,\n ...UserStore.plainActions,\n ...DocumentsStore.plainActions,\n ...Actions.getDepartments,\n workId: state.user.work?.id,\n }),\n {},\n)(CommunicationsList as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport { ValidateCommunication } from '@components/communications/ValidateCommunication';\nimport * as UserStore from '@store/user';\nimport * as DocumentsStore from '@store/documents';\nimport * as Actions from '@store/actions/resources'\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...state.constants,\n ...UserStore.plainActions,\n ...DocumentsStore.plainActions,\n ...Actions.getDepartments,\n workId: state.user.work?.id,\n }),\n {\n ...UserStore.actionCreators,\n },\n)(ValidateCommunication as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { useTranslation, useLoading, } from '@components';\nimport { ICommunication } from '@models';\n\nimport './ValidateCommunication.scss';\n\nexport interface IProps {\n communication: ICommunication;\n requestClose: Function;\n validateCommunication: Function;\n}\n\nexport function ValidateCommunication(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n\n const doValidate = loading.wrap(async () => {\n props.validateCommunication(props.communication.id);\n props.requestClose();\n });\n\n return
\n
\n {loading.renderBox()}\n\n
\n {t('communication.validation.message')}\n {props.communication.title}\n
\n
\n\n
\n \n \n \n
\n
\n}","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport { CurrentCommunications } from '@components/communications/CurrentCommunications';\nimport * as UserStore from '@store/user';\nimport * as DocumentsStore from '@store/documents';\nimport * as Actions from '@store/actions/resources'\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...state.user,\n ...state.constants,\n ...UserStore.plainActions,\n ...DocumentsStore.plainActions,\n ...Actions.getDepartments,\n workId: state.user.work?.id,\n }),\n {},\n)(CurrentCommunications as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\nimport { Route } from 'react-router';\n\nimport './Module.scss';\n\nimport EditContractorContainer from '@containers/contractors/EditContractorContainer';\nimport EditMachineryContainer from '@containers/machineries/EditMachineryContainer';\nimport EditWorkerContainer from '@containers/workers/EditWorkerContainer';\nimport JobContainer from '@containers/user/JobContainer';\nimport JobsContainer from '@containers/user/JobsContainer';\nimport JobLoader from '@containers/user/JobLoader';\nimport ManageContractorsContainer from '@containers/contractors/ManageContractorsContainer';\nimport ManageSubcontractorsContainer from '@containers/contractors/ManageSubcontractorsContainer';\nimport { ContractorModule } from '@components/contractors/ContractorModule';\nimport SelectWorkContainer from '@containers/user/SelectWorkContainer';\nimport ReportContainer from '@containers/reports/ReportContainer';\nimport WorkAccessControl from '@containers/work/WorkAccessControl';\nimport WorkContainer from '@containers/user/WorkContainer';\nimport WorkLoaderContainer from '@containers/user/WorkLoaderContainer';\nimport WorkReports from '@containers/work/WorkReportsContainer';\nimport WorkSubContractorRequestsContainer from '@containers/work/WorkSubContractorRequestsContainer';\n\nimport { redirectTo } from '@utils';\nimport { BreadCrumb, LoadingBox, useSignalR, useTranslation } from '@components';\nimport { ICommunication, IJob, IMessage, IWork, MessageType } from '@models';\nimport ViewMachineriesContainer from '@containers/machineries/ViewMachineriesContainer';\nimport ViewWorkersContainer from '@containers/workers/ViewWorkersContainer';\nimport WorkDocumentsContainer from '@containers/work/WorkDocumentsContainer';\nimport WorkUsersContainer from '@containers/users/WorkUsersContainer';\nimport WorkRequirementDocumentContainer from '@containers/work/WorkRequirementDocumentContainer';\nimport { ContractorRoutes } from '@components/contractors/ContractorRoutes';\nimport CommmunicationFormContainer from '@containers/communications/CommunicationFormContainer';\nimport CommunicationsListContainer from '@containers/communications/CommunicationsListContainer';\nimport CurrentCommunicationsContainer from '@containers/communications/CurrentCommunicationsContainer';\n\nexport interface IProps {\n communications: ICommunication[];\n loading: boolean;\n loadMessages: Function;\n loadingMessage?: string;\n location: any;\n match: any;\n initialize: Function;\n selectedJob?: IJob;\n version: number;\n works: IWork[];\n work?: IWork;\n}\n\nconst createItems = (url: string, props: IProps, t: Function) => {\n const items = [];\n const work = props.work;\n const job = props.selectedJob;\n\n items.push({\n label: t('Works'),\n command: () => redirectTo('/'),\n });\n\n if (work && url.startsWith(`/work/${work.id}/jobs`)) {\n items.push({\n label: work.name,\n command: () => redirectTo(`/work/${work.id}`),\n });\n items.push({\n label: t('Jobs'),\n command: () => redirectTo(`/work/${work.id}/jobs`),\n });\n }\n else if (url.startsWith('/work/') && work) {\n items.push({\n label: work.name,\n command: () => redirectTo(`/work/${work.id}`),\n });\n }\n\n return items;\n}\n\nconst wrapWork = (f: React.FC) => (props: any) => \n {f(props)}\n;\n\nconst wrapJob = (f: React.FC) => (props: any) =>\n \n \n {f(props)}\n \n ;\n\n// Jobs\nconst JobWrapper = wrapJob(p => );\nconst JobsWrapper = wrapWork(p => );\nconst ReportWrapper = wrapWork(p => );\n// Contractors\nconst ContractorWrapper = wrapWork(p => );\nconst ContractorsWrapper = wrapWork(p => );\nconst EditContractorWrapper = wrapWork(p => );\nconst EditContractorRequirementsWrapper = wrapWork(p => );\nconst WorkSubContractorRequestsWrapper = wrapWork(p => );\nconst SubcontractorsWrapper = wrapWork(p => );\n\n// Machinery\nconst EditMachineryWrapper = wrapWork(p => );\nconst MachineriesWrapper = wrapWork(p => );\n// Workers\nconst EditWorkerWrapper = wrapWork(p => );\nconst WorkersWrapper = wrapWork(p => );\n// Others\nconst WorkAccessControlWrapper = wrapWork(props => );\nconst WorkDocumentsWrapper = wrapWork(p => );\nconst WorkUsersWrapper = wrapWork(p => );\nconst WorkReportsWrapper = wrapWork(props => );\nconst WorkWrapper = wrapWork(p => );\n\nconst RequirementDocumentWrapper = wrapWork(p => );\n\nconst CommunicationFormWrapper = wrapWork(p => );\nconst CommunicationsListWrapper = wrapWork(p => );\nconst CurrentCommunicationsWrapper = wrapWork(p => );\nconst ContractorRoutesWrapper = wrapWork(p => );\n\nfunction Module(props: IProps) {\n const [items, setItems] = React.useState([]);\n const lastMessagesReload = React.useRef(new Date().getTime());\n const { t } = useTranslation();\n // console.log('RELOAD MODULE');\n const home = {\n icon: 'pi pi-home',\n command: () => redirectTo('/'),\n };\n\n const _ = useSignalR({\n key: 'MainModule',\n method: 'NotificationMessage',\n onMessage: r => {\n if (r.notificationType === MessageType.RELOAD_NOTIFICATIONS) {\n console.log(r);\n const dt = new Date().getTime();\n if (dt - lastMessagesReload.current > 1000 * 30) {\n lastMessagesReload.current = dt;\n props.loadMessages();\n }\n console.log(r);\n }\n }\n });\n\n React.useEffect(() => {\n if (props.match) {\n setItems(\n createItems(\n window.location.pathname,\n props,\n t));\n }\n }, [props.location, props.match]);\n\n React.useEffect(() => {\n if (!props.version) {\n props.initialize();\n }\n }, []);\n\n React.useEffect(() => {\n // no redirigir en caso de que ya estemos en communications\n if (props.communications?.length > 0 && !window.location.pathname.includes('communications/current')) {\n // redirigir a communications current\n redirectTo('/work/' + props.work?.id + '/communications/current');\n }\n }, [props.communications, window.location.pathname]);\n\n return
\n
\n {items.length > 0 &&\n }\n
\n \n \n {props.loading &&
\n \n
}\n\n \n\n \n \n \n \n \n \n \n \n \n {/* \n */}\n \n \n \n \n \n \n \n \n \n \n \n \n
;\n}\n\nexport default React.memo(\n Module,\n (prev, next) =>\n prev.location === next.location\n && prev.match == next.match);\n","import * as React from 'react';\n\nimport ValidateCommunicationContainer from '@containers/communications/ValidateCommunicationContainer';\nimport {\n useDialogs, useLoading, useTranslation, BreadcrumbItem, TabPanel, TabView, Portal\n} from '@components';\nimport { ICommunication } from '@models';\n\nimport './CurrentCommunications.scss';\nimport { redirectTo } from '@utils';\n\nexport interface IProps {\n communications: ICommunication[];\n workId: number;\n}\n\nexport function CurrentCommunications(props: IProps) {\n const loading = useLoading();\n const dialogs = useDialogs();\n const [activeTab, setActiveTab] = React.useState(0);\n const [currentDocuments, setCurrentDocuments] = React.useState([]);\n const { t } = useTranslation();\n\n const validate = () => {\n const c = props.communications[activeTab];\n dialogs.show('validate', c);\n }\n\n const communications = props.communications;\n\n const renderValidation = (c: ICommunication) => {\n return \n }\n\n React.useEffect(() => {\n if (communications.length == 0) {\n redirectTo(`/work/${props.workId}/`)\n }\n }, [communications]);\n\n React.useEffect(() => {\n if (communications[activeTab] != undefined) {\n setCurrentDocuments(communications[activeTab].documents ?? []);\n }\n }, [communications[activeTab]]);\n\n\n return
\n \n\n \n {loading.render()}\n\n \n \n\n {dialogs.render('validate', { title: t('communication.resolve') }, renderValidation)}\n\n setActiveTab(e.index)} activeIndex={activeTab}>\n {communications.map(c => \n
\n
\n {currentDocuments.length > 0 &&
}\n {currentDocuments.length > 0 && {t('communications.files')}}\n {currentDocuments.map(d =>
\n {d.name}\n \n \n \n
\n
)}\n
)}\n
\n
\n}","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\n\nimport * as UsersStore from '../../store/user';\nimport Module from '../../components/user/Module';\n\nexport default connect(\n (state: ApplicationState) => ({\n communications: state.user.communications,\n selectedJob: state.jobs?.selectedJob,\n work: state.user.work,\n version: state.user.version,\n loading: state.app.loading,\n loadingMessage: state.app.loadingMessage\n }),\n UsersStore.actionCreators,\n)(Module as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import { IAuthRequest } from \"../../models\";\nimport { q } from './graphql';\nimport * as HTTP from './utils';\n\nexport async function login(auth: IAuthRequest) {\n const resp = await HTTP.POST('/api/users/authenticate', auth);\n\n if (resp && !resp.error) {\n return {\n ok: true,\n value: await getUser(),\n message: undefined,\n };\n }\n return resp;\n}\n\nexport function getUser() {\n return q(`\nquery InitializeUser {\n user {\n id, userName, email, roles, policies,\n departments, workFunctions,\n workerIds, obliqueDepartments, contractorIds\n }\n}`, {}, { returnPath: 'user' });\n}\n\nexport default {\n getUser,\n login,\n}\n","import * as React from 'react';\n\nimport {\n FloatField, InputText, Message, Panel,\n classNames,\n useForm,\n useFormik,\n useLoading,\n useTranslation,\n validate,\n validations as V,\n ValidationBuilder,\n useToast,\n} from '@components';\nimport { IUserIdentity } from '@models';\nimport { login } from '@store/actions/identity';\nimport './LoginPanel.scss';\nimport { IRecoverPasswordData } from '@models/forms';\n\nexport interface IProps {\n className?: string;\n style?: any;\n user?: IUserIdentity;\n setUser: Function;\n initializeApp: Function;\n recoverPassword: Function;\n}\n\nenum FormType {\n Login = 0,\n ResetPassword = 1\n}\n\ninterface IResetFormData {\n email: string;\n userName: string;\n}\n\nexport default function LoginPanel(props: IProps) {\n const [error, setError] = React.useState(undefined);\n const [formType, setFormType] = React.useState(FormType.Login);\n\n const { t } = useTranslation();\n const toast = useToast();\n const loading = useLoading();\n\n const [referrer, setReferrer] = React.useState(undefined);\n\n const resetForm = useForm({\n initialValues: {\n email: '',\n userName: '',\n },\n validateOnMount: true,\n validate: ValidationBuilder.new().email('email').lift(),\n });\n\n const formik: any = useFormik({\n initialValues: {\n username: '',\n password: '',\n },\n validate: (data) => {\n let errors: any = {};\n validate(data, 'username', errors, V.notEmpty, t('Name is required'));\n validate(data, 'password', errors, V.notEmpty, t('Password is required'));\n\n return errors;\n },\n onSubmit: loading.wrap(async (data: any) => {\n const resp = await login(data);\n console.log(resp);\n if (resp.ok) {\n props.setUser(resp.value);\n setError(undefined);\n props.initializeApp();\n { document.getElementById('container')!.className = \"\" }\n { document.getElementById('root')!.className = \"\" }\n }\n else {\n setError(resp.message);\n }\n })\n });\n\n const isFormFieldValid = (name: string) => !!(formik.touched[name] && formik.errors[name]);\n const getFormErrorMessage = (name: string) => {\n return isFormFieldValid(name) && {formik.errors[name]};\n };\n\n const header = () => {\n return
\n {t('Login')}\n
\n }\n\n const changePassword = (e: any) => {\n e.preventDefault();\n e.stopPropagation();\n setError(undefined);\n\n setFormType(FormType.ResetPassword);\n }\n\n const cancel = () => {\n setFormType(FormType.Login);\n resetForm.setFieldValues({ email: '' });\n }\n\n const doReset = loading.wrap(async () => {\n const form: IRecoverPasswordData = {\n email: resetForm.values.email,\n userName: resetForm.values.userName,\n }\n const res = await props.recoverPassword(form);\n resetForm.setFieldValue('email', '');\n resetForm.setFieldValue('userName', '');\n if (res.isError) {\n toast.error(t(res.error));\n }\n else {\n toast.show(t('password.reset.send'));\n }\n });\n\n React.useEffect(() => {\n setReferrer(document.referrer);\n }, []);\n\n return
\n \n {toast.render()}\n {formType === FormType.ResetPassword &&
\n
{t('password.reset.request')}
\n
\n {resetForm.input('email', { placeholder: 'Email', type: 'email' })}\n
\n
\n {resetForm.input('userName', { placeholder: t('Username'), type: 'text' })}\n
\n \n
\n \n\n \n\n {loading.render()}\n \n
\n
}\n\n {formType === FormType.Login && <>\n
\n {/* */}\n \n {/* */}\n {/* */}\n \n {/* */}\n
\n {formType === FormType.Login && !referrer?.includes('cae') &&\n {t('password.forget')}}\n \n {loading.render()}\n {formType === FormType.Login &&\n \n \n }\n
\n \n }\n {error && }\n
\n
\n}","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as Identity from '../../store/identity';\nimport * as UserStore from '@store/user';\n\nimport LoginPanel, { IProps } from '../../components/auth/LoginPanel';\n\ntype Props =\n Identity.IdentityState\n & typeof Identity.actionCreators\n & IProps;\n\nexport default connect(\n (state: ApplicationState) => ({\n identity: state.identity,\n ...UserStore.plainActions,\n }),\n Identity.actionCreators\n)(LoginPanel as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport LoginPanel from '@containers/auth/LoginContainer';\nimport { useTranslation } from '@components';\n\nimport './Home.scss';\n\nconst Images = () => {\n return gstore;\n}\n\nconst Bottom = () => {\n return gstore;\n}\n\n\n\nexport default function Home(){\n const { t } = useTranslation();\n {document.getElementById('container')!.className = \"height\"}\n {document.getElementById('root')!.className = \"clip\"}\n return
\n
\n \n \n
\n
\n {t('home.text')}\n \"gstore\"\n
\n
\n \n
\n
\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../store';\nimport * as Identity from '../store/identity';\nimport * as App from '../store/app';\n\nimport Home from '../components/Home';\n\ntype Props =\n Identity.IdentityState &\n App.IAppState;\n\nexport default connect(\n (state: ApplicationState) => ({\n user: state.identity?.user,\n loading: state.app.loading,\n })\n)(Home as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { IUserIdentity } from '@models';\nimport Sec from '@utils/security';\nimport { ProgressBar, useTranslation } from '@components';\nimport AdminModule from '@containers/admin/ModuleContainer';\nimport UserModuleContainer from '@containers/user/UserModuleContainer';\nimport GuestHome from './guest/Home';\n\nimport './Home.css';\nimport { storageClear } from '@utils/storage';\n\nexport interface IProps {\n user: IUserIdentity;\n loading: boolean;\n match: any;\n}\n\nexport default function Home(props: IProps) {\n const { t } = useTranslation();\n\n React.useEffect(() => {\n storageClear(k => k.startsWith('filters'));\n }, []);\n\n if (props.user && Sec.isAdmin(props.user)) {\n return \n }\n else if (props.loading) {\n return
\n
\n {t(\"AppLoading\")}\n \n
\n
\n }\n else if (props.user) {\n return \n }\n else {\n return \n }\n}\n","import * as React from 'react';\n\nimport { IDocumentType, INotification } from '@models';\nimport {\n G,\n NotificationsBox,\n useForm,\n useTranslation,\n ValidationBuilder,\n} from '@components';\n\nexport interface IProps {\n data: IDocumentType;\n footer?: any;\n notifications: INotification[];\n onChange?: Function;\n onSubmit: Function;\n}\n\nexport const validateDocumentType = (data: IDocumentType) => {\n return ValidationBuilder.create(data).notEmpty('name').build();\n}\n\nexport const isValid = (data: IDocumentType) => {\n return Object.keys(validateDocumentType(data)).length == 0;\n}\n\nconst prepareData = (work: IDocumentType) => {\n return {\n id: work.id,\n name: work.name,\n description: work.description,\n }\n}\n\nexport function DocumentTypeForm(props: IProps) {\n const { t } = useTranslation();\n\n const form = useForm({\n initialValues: {\n id: props.data?.id ?? 0,\n name: props.data?.name ?? '',\n description: props.data?.description ?? '',\n isActive: true,\n },\n validate: validateDocumentType, \n onSubmit: (data: IDocumentType) => {\n props.onSubmit(prepareData(data));\n return { ok: true };\n },\n onChange: props.onChange,\n });\n\n return
\n
\n
\n \n {form.input('name', { autoFocus: true })}\n \n \n {form.input('description')}\n \n
\n
\n {form.errorBox()}\n \n
\n\n {props.footer != undefined && props.footer}\n
\n
\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as ConstantsStore from '../../store/constants';\nimport * as App from '../../store/app';\n\nimport { AdminDocumentTypes, IProps } from '../../components/admin/AdminDocumentTypes';\nimport { NotificationType } from '../../models';\n\ntype Props =\n App.IAppState &\n IProps;\n\nexport default connect(\n (state: ApplicationState) => ({\n documentTypes: state.constants.documentTypes,\n notifications: state.notifications.notifications\n .filter(n => n.ctx === 'admindocumenttypes'),\n loading: state.notifications.notifications\n .filter(n => n.ctx === 'admindocumenttypes' && n.type === NotificationType.LOADING),\n loadingMessage: state.app.loadingMessage\n }),\n ConstantsStore.actionCreators,\n)(AdminDocumentTypes as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\nimport {\n useTranslation, useLoading, useDataTable, useFormDialog, ConfirmDialog,\n} from '@components';\nimport { IDocumentType, INotification, NotificationType } from '@models';\nimport { onNotification } from '@utils/hooks';\nimport { DocumentTypeForm } from './DocumentTypeForm';\n\nexport interface IProps {\n loading: boolean,\n documentTypes: IDocumentType[];\n notifications: INotification[];\n removeDocumentType: Function;\n saveDocumentType: Function;\n}\n\nexport function AdminDocumentTypes(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading(props.loading);\n const [showConfirmRemove, setShowConfirmRemove] = React.useState();\n const formDialog = useFormDialog({\n editTitle: t('Edit document type'),\n addTitle: t('Add document type'),\n });\n\n onNotification(\n {ctx: 'admindocumenttypes', type: NotificationType.SUCCESS},\n props.notifications,\n () => {\n formDialog.clear();\n });\n\n const dataTable = useDataTable({\n data: props.documentTypes,\n className: 'e',\n columns: [{field: 'id', className: 'td-sm'}, 'name', 'description'],\n actions: [\n {icon: 'pencil', tooltip: t('Edit'), onClick: formDialog.showEdit},\n {icon: 'trash', tooltip: t('Delete'), onClick: setShowConfirmRemove}\n ]\n });\n\n const Header = () => {\n return
\n formDialog.showAdd()}>\n \n {t('Add')}\n \n
\n };\n\n return (
\n {loading.renderBox()}\n\n {showConfirmRemove && setShowConfirmRemove(undefined)}\n message={`${t('Are you sure to delete the element ?')} ${showConfirmRemove.name}`}\n rejectLabel={t('Cancel')}\n acceptLabel={t('Delete')}\n reject={() => setShowConfirmRemove(undefined)}\n accept={() => props.removeDocumentType(showConfirmRemove.id)} />}\n\n {formDialog.render((data: IDocumentType) =>\n )}\n\n {dataTable({\n header:
\n })}\n
);\n}","import * as React from 'react';\n\nimport { INotification } from '@models';\nimport {\n Accordion,\n AccordionTab,\n Chip,\n classNames,\n InputGroup,\n InputText,\n MultiSelect,\n NotificationsBox,\n ValidationBuilder,\n useForm,\n useTranslation,\n G,\n} from '@components';\n\nimport './UserForm.css';\n\nexport interface IUserFormData {\n id?: string;\n userName?: string;\n email?: string;\n password?: string;\n passwordConfirmation?: string;\n roles: string[];\n policies: string[];\n}\n\nexport interface IProps {\n availableRoles: string[];\n data: IUserFormData;\n footer?: any;\n notifications: INotification[];\n onChange: Function;\n onSubmit?: Function;\n saveUser?: Function;\n}\n\nexport const validateUser = (data: IUserFormData) => {\n return ValidationBuilder.create(data)\n .notEmpty('userName')\n .notEmpty('email')\n .notEmptyIf(data.id == undefined, 'password')\n .match('passwordConfirmation', data.password, 'Passwords do not match')\n .build();\n}\n\nexport const isValidUser = (data: IUserFormData) => {\n return Object.keys(validateUser(data)).length == 0;\n}\n\nfunction UserPolicies(props: any) {\n const { t } = useTranslation();\n const [newPolicy, setNewPolicy] = React.useState('');\n\n const addPolicy = (e: any) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (newPolicy && newPolicy.trim() !== '') {\n props.data.policies.push(newPolicy);\n setNewPolicy('');\n }\n }\n\n const removePolicy = (policy: string) => {\n const i = props.data.policies.indexOf(policy);\n props.data.policies.splice(i);\n }\n\n return (
\n {t('Policies')}\n\n
\n {(props.data?.policies ?? [])\n .map((p: string, i: number) =>\n removePolicy(p)}>)}\n
\n\n
\n
\n setNewPolicy(e.target.value)}\n className='p-inputtext p-component' />\n \n \n \n
\n
\n );\n}\n\nexport function UserForm(props: IProps) {\n const { t } = useTranslation();\n\n const form = useForm({\n initialValues: {\n id: props.data?.id,\n userName: props.data?.userName ?? '',\n password: '',\n passwordConfirmation: '',\n email: props.data?.email ?? '',\n roles: props.data?.roles ?? [],\n policies: props.data?.policies ?? []\n },\n validate: validateUser,\n onSubmit: (data: IUserFormData) => {\n if (props.saveUser) {\n props.saveUser(data);\n }\n if (props.onSubmit) {\n props.onSubmit(data);\n }\n return { ok: true };\n },\n onChange: props.onChange,\n });\n\n return
\n
\n
\n
\n \n {form.input('userName', { autoFocus: true })}\n \n \n \n {form.input('email', { className: 'flat-right', type: 'email' })}\n \n \n\n { props.data?.id && \n \n {form.suffixField('password', 'lock', () =>\n )}\n\n {form.suffixField('passwordConfirmation', 'lock', () =>\n )}\n \n }\n\n {props.data?.id == undefined &&\n \n {form.suffixField('password', 'lock', () =>\n )}\n\n {form.suffixField('passwordConfirmation', 'lock', () =>\n )}\n }\n
\n
\n {!props.data?.roles.includes('contractor') &&\n <>\n {t(\"Roles\")}\n {form.field('roles', t('Roles'), () =>\n )}\n }\n \n
\n\n
\n {form.errorBox()}\n \n
\n
\n {props.footer != undefined &&
{props.footer}
}\n
\n
\n}\n","import { connect } from 'react-redux';\n\nimport { ApplicationState } from '../../store';\nimport * as Admin from '@store/admin';\nimport * as App from '@store/app';\n\nimport AdminUsers, { IProps } from '@components/admin/AdminUsers';\nimport { NotificationType } from '@models';\n\nexport default connect(\n (state: ApplicationState) => ({\n users: state.admin.users,\n roles: state.admin.roles,\n notifications: state.notifications.notifications\n .filter(n => n.ctx === 'adminusers'),\n loadingNotifications: state.notifications.notifications\n .filter(n => n.ctx === 'adminusers' && n.type === NotificationType.LOADING),\n loading: state.app.loading,\n loadingMessage: state.app.loadingMessage\n }),\n Admin.actionCreators,\n)(AdminUsers as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { INotification, IRole, IUserIdentity, NotificationType } from '@models';\n\nimport {\n ButtonSet, Chip, Column, DataTable, Dialog, Loading,\n LoadingBox,\n useSearch,\n useTranslation,\n useKeyListener,\n} from '@components';\nimport { onNotification, usePaginator } from '@utils/hooks';\nimport { IUserFormData, UserForm, isValidUser } from './UserForm';\nimport { keyIsEnter } from '@utils/key-utils';\nimport \"./AdminUsers.scss\"\n\nexport interface IProps {\n saveUser: Function;\n loading: boolean;\n loadingMessage?: string;\n loadingNotifications: INotification[];\n notifications: INotification[];\n users: IUserIdentity[];\n roles: IRole[];\n}\n\ntype UserWithWorksR = IUserIdentity & {\n workNames?: string;\n}\n\nexport default function AdminUsers(props: IProps) {\n const { t } = useTranslation();\n\n const userWorks = useSearch({\n workId: 0,\n search: 'admin/users'\n });\n\n const [users, setUsers] = React.useState(props.users);\n const [searchFilter, setSearchFilter] = React.useState('');\n const [showEditUser, setShowEditUser] = React.useState();\n const [showAdd, setShowAdd] = React.useState(false);\n const [addUserData, setAddUserData] = React.useState({\n roles: [], policies: [],\n });\n\n const searchCtrl = React.useRef();\n useKeyListener({\n key: 'f',\n keyCtrl: true,\n handle: () => {\n searchCtrl.current?.focus();\n },\n });\n\n\n\n const fillUsers = () => {\n if (searchFilter && searchFilter.trim() != '') {\n const term = searchFilter.toLowerCase();\n setUsers(pairUsers(props.users.filter(u =>\n u.userName.toLowerCase().includes(term)\n || u.email.toLowerCase().includes(term))));\n }\n else {\n setUsers(pairUsers(props.users));\n }\n }\n\n const pairUsers = (users: IUserIdentity[]) => {\n return users.map(u => {\n const works = userWorks.value.find(w => w.id === u.id);\n return { ...u, workNames: works?.workNames };\n })\n }\n\n React.useEffect(() => {\n\n if(props.users.length > 0 && userWorks.value.length > 0)\n {\n fillUsers();\n }\n }, [props.users, userWorks.value]);\n\n const doSearch = () => {\n fillUsers();\n }\n\n const loading = props.loadingNotifications.length > 0;\n\n const AddUserFooter = () => {\n return
\n \n \n setShowAdd(false)}>\n {t('Cancel')}\n \n \n {t('Save')}\n \n \n
\n }\n\n onNotification({ ctx: 'adminusers', type: NotificationType.SUCCESS },\n props.notifications,\n (n: INotification) => {\n if (n.action === 'edit') {\n setShowEditUser(undefined);\n }\n else if (n.action === 'add') {\n setShowAdd(false);\n }\n });\n\n const EditUserFooter = () => {\n return
\n \n \n setShowEditUser(undefined)}>\n {t('Cancel')}\n \n \n {t('Save')}\n \n \n
\n }\n\n return
\n {loading && }\n {props.loading && }\n\n
\n keyIsEnter(e) ? doSearch() : undefined}\n onChange={e => setSearchFilter(e.target.value)}\n onBlur={_ => doSearch()}\n placeholder={t('Search')} />\n Ctrl+F\n setShowAdd(true)}>\n \n {t('Add user')}\n \n
\n\n \n \n \n \n
\n {d.roles.map((r: string, i: number) =>\n )}\n
} />\n
\n {d.policies.map((r: string, i: number) =>\n )}\n
} />\n d.workNames} />\n setShowEditUser(u)}\n className='pi pi-user-edit pointer' />} />\n setShowEditUser(u)}\n className='pi pi-cog pointer' />} />\n setShowEditUser(u)}\n className='pi pi-list pointer' />} />\n \n\n {showAdd && setShowAdd(false)}>\n r.name).filter(r => r != 'contractor')}\n data={addUserData}\n footer={}\n notifications={props.notifications.filter(a => a.action === 'add')}\n onChange={setAddUserData}\n onSubmit={(data: IUserFormData) => props.saveUser(data)} />\n }\n\n {showEditUser && setShowEditUser(undefined)}>\n r.name).filter(r => r != 'contractor')}\n data={showEditUser}\n footer={}\n notifications={props.notifications.filter(a => a.action === 'edit')}\n onChange={setShowEditUser}\n onSubmit={(data: IUserFormData) => props.saveUser(data)} />\n }\n
\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as Admin from '../../store/admin';\nimport * as App from '../../store/app';\n\nimport { AdminLoader, IProps } from '../../components/admin/AdminLoader';\n\ntype Props =\n Admin.IAdminState &\n App.IAppState &\n IProps;\n\nexport default connect(\n (state: ApplicationState) => ({\n users: state.admin.users,\n loading: state.app.loading,\n loadingMessage: state.app.loadingMessage\n }),\n Admin.actionCreators,\n)(AdminLoader as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { LoadingBox } from '@components';\nimport { IUserIdentity } from '@models';\n\nexport interface IProps {\n children: any;\n loading: boolean;\n loadingMessage: string;\n users: IUserIdentity[];\n //\n initialize: Function;\n}\n\nexport function AdminLoader(props: IProps) {\n React.useEffect(() => {\n if (props.users.length === 0) {\n props.initialize();\n }\n }, []);\n\n if (props.loading) {\n return \n }\n else {\n return props.children;\n }\n}","import * as React from 'react';\n\nimport { BreadCrumb, useTranslation } from '@components';\nimport { redirectTo } from '@utils';\n\nconst createItems = (url: string, t: Function) => {\n const items = [];\n\n if (url.startsWith('/admin/configuration')) {\n items.push({\n label: t('Configuration'),\n command: () => redirectTo('/admin/configuration')\n });\n }\n else if (url.startsWith('/admin/works')) {\n items.push({\n label: t('Works'),\n command: () => redirectTo('/admin/works')\n });\n }\n else if (url.startsWith('/admin/users')) {\n items.push({\n label: t('Users'),\n command: () => redirectTo('/admin/users')\n });\n }\n else if (url.startsWith('/admin/work/')) {\n items.push({\n label: t('Works'),\n command: () => redirectTo('/admin/works')\n });\n const id = url.split('/admin/work/')[1].split('/')[0];\n items.push({\n label: `${t('Work')} ${id}`,\n command: () => redirectTo(`/admin/work/${id}`)\n });\n if (url.includes('permissions')) {\n items.push({\n label: t('Permissions'),\n command: () => redirectTo(`/admin/work/${id}/permissions`)\n });\n }\n if (url.includes('/configuration')) {\n items.push({\n label: t('Configuration'),\n command: () => redirectTo(`/admin/work/${id}/configuration`)\n });\n }\n }\n\n return items;\n}\n\nexport default function AdminRoutesWrapper(props: any) {\n const [items, setItems] = React.useState([]);\n const { t } = useTranslation();\n\n React.useEffect(() => {\n if (props.location) {\n setItems(createItems(props.location.pathname, t));\n }\n }, [props.location]);\n\n const home = {\n icon: 'pi pi-home',\n command: () => redirectTo('/'),\n };\n\n return
\n
\n {items.length > 0 &&\n }\n
\n \n \n
\n {props.children}\n
;\n}","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as Admin from '../../store/admin';\n\nimport { IWork } from '../../models';\nimport { Loading } from '../../components';\n\nconst Loader = (props: any) => {\n const [work, setWork] = React.useState();\n const [loading, setLoading] = React.useState(true);\n\n const loadWork = () => {\n const id = props.match.params.id;\n const w = props.works.find((x: IWork) => x.id == id);\n if (w) {\n setWork(w);\n setLoading(false);\n }\n else {\n props.loadWorks();\n props.selectWork(parseInt(id));\n }\n }\n\n React.useEffect(() => {\n if (!work || work.id != props.id) {\n loadWork();\n }\n }, [props.workId, props.works]);\n\n if (loading) {\n return ;\n }\n else {\n return React.cloneElement(props.children, { work: work });\n }\n}\n\nexport default connect(\n (state: ApplicationState) => ({\n works: state.admin.works,\n }),\n Admin.actionCreators,\n)(Loader as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { IConstants, IWorkspace, countriesToNode, IPropertyGroupType, PropertyGroupObjectType } from '@models';\nimport {\n G,\n TreeSelect,\n useForm,\n useTranslation,\n ValidationBuilder\n} from '@components';\nimport { DynamicProperties } from '@components/user/DynamicProperties';\n\nexport interface IProps {\n propertyGroupTypes: IPropertyGroupType[];\n data?: IWorkspace;\n footer?: any;\n onChange?: Function;\n onSubmit: Function;\n workId: number;\n constants: IConstants;\n}\n\nexport const validateWorkspace = (data: any) => {\n return ValidationBuilder.create(data)\n .notEmpty('name', 'Name is required')\n .build();\n}\n\nexport const isValid = (data: IWorkspace) => {\n return Object.keys(validateWorkspace(data)).length == 0;\n}\n\nconst getSelectedNodes = (w: IWorkspace|undefined) =>\n w ? [w.countryId, w.regionId, w.countyId].filter(d => d != undefined)\n : undefined;\n\nexport function WorkspaceForm(props: IProps) {\n const { t } = useTranslation();\n const countryNodes = countriesToNode(props.constants.countries);\n\n const [selectedRegionNode, setSelectedRegionNode] =\n React.useState(getSelectedNodes(props.data));\n\n const onSelectedRegionNodeChanged = (ev: any) => {\n setSelectedRegionNode(ev.value);\n const [countryId, regionId, countyId] =\n ev.value\n .concat([undefined, undefined, undefined])\n .slice(0, 3);\n\n form.setFieldValue('countryId', countryId);\n form.setFieldValue('regionId', regionId);\n form.setFieldValue('countyId', countyId);\n }\n\n const form = useForm>({\n initialValues: {\n description: props.data?.description ?? '',\n id: props.data?.id ?? 0,\n isActive: true,\n name: props.data?.name ?? '',\n workId: props.workId,\n countryId: props.data?.countryId,\n countyId: props.data?.countyId,\n regionId: props.data?.regionId,\n\n contact: props.data?.contact ?? '',\n address: props.data?.address ?? '',\n location: props.data?.location ?? '',\n postalCode: props.data?.postalCode ?? '',\n phone: props.data?.phone ?? '',\n fax: props.data?.fax ?? '',\n email: props.data?.email ?? '',\n properties: props.data?.properties,\n },\n validate: validateWorkspace,\n onSubmit: (data: IWorkspace) => {\n props.onSubmit(data);\n return { ok: true };\n },\n onChange: props.onChange,\n });\n\n React.useEffect(() => {\n form.setFieldValue('properties', props.data?.properties);\n }, [props.data]);\n\n return
\n
\n
\n \n {form.input('name', { autoFocus: true })}\n \n \n {form.input('description')}\n \n \n \n \n {/* CAMPOS NUEVOS */}\n \n {form.input('contact')}\n \n \n {form.input('address')}\n \n \n {form.input('location')}\n \n \n {form.input('postalCode')}\n \n \n {form.input('phone')}\n \n \n {form.input('fax')}\n \n \n {form.input('email')}\n \n {\n form.setFieldValue('properties', props);\n }}\n objectType={PropertyGroupObjectType.Workspace}\n propertyGroupTypes={props.propertyGroupTypes} />\n
\n
\n {form.errorBox()}\n
\n\n {props.footer != undefined &&
{props.footer}
}\n
\n
\n}","import * as React from 'react';\n\nimport * as Actions from '@store/actions/admin';\nimport {\n Column, ConfirmDialog, DataTable, Dialog, Loading, Message, useMemoized, useTranslation,\n} from '@components';\nimport { IConstants, IWork, IWorkspace } from '@models';\nimport { getGraphqlError } from '@utils';\nimport { WorkspaceForm } from './WorkspaceForm';\nimport { isWorkspacePropertyGroupType } from '@models/works';\n\nexport interface IProps {\n work: IWork;\n constants: IConstants;\n}\n\nexport function AdminWorkWorkspaces(props: IProps) {\n const { t } = useTranslation();\n const [error, setError] = React.useState();\n const [loading, setLoading] = React.useState(false);\n const [workspaces, setWorkspaces] = React.useState(\n props.work.workspaces ?? []\n );\n\n // add\n const [showAdd, setShowAdd] = React.useState(false);\n // edit\n const [showEdit, setShowEdit] = React.useState();\n // remove\n const [showConfirmRemove, setShowConfirmRemove] = React.useState();\n\n const formatWorkspaceRegions = useMemoized((countryId: number, regionId: number, countyId: number) => {\n const country = props.constants.countries.find(c => c.id == countryId);\n const region = country?.regions.find(r => r.id == regionId);\n const county = region?.counties.find(c => c.id == countyId);\n\n return [country, region, county]\n .filter(d => d != undefined)\n .map(d => d!.name)\n .join(', ');\n });\n\n const loadWorkspaces = async (workId: number) => {\n setLoading(true);\n\n const w = await Actions.getWork(workId);\n const workspaces = w.data.work.workspaces;\n setWorkspaces(workspaces);\n\n if (showEdit) {\n const currentWorkspace = workspaces.find((w: IWorkspace) => w.id == showEdit.id);\n setShowEdit(currentWorkspace);\n }\n\n setLoading(false);\n }\n const removeWorkspace = async (id: number) => {\n setLoading(true);\n setError(undefined);\n\n const resp = await Actions.removeWorkspace(id);\n if (resp.data.removeWorkspace?.value) {\n await loadWorkspaces(props.work.id);\n }\n else {\n setError(getGraphqlError(resp, 'removeWorkspace'));\n }\n setShowConfirmRemove(undefined);\n setLoading(false);\n }\n const saveWorkspace = async (w: IWorkspace) => {\n setLoading(true);\n await Actions.saveWorkspace(w);\n await loadWorkspaces(props.work.id);\n setShowAdd(false);\n setShowEdit(undefined);\n setLoading(false);\n }\n\n const AddEditFooter = (p: any) => {\n return
\n {error && }\n \n {loading && }\n
\n p.edit ? setShowEdit(undefined) : setShowAdd(false)}>\n {t('Cancel')}\n \n \n {t('Save')}\n \n
\n
\n }\n\n const ListFooter = (p: any) => {\n return
\n {error && }\n \n \n \n
\n }\n\n const propertyGroupTypes =\n props.work?.propertyGroupTypes?.filter(isWorkspacePropertyGroupType) ?? [];\n\n return (
\n {showAdd && setShowAdd(false)}\n visible>\n }\n onSubmit={(d: IWorkspace) => saveWorkspace(d)}\n workId={props.work.id} />\n }\n\n {showEdit && setShowEdit(undefined)}\n visible>\n }\n onSubmit={(d: IWorkspace) => saveWorkspace(d)}\n workId={props.work.id} />\n }\n\n {showConfirmRemove && setShowConfirmRemove(undefined)}\n message={`${t('Are you sure to delete the element ?')} ${showConfirmRemove.name}`}\n rejectLabel={t('Cancel')}\n acceptLabel={t('Delete')}\n reject={() => setShowConfirmRemove(undefined)}\n accept={() => removeWorkspace(showConfirmRemove.id)} />}\n\n \n \n \n \n formatWorkspaceRegions(d.countryId, d.regionId, d.countyId)} />\n \n setShowEdit(d)} />} />\n \n setShowConfirmRemove(d)} />} />\n \n\n \n \n
);\n}","import * as React from 'react';\n\nimport { IWorkShift } from '@models';\nimport {\n G,\n useForm,\n useTranslation,\n ValidationBuilder\n} from '@components';\nimport { formatMinutes, timeToMinutes } from '@utils';\n\nexport interface IProps {\n data?: IWorkShift;\n footer?: any;\n onChange?: Function;\n onSubmit: Function;\n workId: number;\n}\n\nexport const validateWorkShift = (data: any) => {\n return ValidationBuilder.create(data)\n .notEmpty('name', 'Name is required')\n .notEmpty('startMinutes', 'Value is required')\n .notEmpty('endMinutes', 'Value is required')\n .build();\n}\n\nexport const isValid = (data: IWorkShift) => {\n return Object.keys(validateWorkShift(data)).length == 0;\n}\n\nconst convert = (data: IWorkShift) => {\n return {\n ...data,\n startMinutes: timeToMinutes(data.startMinutes),\n endMinutes: timeToMinutes(data.endMinutes)\n };\n}\n\nexport function WorkShiftForm(props: IProps) {\n const { t } = useTranslation();\n\n const form = useForm>({\n initialValues: {\n id: props.data?.id ?? 0,\n name: props.data?.name ?? '',\n workId: props.workId,\n startMinutes: formatMinutes(props.data?.startMinutes ?? 0),\n endMinutes: formatMinutes(props.data?.endMinutes ?? 0),\n },\n validate: validateWorkShift,\n onSubmit: (data: IWorkShift) => {\n props.onSubmit(convert(data));\n return { ok: true };\n },\n onChange: props.onChange,\n });\n\n return
\n
\n
\n \n {form.input('name', { autoFocus: true })}\n \n \n {form.input('startMinutes', { type: 'time' })}\n \n \n {form.input('endMinutes', { type: 'time' })}\n \n
\n
\n {form.errorBox()}\n
\n\n {props.footer != undefined &&
{props.footer}
}\n
\n
\n}","import * as React from 'react';\n\nimport * as Actions from '@store/actions/admin';\nimport {\n Column, ConfirmDialog, DataTable, Dialog, Loading, Message, useTranslation,\n} from '@components';\nimport { IWork, IWorkShift } from '@models';\nimport { formatMinutes, getGraphqlError } from '@utils';\nimport { WorkShiftForm } from './WorkShiftForm';\n\nexport interface IProps {\n work: IWork;\n}\n\nexport function AdminWorkShifts(props: IProps) {\n const { t } = useTranslation();\n const [error, setError] = React.useState();\n const [loading, setLoading] = React.useState(false);\n const [workShifts, setWorkShifts] = React.useState(\n props.work.workShifts ?? []\n );\n\n // add\n const [showAdd, setShowAdd] = React.useState(false);\n // edit\n const [showEdit, setShowEdit] = React.useState();\n // remove\n const [showConfirmRemove, setShowConfirmRemove] = React.useState();\n\n const loadShifts = async (workId: number) => {\n setLoading(true);\n\n const w = await Actions.getWork(workId);\n setWorkShifts(w.data.work.workShifts);\n\n setLoading(false);\n }\n\n const removeWorkShift = async (id: number) => {\n setLoading(true);\n setError(undefined);\n\n const resp = await Actions.removeWorkShift(id);\n if (resp.data.removeWorkShift?.value) {\n await loadShifts(props.work.id);\n }\n else {\n setError(getGraphqlError(resp, 'removeWorkShift'));\n }\n setShowConfirmRemove(undefined);\n setLoading(false);\n }\n\n const saveWorkShift = async (data: IWorkShift) => {\n setLoading(true);\n setError(undefined);\n\n const resp = await Actions.saveWorkShift(data);\n if (!resp.data.saveWorkShift.isError) {\n await loadShifts(props.work.id);\n setShowAdd(false);\n setShowEdit(undefined);\n }\n else {\n setError(getGraphqlError(resp));\n }\n\n setLoading(false);\n }\n\n const AddEditFooter = (p: any) => {\n return
\n {error && }\n \n {loading && }\n
\n p.edit ? setShowEdit(undefined) : setShowAdd(false)}>\n {t('Cancel')}\n \n \n {t('Save')}\n \n
\n
\n }\n\n const ListFooter = (p: any) => {\n return
\n {error && }\n \n\n \n \n
\n }\n\n return (
\n {showAdd && setShowAdd(false)}\n visible>\n }\n onSubmit={(d: IWorkShift) => saveWorkShift(d)}\n workId={props.work.id} />\n }\n\n {showEdit && setShowEdit(undefined)}\n visible>\n }\n onSubmit={(d: IWorkShift) => saveWorkShift(d)}\n workId={props.work.id} />\n }\n\n {showConfirmRemove && setShowConfirmRemove(undefined)}\n message={
{`${t('Are you sure to delete the element ?')} ${showConfirmRemove.name}`}
}\n rejectLabel={t('Cancel')}\n acceptLabel={t('Delete')}\n reject={() => setShowConfirmRemove(undefined)}\n accept={() => removeWorkShift(showConfirmRemove.id)} />}\n\n \n \n \n formatMinutes(d.startMinutes)}\n className='center' />\n formatMinutes(d.endMinutes)}\n className='center' />\n \n setShowEdit(d)} />} />\n \n setShowConfirmRemove(d)} />} />\n \n\n \n \n
);\n}\n","import * as React from 'react';\n\nimport { ICountry, INotification, IWork } from '@models';\nimport {\n G,\n NotificationsBox,\n useForm,\n useTranslation,\n ValidationBuilder\n} from '@components';\n\nimport './WorkForm.css';\n\nexport interface IProps {\n countries: ICountry[];\n data: IWork;\n footer?: any;\n notifications: INotification[];\n onChange: Function;\n onSubmit: Function;\n}\n\nexport const validateWork = (data: IWork) => {\n return ValidationBuilder.create(data)\n .notEmpty('name', 'Name is required')\n .notEmpty('countryId', 'Country is required')\n .build();\n}\n\nexport const isValid = (data: IWork) => {\n return Object.keys(validateWork(data)).length == 0;\n}\n\nconst prepareData = (work: IWork) => {\n return {\n id: work.id,\n name: work.name,\n description: work.description,\n countryId: work.countryId,\n }\n}\n\nexport function WorkForm(props: IProps) {\n const { t } = useTranslation();\n\n const form = useForm({\n initialValues: {\n id: props.data?.id ?? 0,\n name: props.data?.name ?? '',\n description: props.data?.description ?? '',\n settings: props.data?.settings ?? '',\n countryId: props.data?.countryId ?? 0,\n permissions: [],\n users: [],\n workspaces: [],\n workShifts: [],\n legalForms: [],\n },\n validate: validateWork,\n onSubmit: (data: IWork) => {\n props.onSubmit(prepareData(data));\n return { ok: true };\n },\n onChange: props.onChange,\n });\n\n return
\n
\n
\n \n {form.input('name')}\n \n \n {form.input('description')}\n \n \n {form.select('countryId', props.countries)}\n \n
\n
\n {form.errorBox()}\n \n
\n\n {props.footer != undefined && props.footer}\n
\n
\n}\n","import * as React from 'react';\n\nimport { MultiSelect, useTranslation } from '@components';\nimport { INotification, IWork, NotificationType } from '@models';\nimport { IUserData } from '@models/identity';\nimport { onNotification } from '@utils/hooks';\n\nexport interface IProps {\n notifications: INotification[];\n onCancel: Function;\n users: IUserData[];\n saveWork: Function;\n work: IWork;\n}\n\nconst createUserInput = (u: IUserData) => ({\n id: u.id!,\n userName: u.userName,\n});\n\nconst createWorkInput = (w: IWork) => ({\n id: w.id,\n name: w.name,\n description: w.description,\n countryId: w.countryId\n})\n\nexport function AdminWorkUsers(props: IProps) {\n const { t } = useTranslation();\n\n const [selectedUsers, setSelectedUsers] = React.useState(\n props.work.users.map(u => u.id));\n\n const [loading, setLoading] = React.useState(false);\n\n onNotification({type: NotificationType.SUCCESS, ctx: 'adminworkusers'}, props.notifications, () => {\n setLoading(false);\n });\n\n const save = () => {\n const users = props.users\n .filter(u => selectedUsers.indexOf(u.id!) >= 0)\n .map(createUserInput);\n props.saveWork({...createWorkInput(props.work), users }, {ctx: 'adminworkusers'});\n }\n\n return
\n setSelectedUsers(e.value)}\n filter={true}\n options={props.users}\n optionLabel={'userName'}\n optionValue={'id'} />\n\n
\n
\n
\n \n props?.onCancel()}\n disabled={loading}>\n {t('Cancel')}\n \n \n {t('Save')}\n \n \n
\n
\n
\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as Admin from '../../store/admin';\nimport * as App from '../../store/app';\n\nimport { AdminWorkUsers, IProps } from '../../components/admin/AdminWorkUsers';\nimport { NotificationType } from '../../models';\n\ntype Props =\n Admin.IAdminState &\n App.IAppState &\n IProps;\n\nexport default connect(\n (state: ApplicationState) => ({\n users: state.admin.users,\n notifications: state.notifications.notifications\n .filter(n => n.ctx === 'adminworkusers'),\n loadingNotifications: state.notifications.notifications\n .filter(n => n.ctx === 'adminworkusers' && n.type === NotificationType.LOADING),\n loading: state.app.loading,\n loadingMessage: state.app.loadingMessage\n }),\n Admin.actionCreators,\n)(AdminWorkUsers as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { INotification, IWorkI18NResource } from '@models';\nimport {\n NotificationsBox,\n useForm,\n useTranslation,\n ValidationBuilder,\n G,\n} from '@components';\nimport { defaultLanguage, languages } from '../../i18n';\n\nimport './WorkForm.css';\n\nexport interface IProps {\n data?: IWorkI18NResource;\n workId: number;\n footer?: any;\n notifications: INotification[];\n onChange?: Function;\n onSubmit: Function;\n}\n\nexport const validateI18NResource = (data: IWorkI18NResource) => {\n return ValidationBuilder.create(data)\n .notEmpty('name')\n .notEmpty('value')\n .build();\n}\n\nexport const isValid = (data: IWorkI18NResource) => {\n return Object.keys(validateI18NResource(data)).length == 0;\n}\n\nimport I18nResources from '../../i18n/es.json';\n\nexport function WorkI18NResourceForm(props: IProps){\n const { t } = useTranslation();\n\n const form = useForm({\n initialValues: {\n id: props.data?.id ?? 0,\n language: props.data?.language ?? defaultLanguage,\n name: props.data?.name ?? '',\n value: props.data?.value ?? '',\n workId: props.workId,\n },\n validate: validateI18NResource,\n onSubmit: (data: IWorkI18NResource) => {\n props.onSubmit(data);\n return { ok: true };\n },\n onChange: props.onChange,\n });\n\n const keys = Object.keys(I18nResources);\n\n return
\n
\n
\n \n {form.select('language', languages)}\n \n \n {form.autoComplete('name', { suggestions: keys })}\n \n \n {form.input('value')}\n \n
\n
\n {form.errorBox()}\n \n
\n {props.footer != undefined && props.footer}\n
\n
\n}","import * as React from 'react';\n\nimport {\n ConfirmDialog, Message, useDataTable, useFormDialog, useLoading, useTranslation\n} from '@components';\nimport { IWorkI18NResource } from '@models/resources';\nimport * as Actions from '@store/actions/resources';\nimport { WorkI18NResourceForm } from './WorkI18NResourceForm';\n\nexport interface IProps {\n workId: number;\n}\n\nexport function AdminWorkI18NResources(props: IProps) {\n const { t } = useTranslation();\n\n const [error, setError] = React.useState();\n const loading = useLoading(true);\n const [workI18NResources, setWorkI18NResources] = React.useState([]);\n const formDialog = useFormDialog({\n editTitle: t('Edit internationalization'),\n addTitle: t('Add internationalization'),\n });\n const [showConfirmRemove, setShowConfirmRemove] = React.useState();\n\n const initialize = loading.wrap(async () => {\n const res = await Actions.getWorkI18NResources(props.workId);\n\n setWorkI18NResources(res.data.work.workI18NResources)\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const saveWorkI18NResource = async (w: IWorkI18NResource) => {\n\n await Actions.saveWorkI18NResource(w);\n await initialize();\n\n formDialog.clear();\n }\n\n const removeWorkI18NResource = async (id: number, workId: number) => {\n setError(undefined);\n\n workId = props.workId;\n await Actions.removeWorkI18NResource(id, workId);\n await initialize();\n\n console.log(id, workId);\n formDialog.clear();\n }\n\n const dataTable = useDataTable({\n loading,\n data: workI18NResources,\n scrollable: true,\n tableStyle: { maxHeight: '300px' },\n scrollHeight: '300px',\n className: 'e',\n columns: [\n {field: 'language', title: 'Language', className: 'td-sm'},\n 'name',\n 'value'\n ],\n actions: [\n {icon: 'pencil', tooltip: t('Edit'), onClick: formDialog.showEdit, bodyClassName: 'td-sm'},\n {icon: 'trash', tooltip: t('Delete'), onClick: setShowConfirmRemove, bodyClassName: 'td-sm'},\n ],\n });\n\n return
\n {showConfirmRemove && setShowConfirmRemove(undefined)}\n message={`${t('Are you sure to delete the element ?')} ${showConfirmRemove.name}`}\n rejectLabel={t('Cancel')}\n acceptLabel={t('Delete')}\n reject={() => setShowConfirmRemove(undefined)}\n accept={() => removeWorkI18NResource(showConfirmRemove.id, showConfirmRemove.workId)} />}\n\n {formDialog.render((data:IWorkI18NResource) =>\n )}\n\n {dataTable()}\n\n
\n {error && }\n \n \n
\n
\n\n}","import * as React from 'react';\n\nimport { INotification, IActivityType } from '@models';\nimport {\n classNames,\n InputText,\n NotificationsBox,\n useForm,\n useTranslation,\n ValidationBuilder,\n} from '@components';\n\nimport './WorkForm.css';\n\nexport interface IProps {\n data?: IActivityType;\n workId: number;\n footer?: any;\n notifications: INotification[];\n onChange?: Function;\n onSubmit: Function;\n}\n\nexport const validateActivity = (data: IActivityType) => {\n return ValidationBuilder.create(data).notEmpty('name').build();\n}\n\nexport const isValid = (data: IActivityType) => {\n return Object.keys(validateActivity(data)).length == 0;\n}\n\nexport function ActivityTypeForm(props: IProps) {\n const { t } = useTranslation();\n\n const form = useForm({\n initialValues: {\n id: props.data?.id ?? 0,\n name: props.data?.name ?? '',\n workId: props.workId,\n },\n validate: validateActivity,\n onSubmit: (data: IActivityType) => {\n props.onSubmit(data);\n return {ok: true};\n },\n onChange: props.onChange,\n });\n\n return
\n
\n
\n {form.floatField('name', t('Name'), () =>\n )}\n
\n
\n {form.errorBox()}\n \n
\n {props.footer != undefined && props.footer}\n
\n
\n}","import * as React from 'react';\n\nimport {\n ConfirmDialog, Message, useDataTable, useFormDialog, useLoading, useTranslation\n} from '@components';\nimport { IActivityType } from '@models/resources';\nimport * as Actions from '@store/actions/resources';\nimport { ActivityTypeForm } from './ActivityTypeForm';\n\nexport interface IProps {\n workId: number;\n}\n\nexport function AdminActivityType(props: IProps) {\n const { t } = useTranslation();\n\n const [error, setError] = React.useState();\n const [activities, setActivities] = React.useState([]);\n const loading = useLoading(true);\n const formDialog = useFormDialog({\n editTitle: t('Edit activity'),\n addTitle: t('Add activity'),\n });\n const [showConfirmRemove, setShowConfirmRemove] = React.useState();\n\n const initialize = loading.wrap(async () => {\n const res = await Actions.getActivities(props.workId);\n\n setActivities(res.data.work.activities)\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const saveActivity = loading.wrap(async (w: IActivityType) => {\n await Actions.saveActivity(w);\n await initialize();\n\n formDialog.clear();\n });\n\n const removeActivity = loading.wrap(async (id: number, workId: number) => {\n setError(undefined);\n\n workId = props.workId;\n await Actions.removeActivity(id, workId);\n await initialize();\n\n formDialog.clear();\n });\n\n const dataTable = useDataTable({\n data: activities,\n className: 'e',\n loading,\n columns: [{ field: 'id', className: 'td-sm' }, 'name'],\n actions: [\n { icon: 'pencil', tooltip: t('Edit'), onClick: formDialog.showEdit },\n { icon: 'trash', tooltip: t('Delete'), onClick: setShowConfirmRemove }\n ]\n });\n\n return
\n {showConfirmRemove && setShowConfirmRemove(undefined)}\n message={`${t('Are you sure to delete the element ?')} ${showConfirmRemove.name}`}\n rejectLabel={t('Cancel')}\n acceptLabel={t('Delete')}\n reject={() => setShowConfirmRemove(undefined)}\n accept={() => removeActivity(showConfirmRemove.id, showConfirmRemove.workId)} />}\n\n {formDialog.render((data: IActivityType) =>\n )}\n\n {dataTable()}\n\n
\n {error && }\n \n \n
\n
\n\n}","import * as React from 'react';\n\nimport { INotification, ILegalForm } from '@models';\nimport {\n classNames,\n InputText,\n NotificationsBox,\n useForm,\n useTranslation,\n ValidationBuilder,\n} from '@components';\n\nimport './WorkForm.css';\nimport { IWorkerType } from '@models/resources';\n\nexport interface IProps {\n data?: ILegalForm;\n workId: number;\n footer?: any;\n notifications: INotification[];\n onChange?: Function;\n onSubmit: Function;\n workerTypes: IWorkerType[];\n}\n\nexport const validateLegalForm = (data: ILegalForm) => {\n return ValidationBuilder.create(data)\n .notEmpty('name')\n .build();\n}\n\nexport const isValid = (data: ILegalForm) => {\n return Object.keys(validateLegalForm(data)).length == 0;\n}\n\nexport interface IWorkerTypeWithSelected extends ILegalForm {\n workerTypesReal: number[];\n};\n\nexport function LegalFormForm(props: IProps) {\n const { t } = useTranslation();\n\n const form = useForm({\n initialValues: {\n id: props.data?.id ?? 0,\n name: props.data?.name ?? '',\n workId: props.workId,\n workerTypesReal: props.data?.workerTypes?.map(wt => wt.workerType.id) ?? [],\n hideContractorProperties: props.data?.hideContractorProperties ?? false,\n },\n validate: validateLegalForm,\n onSubmit: () => {\n const data = getLegalForm();\n props.onSubmit(data);\n return { ok: true };\n },\n onChange: props.onChange,\n });\n\n const getLegalForm = () => {\n return {\n id: props.data?.id ?? 0,\n name: form.values.name,\n workId: props.workId,\n workerTypes: props.workerTypes.filter(wt => form.values.workerTypesReal.includes(wt.id)).map(wt => ({\n workerTypeId: wt.id,\n })),\n hideContractorProperties: form.values.hideContractorProperties,\n }\n }\n\n return
\n
\n
\n {form.floatField('name', t('Name'), () =>\n )}\n\n {form.multiselect('workerTypesReal', props.workerTypes, true)}\n
\n {form.checkBox('hideContractorProperties')}\n \n
\n
\n
\n {form.errorBox()}\n \n
\n {props.footer != undefined && props.footer}\n
\n
\n}","import * as React from 'react';\n\nimport {\n ConfirmDialog, Message, useDataTable, useFormDialog, useLoading, useTranslation\n} from '@components';\nimport { ILegalForm } from '@models/resources';\nimport * as Actions from '@store/actions/resources';\nimport { LegalFormForm } from './LegalFormForm';\n\nexport interface IProps {\n workId: number;\n}\n\nexport function AdminLegalForm(props: IProps) {\n const { t } = useTranslation();\n\n const [error, setError] = React.useState();\n const [legalForms, setLegalForms] = React.useState([]);\n const [workerTypes, setWorkerTypes] = React.useState([]);\n const loading = useLoading(true);\n const formDialog = useFormDialog({\n editTitle: t('Edit legal form'),\n addTitle: t('Add legal form'),\n });\n const [showConfirmRemove, setShowConfirmRemove] = React.useState();\n\n const initialize = loading.wrap(async () => {\n const res = await Actions.getLegalForms(props.workId);\n console.log(res.data);\n const workerTypes = await Actions.getWorkerTypes(props.workId);\n\n setLegalForms(res.data.work.legalForms);\n setWorkerTypes(workerTypes.data.work.workerTypes);\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const saveLegalForm = loading.wrap(async (w: ILegalForm) => {\n await Actions.saveLegalForm(w);\n await initialize();\n\n formDialog.clear();\n });\n\n const removeLegalForm = loading.wrap(async (id: number, workId: number) => {\n setError(undefined);\n\n workId = props.workId;\n await Actions.removeLegalForm(id, workId);\n await initialize();\n\n formDialog.clear();\n });\n\n const dataTable = useDataTable({\n data: legalForms,\n loading,\n className: 'e',\n columns: [\n { field: 'id', className: 'td-sm' },\n 'name',\n { field: 'workerTypes', render: (w: ILegalForm) => w.workerTypes?.map(wt => wt.workerType.name).join(', '), title: t('Worker types') },\n {\n field: 'hideContractorProperties', title: t('hideContractorProperties'), render: (l: ILegalForm) => {\n if (l.hideContractorProperties) {\n return
\n \n
\n }\n return
\n \n
\n }\n }\n ],\n actions: [\n { icon: 'pencil', tooltip: t('Edit'), onClick: formDialog.showEdit },\n { icon: 'trash', tooltip: t('Delete'), onClick: setShowConfirmRemove }\n ]\n });\n\n return
\n {showConfirmRemove && setShowConfirmRemove(undefined)}\n message={`${t('Are you sure to delete the element ?')} ${showConfirmRemove.name}`}\n rejectLabel={t('Cancel')}\n acceptLabel={t('Delete')}\n reject={() => setShowConfirmRemove(undefined)}\n accept={() => removeLegalForm(showConfirmRemove.id, showConfirmRemove.workId)} />}\n\n {formDialog.render((data: ILegalForm) =>\n )}\n\n {dataTable()}\n\n
\n {error && }\n \n \n
\n
\n}","import * as React from 'react';\n\nimport { INotification, IWorkFunction } from '@models';\nimport {\n classNames,\n InputText,\n NotificationsBox,\n useForm,\n useTranslation,\n ValidationBuilder,\n} from '@components';\n\nimport './WorkForm.css';\n\nexport interface IProps {\n data?: IWorkFunction;\n workId: number;\n footer?: any;\n notifications: INotification[];\n onChange?: Function;\n onSubmit: Function;\n}\n\nexport const validateWorkFunction = (data: IWorkFunction) => {\n return ValidationBuilder.create(data).notEmpty('name').build();\n}\n\nexport const isValid = (data: IWorkFunction) => {\n return Object.keys(validateWorkFunction(data)).length == 0;\n}\n\nexport function WorkFunctionForm(props: IProps){\n const { t } = useTranslation();\n\n const form = useForm({\n initialValues:{\n id: props.data?.id ?? 0,\n name: props.data?.name ?? '',\n workId: props.workId,\n },\n validate: validateWorkFunction,\n onSubmit: (data: IWorkFunction) => {\n props.onSubmit(data);\n return {ok: true};\n },\n onChange: props.onChange,\n });\n\n return
\n
\n
\n {form.floatField('name', t('Name'), () =>\n )}\n
\n
\n {form.errorBox()}\n \n
\n {props.footer != undefined && props.footer}\n
\n
\n}","import * as React from 'react';\n\nimport { Loading, Message, Select, useLoading, useNumberState, useTranslation } from '@components';\n\ntype IColumn = string | Function | { title?: string; field: string; body?: Function; };\n\nexport interface IProps {\n columns: IColumn[];\n error?: string;\n loading?: boolean;\n loadRelations: Function; // -> Promise|D[]\n loadTargets: Function;\n\n onAdd: Function;\n onRemove: Function;\n\n source: S;\n\n targetLabel?: string;\n targetValue?: string;\n}\n\nexport function ManageManyToManyRelations(props: IProps) {\n const { t } = useTranslation();\n\n const loading = useLoading(false);\n const [relations, setRelations] = React.useState([]);\n const [targets, setTargets] = React.useState([]);\n const [requestRemove, setRequestRemove] = React.useState();\n const selectedTarget = useNumberState();\n\n const initializeTargets = () => {\n const res = props.loadTargets();\n\n if (res.then) {\n res.then(setTargets);\n }\n else {\n setTargets(res);\n }\n }\n\n const initialize = () => {\n const res = props.loadRelations();\n\n if (res.then) {\n res.then(setRelations);\n }\n else {\n setRelations(res);\n }\n }\n\n React.useEffect(() => {\n initialize();\n initializeTargets();\n }, []);\n\n const doRemove = loading.wrap(async (e: any) => {\n e.preventDefault();\n e.stopPropagation();\n\n await props.onRemove(requestRemove);\n\n await initialize();\n\n setRequestRemove(undefined);\n });\n\n const renderHeader = (l: IColumn, i: number) =>\n \n {typeof(l) === 'string' && t(l)}\n {typeof(l) === 'object' && l.title && t(l.title)}\n ;\n\n const renderRow = (l: IColumn, i: number, d: any) => {\n return \n {typeof(l) === 'string' && {d[l]}}\n {typeof(l) === 'object' && l.body == undefined && d[l.field]}\n {typeof(l) === 'object' && l.body != undefined && l.body(d)}\n ;\n }\n\n const doAdd = loading.wrap(async (e: any) => {\n e.preventDefault();\n e.stopPropagation();\n\n await props.onAdd(\n targets.find((t: any)=> t[props.targetValue || 'id'] == selectedTarget.value));\n initialize();\n });\n\n return
\n {props.error &&\n }\n\n {loading.render()}\n\n {requestRemove &&
\n
{t('Are you sure to delete the relation?')}
\n\n
\n
\n \n \n
\n
}\n\n \n \n \n {props.columns.map((l, i) => renderHeader(l, i))}\n \n \n \n \n {relations.map((d, i) =>\n \n {props.columns.map((l, i) => renderRow(l, i, d))}\n \n )}\n \n \n \n \n \n \n
\n setRequestRemove(d)}>\n
\n\n
\n
\n
;\n}","import * as React from 'react';\n\nimport {\n ConfirmDialog, Message, useDataTable, useFormDialog, useLoading, useTranslation\n} from '@components';\nimport { IWorkFunction, IWorker } from '@models/resources';\nimport * as Actions from '@store/actions/resources';\nimport { WorkFunctionForm } from './WorkFunctionForm';\nimport { ManageManyToManyRelations } from '../common/ManageManyToManyRelations';\n\nexport interface IProps {\n workId: number;\n}\n\nexport function AdminWorkFunction(props: IProps){\n const { t } = useTranslation();\n\n const [error, setError] = React.useState();\n const [workFunctions, setWorkFunctions] = React.useState([]);\n const loading = useLoading(true);\n\n const formDialog = useFormDialog({\n editTitle: t('Edit work function'),\n addTitle: t('Add work function'),\n });\n // workers\n const workersDialog = useFormDialog({\n editTitle:t('Work function workers')\n });\n\n const [showConfirmRemove, setShowConfirmRemove] = React.useState();\n\n const initialize = loading.wrap(async () => {\n const res = await Actions.getWorkFunctions(props.workId);\n\n setWorkFunctions(res.data.work.work_functions);\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const saveWorkFunction = loading.wrap(async (w: IWorkFunction) => {\n await Actions.saveWorkFunction(w);\n await initialize();\n\n formDialog.clear();\n });\n\n const removeWorkFunction = loading.wrap(async (id: number, workId: number) => {\n setError(undefined);\n\n workId = props.workId;\n await Actions.removeWorkFunction(id, workId);\n await initialize();\n\n formDialog.clear();\n });\n\n const dataTable = useDataTable({\n data: workFunctions,\n className: 'e',\n loading,\n columns: [{field:'id', className:'td-sm'}, 'name'],\n actions: [\n {icon: 'sitemap', tooltip: t('Edit'), onClick: workersDialog.showEdit},\n {icon: 'pencil', tooltip: t('Edit'), onClick: formDialog.showEdit},\n {icon: 'trash', tooltip: t('Delete'), onClick: setShowConfirmRemove}\n ]\n });\n\n // add Worker\n const addWorkFunctionHasWorker = async (worker: IWorker, workFunction: IWorkFunction) => {\n loading.start('workers');\n\n const resp = await Actions.saveWorkFunctionHasWorker(props.workId, workFunction.id, worker.id);\n if (resp.hasValue) {\n workersDialog.clear();\n }\n else{\n workersDialog.setEditError(\n t('Cannot add worker relation'));\n }\n\n loading.stop();\n }\n\n // remove Worker\n const removeWorkFunctionHasWorker = async (worker: IWorker, workFunction: IWorkFunction) => {\n loading.start('workers');\n\n const resp = await Actions.removeWorkFunctionHasWorker(props.workId, workFunction.id, worker.id);\n if (!resp.hasValue){\n workersDialog.setEditError(\n t('Cannot remove worker relation'));\n }\n\n loading.stop();\n }\n\n return
\n {showConfirmRemove && setShowConfirmRemove(undefined)}\n message={`${t('Are you sure to delete the element ?')} ${showConfirmRemove.name}`}\n rejectLabel={t('Cancel')}\n acceptLabel={t('Delete')}\n reject={() => setShowConfirmRemove(undefined)}\n accept={() => removeWorkFunction(showConfirmRemove.id, showConfirmRemove.workId)} />}\n\n {workersDialog.render((workFunction: IWorkFunction, {error}: {error:string}) =>\n addWorkFunctionHasWorker(d, workFunction)}\n onRemove={(d: IWorker) => removeWorkFunctionHasWorker(d, workFunction)}\n loadTargets={async () => {\n const resp = await Actions.getWorkers(props.workId);\n return resp.data.work.workers;\n }}\n loadRelations={() => Actions.getWorkFunctionWorkers(props.workId, workFunction.id)} />)}\n\n {formDialog.render((data: IWorkFunction) =>\n )}\n\n {dataTable()}\n\n
\n {error && }\n \n \n
\n
\n}","import * as React from 'react';\n\nimport { Portal, useTranslation } from '@components';\nimport { redirectTo } from '@utils';\nimport { IWork } from '@models';\n\nexport interface IProps {\n children?: any;\n work: IWork;\n}\n\nexport function WorkToolbar({children, work}: IProps) {\n const { t } = useTranslation();\n\n return \n
\n {children}\n\n redirectTo(`/admin/work/${work.id}/events`)}\n className='pointer fas fa-code'/>\n\n redirectTo(`/admin/work/${work.id}/modules`)}\n className='pointer fas fa-box'/>\n\n redirectTo(`/admin/work/${work.id}/jobs`)}\n className='pointer'>J\n\n redirectTo(`/admin/work/${work.id}/contractors`)}\n className='pointer'>C\n\n redirectTo(`/admin/work/${work.id}/machineries`)}\n className='pointer'>M\n\n redirectTo(`/admin/work/${work.id}/workers`)}\n className='pointer'>T\n\n redirectTo(`/admin/work/${work.id}/validations`)}>\n\n redirectTo(`/admin/work/${work.id}/notifications`)}\n className='pointer fas fa-comment-alt'>\n redirectTo(`/admin/work/${work.id}/users`)}\n className='pi pi-users pointer' />\n redirectTo(`/admin/work/${work.id}/departments`)}\n className='pointer'>D\n redirectTo(`/admin/work/${work.id}/requirements`)}\n className='pointer'>R\n redirectTo(`/admin/work/${work.id}/configuration`)}\n className='pointer'>P\n redirectTo(`/admin/work/${work.id}/permissions`)}\n className='pi pi-lock pointer'>\n
\n \n}","import * as React from 'react';\n\nimport { INotification, IMachineryType } from '@models';\nimport {\n classNames,\n InputText,\n NotificationsBox,\n useForm,\n useTranslation,\n ValidationBuilder,\n} from '@components';\n\nimport './WorkForm.css';\n\nexport interface IProps {\n data?: IMachineryType;\n workId: number;\n footer?: any;\n notifications: INotification[];\n onChange?: Function;\n onSubmit: Function;\n}\n\nexport const validateMachinery = (data: IMachineryType) => {\n return ValidationBuilder.create(data).notEmpty('name').build();\n}\n\nexport const isValid = (data: IMachineryType) => {\n return Object.keys(validateMachinery(data)).length == 0;\n}\n\nexport function MachineryTypeForm(props: IProps) {\n const { t } = useTranslation();\n\n const form = useForm({\n initialValues: {\n id: props.data?.id ?? 0,\n name: props.data?.name ?? '',\n workId: props.workId,\n },\n validate: validateMachinery,\n onSubmit: (data: IMachineryType) => {\n props.onSubmit(data);\n return {ok: true};\n },\n onChange: props.onChange,\n });\n\n return
\n
\n
\n {form.floatField('name', t('Name'), () =>\n \n )}\n
\n
\n {form.errorBox()}\n \n
\n
\n\n
\n \n props.onSubmit}>\n {t('Add')}\n \n
\n \n
\n}","import * as React from 'react';\n\nimport { IMachinerySubType } from '@models';\nimport {\n classNames,\n InputText,\n useForm,\n useTranslation,\n ValidationBuilder,\n} from '@components';\n\nimport './WorkForm.css';\n\nexport interface IProps {\n data?: IMachinerySubType;\n parentId: number;\n onChange?: Function;\n onSubmit: Function;\n workId: number;\n}\n\nexport const validateMachinerySubType = (data: IMachinerySubType) => {\n return ValidationBuilder.create(data).notEmpty('name').build();\n}\n\nexport const isValid = (data: IMachinerySubType) => {\n return Object.keys(validateMachinerySubType(data)).length == 0;\n}\n\nexport function MachinerySubTypeForm(props: IProps) {\n const { t } = useTranslation();\n\n const form = useForm({\n initialValues: {\n id: props.data?.id ?? 0,\n name: props.data?.name ?? '',\n parentId: props.parentId,\n },\n validate: validateMachinerySubType,\n onSubmit: (data: IMachinerySubType) => {\n props.onSubmit(data);\n return {ok: true};\n },\n onChange: props.onChange,\n });\n\n return
\n
\n
\n {form.floatField('name', t('Name'), () =>\n \n )}\n
\n
\n {form.errorBox()}\n
\n
\n\n
\n \n props.onSubmit}>\n {t('Add')}\n \n
\n \n
\n}","import * as React from 'react';\n\nimport {\n Message, useConfirm, useDialogs, useFormDialog, useLoading, useTranslation, useTreeTable\n} from '@components';\nimport { IMachineryType, IMachinerySubType } from '@models/resources';\nimport * as Actions from '@store/actions/resources';\nimport { MachineryTypeForm } from './MachineryTypeForm';\nimport { MachinerySubTypeForm } from './MachinerySubTypeForm';\n\nexport interface IProps {\n workId: number;\n}\n\nexport function AdminMachineryType(props: IProps){\n const { t } = useTranslation();\n\n const [error, setError] = React.useState();\n const [machineryTypes, setMachineryTypes] = React.useState([]);\n const loading = useLoading(true);\n const dialogs = useDialogs();\n\n const confirmRemove = useConfirm({\n message: t('Are you sure to delete the element ?'),\n accept: (obj: any) => {\n if (obj.__typename === 'MachineryType') {\n removeMachineryType(props.workId, obj.id)\n } else {\n removeMachinerySubType(props.workId, obj.parentId, obj.id)\n }\n }\n });\n\n const initialize = loading.wrap(async() => {\n const res = await Actions.getMachineryTypes(props.workId);\n\n setMachineryTypes(res.data.work.machineryTypes);\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const saveMachineryType = loading.wrap(async (m: IMachineryType) => {\n await Actions.saveMachineryType(m);\n await initialize();\n\n dialogs.clear();\n });\n\n const removeMachineryType = loading.wrap(async (workId: number, id: number) => {\n setError(undefined);\n\n workId = props.workId;\n\n await Actions.removeMachineryType(workId, id);\n await initialize();\n });\n\n // MACHINERY SUBTYPE ACTIONS\n const saveMachinerySubType = loading.wrap(async (m: IMachinerySubType) => {\n await Actions.saveMachinerySubType(props.workId, m);\n await initialize();\n\n dialogs.clear();\n });\n\n const removeMachinerySubType = loading.wrap(async (workId: number, parentId: number, id: number) => {\n setError(undefined);\n\n workId = props.workId;\n\n await Actions.removeMachinerySubType(workId, parentId, id);\n await initialize();\n });\n\n const dataTable = useTreeTable({\n data: machineryTypes,\n childrenProperty: 'subTypes',\n columns: [\n { title: 'Name', field: 'name', className: ' e' },\n ],\n actions: [\n { icon: 'fa fa-plus', headerClassName: 'td-sm', onClick: (r: any) => dialogs.show('add-subtype', r), disabled: (r: any) => r.__typename != 'MachineryType'},\n {\n icon: 'pencil',\n tooltip: t('Edit'),\n headerClassName: 'td-sm',\n onClick: (r: any) => {\n if (r.__typename === 'MachineryType') {\n dialogs.show('edit-machinery-type', r);\n }\n else {\n dialogs.show('edit-machinery-subtype', r);\n }\n }\n },\n {\n icon: 'trash', tooltip: t('Delete'), onClick: confirmRemove, headerClassName: 'td-sm',\n }\n ]\n });\n\n return
\n {dialogs.render('add-subtype', { title: t('Add machinery subtype') }, (mt: IMachineryType) => \n \n )}\n\n {dialogs.render('edit-machinery-subtype', {title: t('Edit machinery subtype')}, (data: IMachinerySubType) =>\n )}\n\n {dialogs.render('edit-machinery-type', {title: t('Edit machinery type')}, (data: IMachineryType) =>\n )}\n {dialogs.render('add-machinery-type', { title: t('Add machinery type') }, (data: IMachineryType) =>\n )\n }\n\n
\n {dataTable()}\n
\n\n
\n {error && }\n \n \n
\n
\n}","import * as React from 'react';\n\nimport { INotification } from '@models';\nimport { IWorkerDocumentType } from '@models/resources';\nimport {\n classNames,\n InputText,\n NotificationsBox,\n useForm,\n useTranslation,\n ValidationBuilder,\n} from '@components';\n\nimport './WorkForm.css';\n\nexport interface IProps {\n data?: IWorkerDocumentType;\n workId: number;\n footer?: any;\n notifications: INotification[];\n onChange?: Function;\n onSubmit: Function;\n}\n\nexport const validateWorkerDocumentType = (data: IWorkerDocumentType) => {\n return ValidationBuilder.create(data).notEmpty('name').build();\n}\n\nexport const isValid = (data: IWorkerDocumentType) => {\n return Object.keys(validateWorkerDocumentType(data)).length == 0;\n}\n\nexport function WorkerDocumentTypeForm(props: IProps) {\n const { t } = useTranslation();\n\n const form = useForm({\n initialValues: {\n id: props.data?.id ?? 0,\n name: props.data?.name ?? '',\n workId: props.workId,\n },\n validate: validateWorkerDocumentType,\n onSubmit: (data: IWorkerDocumentType) => {\n props.onSubmit(data);\n return {ok: true};\n },\n onChange: props.onChange,\n });\n\n return
\n
\n
\n {form.floatField('name', t('Name'), () =>\n \n )}\n
\n
\n {form.errorBox()}\n \n
\n {props.footer != undefined && props.footer}\n
\n
\n}","import * as React from 'react';\n\nimport {\n ConfirmDialog, Message, useDataTable, useFormDialog, useLoading, useMessage, useTranslation\n} from '@components';\nimport { IWorkerDocumentType } from '@models/resources';\nimport * as Actions from '@store/actions/resources';\nimport { WorkerDocumentTypeForm } from './WorkerDocumentTypeForm';\n\nexport interface IProps {\n workId: number;\n}\n\nexport function AdminWorkerDoucmentType(props: IProps) {\n const { t } = useTranslation();\n const msg = useMessage();\n\n const [error, setError] = React.useState();\n const [workerDocumentTypes, setWorkerDocumentTypes] = React.useState([]);\n const loading = useLoading(true);\n const formDialog = useFormDialog({\n editTitle: t('Edit worker document type'),\n addTitle: t('Add worker document type'),\n });\n const [showConfirmRemove, setShowConfirmRemove] = React.useState();\n\n const initialize = loading.wrap(async() => {\n const res = await Actions.getWorkerDocumentTypes(props.workId);\n\n setWorkerDocumentTypes(res.data.work.workerDocumentTypes);\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const saveWorkerDocumentType = loading.wrap(async (w: IWorkerDocumentType) => {\n const res = await Actions.saveWorkerDocumentType(w);\n msg.set(res);\n await initialize();\n\n formDialog.clear();\n });\n\n const removeWorkerDocumentType = loading.wrap(async (workId: number, id: number) => {\n setError(undefined);\n\n workId = props.workId;\n const res = await Actions.removeWorkerDocumentType(workId, id);\n msg.set(res);\n await initialize();\n\n formDialog.clear();\n });\n\n const dataTable = useDataTable({\n data: workerDocumentTypes,\n className: 'e',\n loading,\n columns: [{field: 'id', className:'td-sm'}, 'name'],\n actions: [\n { icon: 'pencil', tooltip: t('Edit'), onClick: formDialog.showEdit},\n { icon: 'trash', tooltip: t('Delete'), onClick: setShowConfirmRemove}\n ]\n });\n\n return
\n {showConfirmRemove && setShowConfirmRemove(undefined)}\n message={`${t('Are you sure to delete the element ?')} ${showConfirmRemove.name}`}\n rejectLabel={t('Cancel')}\n acceptLabel={t('Delete')}\n reject={() => setShowConfirmRemove(undefined)}\n accept={() => removeWorkerDocumentType(showConfirmRemove.workId, showConfirmRemove.id)} />}\n\n {formDialog.render((data: IWorkerDocumentType) =>\n )}\n\n {dataTable()}\n
\n {error && }\n {msg.renderIfError()}\n \n \n
\n
\n}","import * as React from 'react';\n\nimport { INotification } from '@models';\nimport { IWorkerType } from '@models/resources';\nimport {\n classNames,\n InputText,\n NotificationsBox,\n useForm,\n useTranslation,\n ValidationBuilder,\n} from '@components';\n\nimport './WorkForm.css';\n\nexport interface IProps {\n data?: IWorkerType;\n workId: number;\n footer?: any;\n notifications: INotification[];\n onChange?: Function;\n onSubmit: Function;\n}\n\nexport const validateWorkerType = (data: IWorkerType) => {\n return ValidationBuilder.create(data).notEmpty('name').build();\n}\n\nexport const isValid = (data: IWorkerType) => {\n return Object.keys(validateWorkerType(data)).length == 0;\n}\n\nexport function WorkerTypeForm(props: IProps) {\n const { t } = useTranslation();\n\n const form = useForm({\n initialValues: {\n id: props.data?.id ?? 0,\n name: props.data?.name ?? '',\n workId: props.workId,\n },\n validate: validateWorkerType,\n onSubmit: (data: IWorkerType) => {\n props.onSubmit(data);\n return {ok: true};\n },\n onChange: props.onChange,\n });\n\n return
\n
\n
\n {form.floatField('name', t('Name'), () =>\n \n )}\n
\n
\n {form.errorBox()}\n \n
\n {props.footer != undefined && props.footer}\n
\n
\n}","import * as React from 'react';\n\nimport {\n ConfirmDialog, Message, useDataTable, useFormDialog, useLoading, useTranslation\n} from '@components';\nimport { IWorkerType } from '@models/resources';\nimport * as Actions from '@store/actions/resources';\nimport { WorkerTypeForm } from './WorkerTypeForm';\n\nexport interface IProps {\n workId: number;\n}\n\nexport function AdminWorkerType(props: IProps){\n const { t } = useTranslation();\n\n const [error, setError] = React.useState();\n const [workerTypes, setWorkerTypes] = React.useState([]);\n const loading = useLoading(true);\n const formDialog = useFormDialog({\n editTitle: t('Edit worker type'),\n addTitle: t('Add worker type'),\n });\n const [showConfirmRemove, setShowConfirmRemove] = React.useState();\n\n const initialize = loading.wrap(async() => {\n const res = await Actions.getWorkerTypes(props.workId);\n\n setWorkerTypes(res.data.work.workerTypes);\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const saveWorkerType = loading.wrap(async (w: IWorkerType) => {\n await Actions.saveWorkerType(w);\n await initialize();\n\n formDialog.clear();\n });\n\n const removeWorkerType = loading.wrap(async (workId: number, id: number) => {\n setError(undefined);\n\n workId = props.workId;\n console.log(workId, id);\n await Actions.removeWorkerType(workId, id);\n await initialize();\n\n formDialog.clear();\n })\n\n const dataTable = useDataTable({\n data: workerTypes,\n className: 'e',\n loading,\n columns: [{field: 'id', className:'td-sm'}, 'name'],\n actions: [\n { icon: 'pencil', tooltip: t('Edit'), onClick: formDialog.showEdit},\n { icon: 'trash', tooltip: t('Delete'), onClick: setShowConfirmRemove}\n ]\n });\n\n return
\n {showConfirmRemove && setShowConfirmRemove(undefined)}\n message={`${t('Are you sure to delete the element ?')} ${showConfirmRemove.name}`}\n rejectLabel={t('Cancel')}\n acceptLabel={t('Delete')}\n reject={() => setShowConfirmRemove(undefined)}\n accept={() => removeWorkerType(showConfirmRemove.workId, showConfirmRemove.id)} />}\n\n {formDialog.render((data: IWorkerType) =>\n )}\n\n {dataTable()}\n
\n {error && }\n \n \n
\n
\n}","import * as React from 'react';\n\nimport { AdminWorkWorkspaces } from './AdminWorkWorkspaces';\nimport { AdminWorkShifts } from './AdminWorkShifts';\nimport { Card, Dialog, Loading, onNotification, Portal, useTranslation } from '@components';\nimport { IConstants, ICountry, IMachineryType, INotification, IWork, NotificationType } from '@models';\nimport * as Actions from '@store/actions/admin';\nimport { WorkForm } from './WorkForm';\n\nimport './EditWork.scss';\nimport AdminWorkUsersContainer from '@containers/admin/AdminWorkUsersContainer';\nimport { AdminWorkI18NResources } from './AdminWorkI18NResources';\nimport { AdminActivityType } from './AdminActivityType';\nimport { AdminLegalForm } from './AdminLegalForm';\nimport { AdminWorkFunction } from './AdminWorkFunction';\nimport { WorkToolbar } from './WorkToolbar';\nimport { AdminMachineryType } from './AdminMachineryType';\nimport { AdminWorkerDoucmentType } from './AdminWorkerDocumentType';\nimport { AdminWorkerType } from './AdminWorkerType';\n\nexport interface IProps {\n constants: IConstants;\n countries: ICountry[];\n loadWorks: Function;\n machineryTypes: IMachineryType[];\n notifications: INotification[];\n work: IWork;\n}\n\nconst prepareWork = (data: IWork) => {\n return {\n id: data.id,\n name: data.name,\n description: data.description,\n countryId: data.countryId,\n } as IWork;\n}\n\nexport default function EditWork(props: IProps) {\n const [loading, setLoading] = React.useState(false);\n const [showEditUsers, setShowEditUsers] = React.useState();\n const [work, setWork] = React.useState(props.work);\n\n const { t } = useTranslation();\n\n onNotification({type: NotificationType.SUCCESS, ctx: 'adminworkusers'}, props.notifications, () => {\n setShowEditUsers(undefined);\n });\n\n const saveWork = async (data: IWork) => {\n setLoading(true);\n await Actions.saveWork(prepareWork(data));\n props.loadWorks();\n\n setLoading(false);\n }\n\n const WorkFormFooter = (p: any) => {\n return
\n \n {loading && }\n \n
\n }\n\n return (
\n \n \n
\n setWork(d)}\n onSubmit={saveWork}\n footer={} />\n
\n \n \n \n \n \n \n \n \n \n {/* \n \n */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {showEditUsers && setShowEditUsers(undefined)}>\n setShowEditUsers(undefined)}\n work={showEditUsers} />\n }\n
);\n}","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as Admin from '../../store/admin';\nimport * as App from '../../store/app';\n\nimport EditWork, { IProps } from '../../components/admin/EditWork';\nimport { NotificationType } from '../../models';\n\ntype Props =\n Admin.IAdminState &\n App.IAppState &\n IProps;\n\nexport default connect(\n (state: ApplicationState) => ({\n constants: state.constants,\n countries: state.constants.countries,\n users: state.admin.users,\n machineryTypes: state.user.machineryTypes,\n notifications: state.notifications.notifications\n .filter(n => n.ctx === 'adminwork' || n.ctx === 'adminworkusers'),\n loadingNotifications: state.notifications.notifications\n .filter(n => n.ctx === 'adminwork' && n.type === NotificationType.LOADING),\n loading: state.app.loading,\n loadingMessage: state.app.loadingMessage\n }),\n Admin.actionCreators,\n)(EditWork as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as Admin from '../../store/admin';\nimport * as App from '../../store/app';\n\nimport AdminWorks, { IProps } from '../../components/admin/AdminWorks';\nimport { NotificationType } from '../../models';\n\ntype Props =\n Admin.IAdminState &\n App.IAppState &\n IProps;\n\nexport default connect(\n (state: ApplicationState) => ({\n countries: state.constants.countries,\n constants: state.constants,\n users: state.admin.users,\n works: state.admin.works,\n notifications: state.notifications.notifications\n .filter(n => n.ctx === 'adminworks'),\n loadingNotifications: state.notifications.notifications\n .filter(n => n.ctx === 'adminworks' && n.type === NotificationType.LOADING),\n loading: state.app.loading,\n loadingMessage: state.app.loadingMessage\n }),\n Admin.actionCreators,\n)(AdminWorks as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport {\n ButtonSet, Column, DataTable, Dialog, Loading, LoadingBox,\n onNotification, useMemoized, useTranslation,\n} from '@components';\nimport { IConstants, ICountry, INotification, IUserIdentity, IWork, NotificationType } from '@models';\nimport AdminWorkUsersContainer from '@containers/admin/AdminWorkUsersContainer';\nimport { WorkForm, isValid } from './WorkForm';\nimport { redirectTo } from '@utils';\n\nexport interface IProps {\n constants: IConstants;\n countries: ICountry[];\n loading: boolean;\n loadingMessage?: string;\n loadingNotifications: INotification[];\n notifications: INotification[];\n selectWork: Function;\n saveWork: Function;\n users: IUserIdentity[];\n works: IWork[];\n}\n\nexport default function AdminWorks(props: IProps) {\n const { t } = useTranslation();\n const [showEdit, setShowEdit] = React.useState();\n const [showEditUsers, setShowEditUsers] = React.useState();\n const [showAdd, setShowAdd] = React.useState(false);\n const [addData, setAddData] = React.useState({\n id: 0,\n name: '',\n users: [],\n countryId: 0,\n workspaces: [],\n workShifts: [],\n permissions: [],\n settings: \"\",\n legalForms: [],\n });\n\n const loading = props.loadingNotifications.length > 0;\n\n const countryName = useMemoized((i: number) =>\n props.countries.find(c => c.id == i)?.name);\n\n const AddFooter = () => {\n return
\n \n \n setShowAdd(false)}>\n {t('Cancel')}\n \n \n {loading && }\n {t('Save')}\n \n \n
\n }\n\n onNotification({ ctx: 'adminworks', type: NotificationType.SUCCESS },\n props.notifications,\n (n: INotification) => {\n if (n.action === 'edit') {\n setShowEdit(undefined);\n }\n else if (n.action === 'add') {\n setShowAdd(false);\n }\n });\n\n const EditFooter = () => {\n return
\n \n \n setShowEdit(undefined)}>\n {t('Cancel')}\n \n \n {loading && }\n {t('Save')}\n \n \n
\n }\n\n const Header = () => {\n return
\n \n setShowAdd(true)}>\n \n {t('Add work')}\n \n
\n }\n\n const cancelEvent = (e: any | undefined) => {\n e?.preventDefault();\n e?.stopPropagation();\n }\n\n const configureWork = (workId: number, e: any | undefined = undefined) => {\n props.selectWork(workId, false);\n redirectTo(`/admin/work/${workId}`);\n e?.preventDefault();\n e?.stopPropagation();\n }\n\n return
\n {loading && }\n {props.loading && }\n\n ({ 'pointer': true})}\n rowHover\n onRowClick={e => configureWork(e.data.id)}\n header={
}\n >\n \n \n \n countryName(w.countryId)} />\n { setShowEdit(u); cancelEvent(e); }}\n className='pi pi-pencil pointer' />} />\n configureWork(u.id, e)}\n className='pi pi-cog pointer' />} />\n { setShowEditUsers(u); cancelEvent(e); }}\n className='pi pi-users pointer' />} />\n \n\n {showAdd && setShowAdd(false)}>\n }\n countries={props.countries}\n notifications={props.notifications.filter(a => a.action === 'add')}\n onChange={setAddData}\n onSubmit={(data: IWork) => props.saveWork(data)} />\n }\n\n {showEdit && setShowEdit(undefined)}>\n }\n countries={props.countries}\n notifications={props.notifications.filter(a => a.action === 'edit')}\n onChange={setShowEdit}\n onSubmit={(data: IWork) => props.saveWork(data)} />\n }\n\n {showEditUsers && setShowEditUsers(undefined)}>\n setShowEditUsers(undefined)}\n work={showEditUsers} />\n }\n
\n}\n","import * as React from 'react';\n\nimport './GraphQlUi.css';\n\nexport interface IProps {\n src: string;\n}\n\nexport default function GraphQlUi(props: IProps) {\n return \n}","import * as React from 'react';\n\nimport { IDepartment } from '@models';\nimport {\n Chips,\n G,\n ValidationBuilder,\n useForm,\n useTranslation,\n useLoading,\n} from '@components';\n\nexport interface IProps {\n data?: IDepartment;\n saveDepartment: Function;\n saveDepartmentPolicy: Function;\n removeDepartmentPolicy: Function;\n workId: number;\n onCancel?: Function;\n onSaved: Function;\n}\n\nexport function DepartmentForm(props: IProps){\n const { t } = useTranslation();\n\n const loading = useLoading();\n const [policies, setPolicies] = React.useState(props.data?.policies ?? []);\n\n const form = useForm({\n initialValues: {\n id: props.data?.id ?? 0,\n code: props.data?.code,\n name: props.data?.name ?? '',\n description: props.data?.description ?? '',\n isOblique: props.data?.isOblique ?? false,\n notifyJobCreation: props.data?.notifyJobCreation ?? false,\n workId: props.workId,\n },\n validateOnMount: true,\n validate: (data: IDepartment) => {\n return ValidationBuilder.create(data).notEmpty('name').build();\n },\n });\n\n const doSave = loading.wrap(async () => {\n await props.saveDepartment(props.workId, form.values);\n props.onSaved();\n });\n\n const onAddPoliciy = loading.wrap(async (e: any) => {\n await props.saveDepartmentPolicy(props.workId, props.data?.id ?? 0, e.value);\n setPolicies([...policies, e.value]);\n });\n\n const onRemovePolicy = loading.wrap(async (e: any) => {\n const value = e.value[0];\n await props.removeDepartmentPolicy(props.workId, props.data?.id ?? 0, value);\n setPolicies(policies.filter(p => p != value));\n });\n\n return
\n
\n \n {form.input('code', { autoFocus: true })}\n \n \n {form.input('name', { autoFocus: true })}\n \n \n {form.input('description')}\n \n \n {form.checkBox('isOblique', { containerClassName: 'right'})}\n \n \n {form.checkBox('notifyJobCreation', { containerClassName: 'right' })}\n \n {(props.data?.id ?? 0) > 0 && \n
\n \n
\n
}\n
\n\n
\n \n \n
\n
\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as Admin from '../../store/admin';\n\nimport { AdminWorkDepartments } from '@components/admin/AdminWorkDepartments';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...Admin.plainActions,\n }),\n Admin.actionCreators,\n)(AdminWorkDepartments as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { IWork, IDepartment, IOption, IWorker } from '@models';\nimport { WorkToolbar } from './WorkToolbar';\nimport { BreadcrumbItem, useDataTable, useDialogs, useFormDialog, useLoading, useRemoteData, useTranslation, useSearchFilters, useInputSearch, useKeyListener, R } from '@components';\nimport { DepartmentForm } from './DepartmentForm';\nimport * as Actions from '@store/actions/resources';\nimport { ManageManyToManyRelations } from '@components/common/ManageManyToManyRelations';\n\ntype GetDepartmentsF = (workId: number) => Promise;\ntype SaveDepartmentF = (workId: number, data: IDepartment) => Promise>;\n\nexport interface IProps {\n getWorkDepartments: GetDepartmentsF;\n saveDepartment: SaveDepartmentF;\n work: IWork;\n}\n\nexport function AdminWorkDepartments(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n\n const dialogs = useDialogs();\n\n const [searchFilter, setSearchFilter] = React.useState('');\n const [departments, setDepartments] = React.useState([]);\n const [filter, setFilter] = React.useState('');\n\n const workersDialog = useFormDialog({\n editTitle: t('Workers'),\n });\n\n const data = useRemoteData(\n props.getWorkDepartments,\n {\n parameters: [props.work.id]\n });\n\n React.useEffect(() => {\n initialize();\n }, [data.value]);\n\n const userFilters = useSearchFilters({\n workId: props.work.id,\n name: 'admin.departments',\n references: {\n departments: data.value,\n },\n persist: false,\n });\n\n React.useEffect(() => {\n initialize();\n }, [userFilters.filters.isOblique, userFilters.filters.isNotOblique]);\n\n React.useEffect(() => {\n if(userFilters.filters.departments){\n const result = data.value?.filter(x => userFilters.filters.departments.includes(x.id));\n setDepartments(result);\n }else{\n userFilters.setFilter('departments', null);\n initialize();\n }\n }, [userFilters.filters.departments]);\n\n const initialize = () => {\n let result : IDepartment[] = data.value;\n if(userFilters.filters && userFilters.filters.isOblique == true && userFilters.filters.isNotOblique == true){\n doStringSearch(result);\n }else if(userFilters.filters && userFilters.filters.isOblique == true){\n userFilters.filters.isNotOblique && userFilters.setFilter('isNotOblique', false);\n setFilter('isOblique');\n result = data.value?.filter(x => x.isOblique == true);\n doStringSearch(result);\n }else if(userFilters.filters && userFilters.filters.isNotOblique == true){\n userFilters.filters.isOblique && userFilters.setFilter('isOblique', false);\n setFilter('isNotOblique');\n result = data.value?.filter(x => x.isOblique == false);\n doStringSearch(result);\n }else if(userFilters.filters && userFilters.filters.isOblique == false && userFilters.filters.isNotOblique == false){\n if(filter == 'isOblique'){\n setFilter('');\n userFilters.setFilter('isNotOblique', true);\n }else if(filter == 'isNotOblique'){\n setFilter('');\n userFilters.setFilter('isOblique', true);\n }\n }\n }\n\n const doStringSearch = (departments: IDepartment[]) => {\n if (searchFilter != '') {\n const filtered = departments.filter(x => x.name.toLowerCase().includes(searchFilter.toLowerCase()));\n if (filtered) {\n setDepartments(filtered);\n }\n }\n else {\n setDepartments(departments);\n }\n };\n\n React.useEffect(() => {\n initialize();\n }, [searchFilter]);\n\n\n const dataTable = useDataTable({\n tableStyle: { width: '100%' },\n columns: [\n { field: 'id', className: 'td-md', sortKey: 'id' },\n { title:'Code', field: 'code', sortKey:'code' },\n {\n title:'name',\n field: 'name',\n sortKey: 'name',\n render: (d: IDepartment) => {d.name}\n },\n { title:'description', field: 'description', sortKey:'description' },\n {\n title: 'Policies',\n render: r => {\n const policies = (r.policies ?? []).join(', ');\n return {policies}\n },\n sortKey: 'policies',\n },\n { title: 'notifyJobCreation', field: 'notifyJobCreation', delegate: 'boolean', className: 'td-md center', sortKey: 'notifyJobCreation' },\n { title: 'IsOblique', field: 'isOblique', delegate: 'boolean', className: 'td-md center', sortKey: 'isOblique' }\n ],\n actions: [\n {\n icon: 'fas fa-people-carry',\n onClick: (d: IDepartment) => workersDialog.showEdit(d)\n },\n {\n icon: 'fa fa-edit',\n onClick: (d: IDepartment) => dialogs.show('edit', d)\n }\n ],\n className: 'fixed-header-t36 fixed-table',\n data: departments,\n });\n\n const onSaved = () => {\n dialogs.clear();\n data.query();\n }\n\n const searchCtrl = React.useRef();\n useKeyListener({\n key: 'f',\n keyCtrl: true,\n handle: () => {\n searchCtrl.current?.focus();\n },\n });\n\n const addDepartmentHasWorker = async (worker: IWorker, department: IDepartment) => {\n loading.start('workers');\n workersDialog.clearErrors();\n\n const resp = await Actions.saveDepartmentHasWorker(props.work.id, department.id, worker.id);\n if (resp.hasValue) {\n workersDialog.clearErrors();\n }\n else {\n workersDialog.setEditError(\n t('Cannot add worker relation') + ': ' + worker.name + ' ' + worker.surname);\n }\n\n loading.stop();\n }\n\n // remove Worker\n const removeDepartmentHasWorker = async (worker: IWorker, department: IDepartment) => {\n loading.start('workers');\n\n workersDialog.clearErrors();\n const resp = await Actions.removeDepartmentHasWorker(props.work.id, department.id, worker.id);\n if (!resp.hasValue) {\n workersDialog.setEditError(\n t('Cannot remove worker relation'));\n }\n\n loading.stop();\n }\n\n\n return
\n \n \n {data.renderLoading()}\n {loading.render()}\n \n \n {t('Add department')}\n \n \n\n {workersDialog.render((department: IDepartment, { error }: { error: string }) =>\n addDepartmentHasWorker(d, department)}\n onRemove={(d: IWorker) => removeDepartmentHasWorker(d, department)}\n loading={loading.isLoading('workers')}\n targetLabel='fullName'\n loadTargets={() => Actions.getWorkers(props.work.id, true)}\n loadRelations={() => Actions.getDepartmentWorkers(props.work.id, department.id)} />)}\n\n\n {dialogs.render(\n 'add',\n { title: t('Add department'), className: 'g pd' },\n (_: any) =>\n \n )}\n {dialogs.render(\n 'edit',\n { title: t('Edit department'), className: 'g pd' },\n (dep: IDepartment) =>\n \n )}\n\n
\n
\n
\n keyIsEnter(e) ? doSearch() : undefined}\n onChange={e => setSearchFilter(e.target.value)}\n // onBlur={_ => doSearch()}\n placeholder={t('Search')} />\n Ctrl+F\n \n
\n
\n
\n {dataTable()}\n
;\n}\n","import * as React from 'react';\n\nimport { INotification, IUserIdentity, IWork, IWorkPermission } from '@models';\nimport { commonPermissions } from '../../security';\nimport * as Expressions from '@utils/expressions';\nimport {\n classNames,\n InputText,\n InputTextarea,\n Message,\n MultiSelect,\n NotificationsBox,\n Select,\n TabPanel,\n TabView,\n useForm,\n useLoading,\n useTranslation,\n ValidationBuilder,\n} from '@components';\n\nimport './PermissionForm.scss';\nimport { IJob } from '../../../../../GStore.Modules/FrontEnd/GStore.WebApp/ClientApp/src/models';\n\nexport interface IProps {\n availableRoles: string[];\n users: IUserIdentity[];\n works: IWork[];\n data?: IWorkPermission;\n workId: number;\n footer?: any;\n notifications?: INotification[];\n onChange?: Function;\n onSubmit?: Function;\n getJobs?: Function;\n}\n\nexport const validatePermission = (data: IWorkPermission|undefined) => {\n return ValidationBuilder.create(data).notEmpty('action').build();\n}\n\nexport const isValid = (data: IWorkPermission|undefined) => {\n return Object.keys(validatePermission(data)).length == 0;\n}\n\nfunction TestExpression({expression, users, works, getJobs}: {\n expression: string, users: IUserIdentity[], works: IWork[], getJobs?: Function\n}) {\n const loading = useLoading(false);\n const { t } = useTranslation();\n\n const [error, setError] = React.useState();\n const [result, setResult] = React.useState();\n const [teUser, setTeUser] = React.useState();\n const [teWork, setTeWork] = React.useState();\n const [teJob, setTeJob] = React.useState();\n const [containsJob, setContainsJob] = React.useState(false);\n const [jobs, setJobs] = React.useState([]);\n\n\n React.useEffect(() => {\n setContainsJob(expression.includes('Job.'));\n }\n , [expression]);\n\n const initializeJobs = loading.wrap(async () => {\n const jobs = await getJobs!(teWork);\n\n setJobs(jobs.data.work.jobs);\n });\n\n React.useMemo(() => {\n if (getJobs && teWork != undefined && containsJob) {\n initializeJobs();\n }\n }, [teWork]);\n\n const testExpression = loading.wrap((e: any = null) => {\n setError(undefined);\n if (e) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n try {\n const work = works.find(w => w.id == teWork);\n const expr = Expressions.parse(expression);\n const r = Expressions.evaluate(expr, {\n identity: users.find(u => u.id == teUser),\n work,\n workId: work?.id,\n job: jobs.find(j => j.id == teJob),\n jobId: teJob,\n });\n if (expr) {\n setResult(r);\n }\n else {\n setError(t('Invalid expression'));\n }\n }\n catch (e) {\n setError((e as any).message);\n }\n });\n\n return
\n

{t('Test expression')}

\n\n
\n setTeUser(e.value)}\n options={users}\n optionLabel={'userName'}\n filter={true}\n optionValue={'id'} />\n setTeWork(e.value)}\n options={works}\n filter={true}\n optionLabel={'name'}\n optionValue={'id'} />\n setTeJob(e.value)}\n options={jobs}\n filter={true}\n optionLabel={'name'}\n optionValue={'id'} />\n \n \n {t('Test')}\n \n {loading.render()}\n
\n {error && }\n {!error && result != undefined && }\n
\n}\n\nexport function PermissionForm(props: IProps){\n const { t } = useTranslation();\n const loading = useLoading(false);\n const [activePanel, setActivePanel] = React.useState(0);\n\n const form = useForm({\n initialValues: {\n id: props.data?.id ?? 0,\n name: props.data?.name ?? '',\n action: props.data?.action ?? '',\n expression: props.data?.expression ?? '',\n roles: props.data?.roles ?? '',\n policies: props.data?.policies ?? '',\n workId: props.workId,\n },\n validate: validatePermission,\n onSubmit: (data: IWorkPermission) => {\n if (props.onSubmit) {\n props.onSubmit(data);\n }\n return {ok: true};\n },\n onChange: props.onChange,\n });\n\n const predefinedPermissions =\n commonPermissions.map(p => ({\n id: p,\n name: t(p) + ' (' + p + ')'\n }));\n\n return
\n
\n
\n
\n {form.floatField('action', t('Action'), () =>\n )}\n
\n
\n
\n setActivePanel(e.index)}>\n \n {form.field('expression', t('Expression'), () =>\n )}\n \n \n \n r)??[]}\n onChange={e => form.setFieldValue('roles', e.value.join(','))}\n />\n \n \n \n \n \n
\n
\n {form.errorBox()}\n {props.notifications &&\n }\n
\n {props.footer != undefined && props.footer}\n
\n
\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as Admin from '../../store/admin';\nimport * as UserActions from '../../store/user'\n\nimport { AdminWorkPermissions, IProps } from '../../components/admin/AdminWorkPermissions';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...Admin.plainActions,\n ...UserActions.plainActions,\n availableRoles: state.admin.roles,\n users: state.admin.users,\n works: state.admin.works,\n }),\n Admin.actionCreators,\n)(AdminWorkPermissions as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport {\n useDataTable, useLoading, useTranslation, useConfirm, useFormDialog\n} from '@components';\nimport { PermissionForm } from './PermissionForm';\nimport { IDepartment, IRole, IUserIdentity, IWork, IWorkPermission } from '@models';\nimport { WorkToolbar } from './WorkToolbar';\n\nexport interface IProps {\n availableRoles: IRole[];\n loadWorkPermissions: Function;\n removeWorkPermission: Function,\n saveWorkPermission: Function;\n users: IUserIdentity[];\n work: IWork;\n works: IWork[];\n departments: IDepartment[];\n getJobs: Function;\n}\n\nexport function AdminWorkPermissions({\n availableRoles,\n loadWorkPermissions, removeWorkPermission, saveWorkPermission, users, work, works, getJobs\n}: IProps) {\n const loading = useLoading(true);\n const { t } = useTranslation();\n const dialog = useFormDialog({\n addTitle: t('Add permission'),\n editTitle: t('Edit permission')\n });\n const [permissions, setPermissions] = React.useState([]);\n const confirm = useConfirm({\n message: t('Are you sure to delete the permission ?'),\n });\n\n const initialize = loading.wrap(async () => {\n const perms = await loadWorkPermissions(work.id);\n setPermissions(perms);\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const renderPermissionTitle = (p: IWorkPermission) => {\n return `${t(p.action)} (${p.action})`;\n }\n\n const table = useDataTable({\n actions: [\n {tooltip: t('Edit'), icon: 'pencil', onClick: dialog.showEdit},\n {tooltip: t('Remove'), icon: 'trash', onClick: (p: IWorkPermission, e: any) =>\n confirm({event: e, accept: () => performRemovePermission(p)})}],\n columns: [{render: renderPermissionTitle}, 'roles', 'policies', 'expression'],\n data: permissions,\n });\n\n const performSavePermission = async (perm: IWorkPermission) => {\n await saveWorkPermission(perm);\n await initialize();\n dialog.clear();\n }\n\n const performRemovePermission = async (p: IWorkPermission) => {\n await removeWorkPermission(work.id, p.id);\n await initialize();\n }\n\n return
\n \n dialog.showAdd()}>\n \n {t('Add permission')}\n \n \n\n {loading.renderBox({className: 'md pd', text: t('Loading permissions')})}\n {dialog.render((data: IWorkPermission) =>\n r.name)}\n users={users}\n works={works}\n data={data}\n workId={work.id}\n onSubmit={performSavePermission}\n getJobs={getJobs}\n footer={} />)}\n {table()}\n
\n}","import * as React from 'react';\r\n\r\nimport { useTranslation, Chip } from '@components';\r\nimport { SaveUserPolicies } from '@store/actions/user';\r\n\r\ninterface ISource {\r\n appUserId?: number,\r\n code?: string,\r\n departments?: string,\r\n id?: number,\r\n isActive?: boolean,\r\n legalFormId?: number,\r\n name?: string,\r\n phone?: string,\r\n policies?: string[],\r\n remarks?: string,\r\n surname?: string,\r\n userEmail?: string,\r\n userName?: string,\r\n workId?: number,\r\n}\r\n\r\n\r\ninterface IProps {\r\n source: string[];\r\n removePolicy: (policy: string) => void;\r\n addPolicy: (policy: string) => void;\r\n hasAssociatedUser?: number;\r\n}\r\n\r\nexport function ManagePolicies(props: IProps) {\r\n const { t } = useTranslation();\r\n\r\n const [newPolicy, setNewPolicy] = React.useState('');\r\n\r\n const addPolicy = (e: any) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (newPolicy && newPolicy.trim() !== '') {\r\n props.addPolicy(newPolicy);\r\n setNewPolicy('');\r\n }\r\n }\r\n\r\n const removePolicy = (policy: string) => {\r\n props.removePolicy(policy);\r\n }\r\n\r\n function generateId() {\r\n return Date.now().toString(36) + Math.random().toString(36).substr(2, 9);\r\n }\r\n\r\n const chips = () => {\r\n const result = props.source.map((p, i) => chip(p, i));\r\n return result;\r\n };\r\n\r\n const chip = (p: string, i: number) => {\r\n const id = generateId();\r\n const chip = removePolicy(p)}>;\r\n return chip;\r\n };\r\n\r\n return
\r\n {props.hasAssociatedUser ?\r\n
\r\n {t('Policies')}\r\n\r\n
\r\n {chips()}\r\n
\r\n\r\n
\r\n
\r\n setNewPolicy(e.target.value)}\r\n className='p-inputtext p-component' />\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n :\r\n

El trabajador no tiene asociado un usuario

}\r\n
;\r\n}","import { connect } from 'react-redux';\n\nimport { ApplicationState } from '../../store';\nimport * as Admin from '@store/admin';\nimport { UserForm } from '@components/admin/UserForm';\n\nexport default connect(\n (state: ApplicationState) => ({\n availableRoles: state.admin.roles.map(r => r.name),\n notifications: [],\n }),\n Admin.actionCreators\n)(UserForm as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\r\n\r\nimport * as Actions from '@store/actions/resources';\r\nimport { associateAppUserToWorker, getUsers, getUserById } from '@store/actions/admin';\r\nimport { IDepartment, INotification, IPropertyGroupType, IUserIdentity, IWorker, IWorkFunction, PropertyGroupObjectType, IWorkspace, ILegalForm, IWorkerWithRelations } from '@models';\r\nimport { ManageRelations } from '../common/ManageRelations';\r\nimport { DynamicProperties } from '@components/user/DynamicProperties';\r\nimport {\r\n G,\r\n NotificationsBox,\r\n TabPanel,\r\n TabView,\r\n useForm,\r\n useFormDialog,\r\n useLoading,\r\n useTranslation,\r\n ValidationBuilder,\r\n} from '@components';\r\n\r\nimport './WorkForm.css';\r\nimport { ManageManyToManyRelations } from '@components/common/ManageManyToManyRelations';\r\nimport { ManagePolicies } from '@components/common/ManagePolicies';\r\nimport { IUserFormData, isValidUser } from './UserForm';\r\nimport UserFormContainer from '@containers/admin/UserFormContainer';\r\nimport { SaveUserPolicies } from '@store/actions/user';\r\n\r\ntype IWorkerWithAppUserData = IWorker & {\r\n appUserId?: number;\r\n userEmail?: string;\r\n policies?: string[];\r\n}\r\n\r\nexport interface IProps {\r\n data?: IWorkerWithAppUserData;\r\n workId: number;\r\n footer?: any;\r\n notifications: INotification[];\r\n onChange?: Function;\r\n onSubmit: Function;\r\n propertyGroupTypes: IPropertyGroupType[];\r\n workspaces: IWorkspace[];\r\n legalForms: ILegalForm[];\r\n}\r\n\r\nconst RenderCreateAppUserRelation = ({ worker, workId, onCreated, role }: {\r\n onCreated: Function;\r\n workId: number;\r\n worker: IWorker;\r\n role?: string;\r\n}) => {\r\n const { t } = useTranslation();\r\n const loading = useLoading(false);\r\n\r\n const [data, setData] = React.useState({\r\n roles: [role].filter(r => r != undefined) as string[],\r\n policies: [],\r\n });\r\n\r\n const createAndAssociateUser = loading.wrap(async () => {\r\n await associateAppUserToWorker(workId, worker.id, data);\r\n onCreated();\r\n });\r\n\r\n return
\r\n {loading.renderBox()}\r\n {!loading.isLoading() &&\r\n }\r\n\r\n
\r\n \r\n \r\n {t('Create user')}\r\n \r\n
\r\n
\r\n}\r\n\r\nenum FormType {\r\n Edit = 0,\r\n AppUser = 1\r\n}\r\n\r\nexport function WorkerForm(props: IProps) {\r\n const { t } = useTranslation();\r\n const loading = useLoading();\r\n const [error, setError] = React.useState();\r\n const [editAccess, setEditAccess] = React.useState();\r\n const [formType, setFormType] = React.useState(FormType.Edit);\r\n const [policies, setPolicies] = React.useState(props.data?.policies ?? []);\r\n\r\n const createAppUserDialog = useFormDialog({\r\n portal: 'body',\r\n editTitle: t('Create new user'),\r\n });\r\n const appUsersDialog = useFormDialog({\r\n editTitle: t('Associate app user')\r\n });\r\n\r\n\r\n const validateWorker = (data: IWorkerWithRelations) => {\r\n return ValidationBuilder\r\n .create(data)\r\n .notEmpty('name')\r\n .notEmptyIf(props.workId != 21, 'surname')\r\n .notEmptyIf(props.workId == 21, 'code')\r\n .build();\r\n }\r\n\r\n const form = useForm({\r\n initialValues: {\r\n id: props.data?.id ?? 0,\r\n name: props.data?.name ?? '',\r\n isActive: true,\r\n surname: props.data?.surname ?? '',\r\n code: props.data?.code ?? '',\r\n phone: props.data?.phone ?? '',\r\n workspaceId: props.data?.workspaceId ?? 0,\r\n // legalFormId: props.data?.legalFormId,\r\n remarks: props.data?.remarks ?? '',\r\n workId: props.workId,\r\n properties: props.data?.properties\r\n },\r\n validate: validateWorker,\r\n validateOnMount: true,\r\n onSubmit: (data: IWorkerWithRelations) => {\r\n savePolicies();\r\n props.onSubmit(data);\r\n return { ok: true };\r\n },\r\n // onChange: props.onChange,\r\n });\r\n\r\n //save policies\r\n const savePolicies = async () => {\r\n const userId = props.data?.appUserId;\r\n if (userId) {\r\n const res = await SaveUserPolicies(userId, policies);\r\n if (res.value == false || res.isError == true) {\r\n setError(t('Cannot change policies to user'));\r\n }\r\n } else {\r\n setError(t('Cannot change policies to user'));\r\n }\r\n }\r\n\r\n //add policy\r\n const addPolicyToAppUser = (policy: string) => {\r\n const newPolicies = [...(policies ?? []), policy];\r\n setPolicies(newPolicies);\r\n }\r\n\r\n //remove policy\r\n const RemovePolicyToAppUser = async (policy: string) => {\r\n const newPolicies = (policies ?? []).filter(p => p !== policy);\r\n setPolicies(newPolicies);\r\n }\r\n\r\n\r\n //add Department\r\n const addDepartmentHasWorker = async (department: IDepartment, worker: IWorker) => {\r\n loading.start('departments');\r\n\r\n const resp = await Actions.saveDepartmentHasWorker(props.workId, department.id, worker.id);\r\n if (!resp.hasValue) {\r\n setError(t('Cannot add department relation'));\r\n }\r\n\r\n loading.stop('departments');\r\n }\r\n\r\n // remove Department\r\n const removeDepartmentHasWorker = async (department: IDepartment, worker: IWorker) => {\r\n loading.start('departments');\r\n\r\n const resp = await Actions.removeDepartmentHasWorker(props.workId, department.id, worker.id);\r\n if (!resp.hasValue) {\r\n setError(t('Cannot remove department relation'));\r\n }\r\n\r\n loading.stop('departments');\r\n }\r\n\r\n // add Workspace\r\n const addWorkerHasWorkspace = async (workspace: IWorkspace, worker: IWorker) => {\r\n loading.start('workspaces');\r\n\r\n const resp = await Actions.saveWorkerHasWorkspace(props.workId, worker.id, workspace.id);\r\n if (!resp.hasValue) {\r\n setError(t('Cannot add workspace relation'));\r\n }\r\n\r\n loading.stop('workspaces');\r\n }\r\n\r\n const removeWorkerHasWorkspace = async (workspace: IWorkspace, worker: IWorker) => {\r\n loading.start('workspaces');\r\n\r\n const resp = await Actions.removeWorkerHasWorkspace(props.workId, worker.id, workspace.id);\r\n if (!resp.hasValue) {\r\n setError(t('Cannot remove workspace relation'));\r\n }\r\n\r\n loading.stop('workspaces');\r\n }\r\n\r\n // add Work Function\r\n const addWorkFunctionHasWorker = async (workFunction: IWorkFunction, worker: IWorker) => {\r\n loading.start('work functions');\r\n\r\n const resp = await Actions.saveWorkFunctionHasWorker(props.workId, workFunction.id, worker.id);\r\n if (!resp.hasValue) {\r\n setError(t('Cannot add work function relation'));\r\n }\r\n\r\n loading.stop();\r\n }\r\n\r\n //remove Work Function\r\n const removeWorkFunctionHasWorker = async (workFunction: IWorkFunction, worker: IWorker) => {\r\n loading.start('work functions');\r\n\r\n const resp = await Actions.removeWorkFunctionHasWorker(props.workId, workFunction.id, worker.id);\r\n if (!resp.hasValue) {\r\n setError(t('Cannot remove work function relation'));\r\n }\r\n loading.stop();\r\n }\r\n\r\n const associateExistingUser = loading.wrap(async (worker: IWorker, user: IUserIdentity) => {\r\n await associateAppUserToWorker(props.workId, worker.id, {\r\n id: user.id,\r\n userName: user.userName,\r\n });\r\n await props.onChange?.();\r\n });\r\n\r\n const requestEditUser = loading.wrap(async (appUserId: number) => {\r\n const user = await getUserById(appUserId);\r\n setEditAccess(user);\r\n setFormType(FormType.AppUser);\r\n });\r\n\r\n const saveAppUser = loading.wrap(async (data: IUserIdentity) => {\r\n setFormType(FormType.Edit);\r\n });\r\n\r\n\r\n const cancelAppUserEdit = () => {\r\n setEditAccess(undefined);\r\n setFormType(FormType.Edit);\r\n }\r\n\r\n const onSystemUserCreated = () => {\r\n createAppUserDialog.clear();\r\n props.onChange?.();\r\n }\r\n\r\n return
\r\n
\r\n {formType === FormType.AppUser && editAccess &&\r\n \r\n \r\n \r\n
}\r\n onSubmit={saveAppUser} />}\r\n\r\n {createAppUserDialog.render((w: IWorker) =>\r\n )}\r\n\r\n {formType === FormType.Edit &&
\r\n
\r\n
\r\n \r\n {form.input('name', { autoFocus: true })}\r\n \r\n \r\n {form.input('surname')}\r\n \r\n \r\n {form.input('code')}\r\n \r\n \r\n {form.input('phone')}\r\n \r\n \r\n {form.textarea('remarks')}\r\n \r\n form.setFieldValue('properties', props)}\r\n isInternal={true}\r\n objectType={PropertyGroupObjectType.JobHasWorker}\r\n propertyGroupTypes={props.propertyGroupTypes} />\r\n
\r\n\r\n {props.data?.id != undefined &&\r\n \r\n \r\n addWorkerHasWorkspace(d, props.data!)}\r\n onRemove={(d: IWorkspace) => removeWorkerHasWorkspace(d, props.data!)}\r\n loading={loading.isLoading('workspaces')}\r\n loadTargets={async () => {\r\n const resp = await Actions.getWorkspaces(props.workId);\r\n return resp.data.work.workspaces;\r\n }}\r\n loadRelations={() => Actions.getWorkerHasWorkspaces(props.workId, props.data!.id)} />\r\n \r\n \r\n addDepartmentHasWorker(d, props.data!)}\r\n onRemove={(d: IDepartment) => removeDepartmentHasWorker(d, props.data!)}\r\n loading={loading.isLoading('departments')}\r\n loadTargets={async () => {\r\n const resp = await Actions.getDepartments(props.workId);\r\n return resp.data.work.departments;\r\n }}\r\n loadRelations={() => Actions.getWorkerDepartments(props.workId, props.data!.id)} />\r\n \r\n \r\n addWorkFunctionHasWorker(w, props.data!)}\r\n onRemove={(w: IWorkFunction) => removeWorkFunctionHasWorker(w, props.data!)}\r\n loading={loading.isLoading('work_functions')}\r\n loadTargets={async () => {\r\n const resp = await Actions.getWorkFunctions(props.workId);\r\n return resp.data.work.work_functions;\r\n }}\r\n loadRelations={() => Actions.getWorkerWorkFunctions(props.workId, props.data!.id)} />\r\n \r\n \r\n \r\n \r\n \r\n {props.data?.appUser != undefined &&\r\n
\r\n
\r\n \r\n {props.data?.userEmail}\r\n
\r\n
\r\n requestEditUser(props.data!.appUserId!)}>\r\n
\r\n
}\r\n {props.data?.appUser == undefined &&\r\n <>\r\n
\r\n \r\n {t('Associate app user')}\r\n \r\n
\r\n getUsers().then(r => r.data.users)}\r\n onRequestCreate={(w: IWorker) => {\r\n appUsersDialog.clear();\r\n createAppUserDialog.showEdit(w);\r\n }}\r\n onSelect={(user: IUserIdentity) => {\r\n associateExistingUser(props.data!, user);\r\n }}\r\n source={props.data!} />\r\n }\r\n \r\n }\r\n
\r\n {formType === FormType.Edit && props.footer != undefined && props.footer}\r\n
}\r\n
\r\n
\r\n {form.errorBox()}\r\n \r\n
\r\n
\r\n}","import { connect } from 'react-redux';\n\nimport { ApplicationState } from '../../store';\nimport * as Admin from '@store/admin';\n\nimport { AdminWorkWorkers } from '@components/admin/AdminWorkWorkers';\nimport * as WorkersStore from '../../store/workers';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...WorkersStore.plainActions,\n ...Admin.plainActions,\n }),\n Admin.actionCreators,\n)(AdminWorkWorkers as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\r\n\r\nimport { searchExportToXls } from '@store/actions/search';\r\nimport {\r\n ConfirmDialog, Message, useConfirm, useDataTable, useFormDialog, useInputSearch, useLoading, useMessage, useSearch, useSearchFilters, useTranslation\r\n} from '@components';\r\nimport { IPropertyGroupType, isRRHHPropertyGroupType, IWork } from '@models';\r\nimport { IDepartment, IWorker, IWorkerWithRelations } from '@models/resources';\r\nimport * as Actions from '@store/actions/resources';\r\nimport { WorkerForm } from './WorkerForm';\r\nimport { WorkToolbar } from './WorkToolbar';\r\nimport './AdminWorkWorkers.scss'\r\nimport i18next from 'i18next';\r\nimport { downloadBlob } from '@utils/file-utils';\r\n\r\ntype WorkerRow = IWorker & {\r\n departments: string;\r\n userEmail: string;\r\n workspaces: string;\r\n userName?: string;\r\n policies?: string[];\r\n};\r\n\r\nexport interface IProps {\r\n loadUsers?: Function;\r\n propertyGroupTypes: IPropertyGroupType[];\r\n work: IWork;\r\n reactivateWorker: Function;\r\n getWorkDepartments: Function;\r\n}\r\n\r\nexport function AdminWorkWorkers(props: IProps) {\r\n const { t } = useTranslation();\r\n\r\n const propertyGroupTypes =\r\n props.work?.propertyGroupTypes?.filter(isRRHHPropertyGroupType) ?? [];\r\n\r\n const [departments, setDepartments] = React.useState([]);\r\n\r\n const workspaces = props.work.workspaces;\r\n const legalForms = props.work.legalForms;\r\n\r\n const workId = props.work.id;\r\n\r\n const [error, setError] = React.useState();\r\n const loading = useLoading(true);\r\n const formDialog = useFormDialog({\r\n editTitle: t('rrhh.worker.edit'),\r\n addTitle: t('rrhh.worker.add'),\r\n });\r\n const message = useMessage();\r\n const [showConfirmDeactivate, setShowConfirmDeactivate] = React.useState();\r\n const [showConfirmRemove, setShowConfirmRemove] = React.useState();\r\n\r\n const userFilters = useSearchFilters({\r\n workId: workId,\r\n name: 'admin.workers',\r\n references: {\r\n workspaces: workspaces,\r\n departments: departments,\r\n },\r\n persist: true,\r\n });\r\n\r\n const initialize = loading.wrap(async () => {\r\n const departments = await props.getWorkDepartments(workId);\r\n setDepartments(departments ?? []);\r\n data.doSearch();\r\n });\r\n\r\n React.useEffect(() => {\r\n initialize();\r\n }, []);\r\n\r\n const refresh = async () => {\r\n await initialize();\r\n if (formDialog.currentEdit) {\r\n const s = data.value.find(c => c.id == formDialog.currentEdit?.id);\r\n formDialog.showEdit(s!);\r\n formDialog.clear();\r\n }\r\n\r\n if (props.loadUsers) {\r\n props.loadUsers();\r\n }\r\n }\r\n\r\n const saveWorker = async (w: IWorkerWithRelations) => {\r\n const res = await Actions.saveWorker(w);\r\n message.set(res);\r\n await initialize();\r\n\r\n formDialog.clear();\r\n }\r\n\r\n const removeWorker = async (id: number, workId: number, remove: boolean) => {\r\n setError(undefined);\r\n await Actions.removeWorker(id, workId, remove);\r\n await initialize();\r\n\r\n formDialog.clear();\r\n }\r\n\r\n const filterKey = `filters.admin.work.workers[workId=${workId}]`;\r\n\r\n const filter = useInputSearch({ filterKey });\r\n\r\n const data = useSearch({\r\n workId: workId,\r\n search: 'admin.workers',\r\n normalizeKeys: true,\r\n filters: userFilters.merge({ name: filter.value, workId: workId }),\r\n dependencies: [filter.value, userFilters.filters],\r\n });\r\n\r\n const exportToXls = async (filters: any, filename: string | undefined = undefined) => {\r\n const resp = await searchExportToXls(workId, 'admin.workers', filters, i18next.languages[0]);\r\n downloadBlob(resp, filename ?? (`admin.workers.${workId}` + '.xlsx') ?? 'export.xlsx');\r\n }\r\n\r\n const doActivateWorker = loading.wrap(async (w: WorkerRow) => {\r\n await props.reactivateWorker(w.id, w.workId);\r\n await refresh();\r\n });\r\n\r\n const confirmActivate = useConfirm({\r\n message: t('resource.activate.confirm'),\r\n accept: doActivateWorker\r\n });\r\n\r\n const dataTable = useDataTable({\r\n data: data.value,\r\n className: 'e fixed-header-t36 fixed-table',\r\n columns: [\r\n {\r\n className: 'td-md', sortKey: 'id', render: (w: WorkerRow) => {\r\n return
\r\n {w.id}\r\n
\r\n }\r\n },\r\n {\r\n title: 'Name', className: 'center', sortKey: 'name', render: (w: WorkerRow) => {\r\n return
\r\n {w.name}\r\n
\r\n }\r\n },\r\n {\r\n title: 'Surname', className: 'center', sortKey: 'surname', render: (w: WorkerRow) => {\r\n return
\r\n {w.surname}\r\n
\r\n }\r\n },\r\n {\r\n title: 'Phone', className: 'td-md', sortKey: 'phone', render: (w: WorkerRow) => {\r\n return
\r\n {w.phone}\r\n
\r\n }\r\n },\r\n {\r\n title: 'License number', className: 'td-lg', sortKey: 'code', render: (w: WorkerRow) => {\r\n return
\r\n {w.code}\r\n
\r\n }\r\n },\r\n {\r\n title: 'Workspaces', className: 'center', sortKey: 'workspaces', render: (w: WorkerRow) => {\r\n return
\r\n {w.workspaces}\r\n
\r\n }\r\n },\r\n {\r\n title: 'Departments', className: 'center', sortKey: 'departments', render: (w: WorkerRow) => {\r\n return
\r\n {w.departments}\r\n
\r\n }\r\n },\r\n {\r\n title: 'Policies', className: 'center', sortKey: 'policies', render: (w: WorkerRow) => {\r\n\r\n return
\r\n {w.policies && {w.policies?.join(', ')}}\r\n
\r\n }\r\n },\r\n {\r\n title: 'UserName', sortKey: 'userName', render: (w: WorkerRow) => {\r\n return
\r\n {w.userName}\r\n
\r\n }\r\n },\r\n {\r\n title: 'Email', sortKey: 'userEmail', render: (w: WorkerRow) => {\r\n return
\r\n {w.userEmail}\r\n
\r\n }\r\n },\r\n ],\r\n actions: [\r\n { icon: 'pencil', tooltip: t('Edit'), onClick: formDialog.showEdit },\r\n {\r\n icon: (w: WorkerRow) => w.isActive ? 'fas fa-eye-slash' : 'fas fa-check',\r\n tooltip: (w: WorkerRow) => w.isActive ? t('resource.deactivate') : t('resource.activate'),\r\n onClick: (w: WorkerRow) => w.isActive ? setShowConfirmDeactivate(w) : confirmActivate\r\n },\r\n { icon: 'fas fa-trash', tooltip: t('Remove'), onClick: (w: WorkerRow) => setShowConfirmRemove(w) },\r\n ]\r\n });\r\n\r\n return
\r\n \r\n {loading.render()}\r\n formDialog.showAdd()}>\r\n \r\n {t('rrhh.worker.add')}\r\n \r\n exportToXls(userFilters.merge({ workId: props.work.id }))}>\r\n \r\n {t('Export to Excel')}\r\n \r\n \r\n {message.renderIfError()}\r\n\r\n {showConfirmDeactivate && setShowConfirmDeactivate(undefined)}\r\n message={`${t('Are you sure to deactivate the element ?')} ${showConfirmDeactivate.name}`}\r\n rejectLabel={t('Cancel')}\r\n acceptLabel={t('Delete')}\r\n reject={() => setShowConfirmDeactivate(undefined)}\r\n accept={() => removeWorker(showConfirmDeactivate.id, showConfirmDeactivate.workId, false)} />}\r\n\r\n {showConfirmRemove && setShowConfirmDeactivate(undefined)}\r\n message={`${t('Are you sure to delete the element ?')} ${showConfirmRemove.name}`}\r\n rejectLabel={t('Cancel')}\r\n acceptLabel={t('Delete')}\r\n reject={() => setShowConfirmDeactivate(undefined)}\r\n accept={() => removeWorker(showConfirmRemove.id, showConfirmRemove.workId, true)} />}\r\n\r\n {formDialog.render((data: IWorker) =>\r\n )}\r\n\r\n {error && }\r\n\r\n\r\n
\r\n
\r\n {
\r\n {filter.render()}\r\n {/* {userFilters.renderAsButton()} */}\r\n \r\n
}\r\n
\r\n
\r\n {dataTable()}\r\n
\r\n}\r\n","import * as React from 'react';\n\nimport { Chips, G, Select, useTranslation } from '@components';\nimport { IPropertyType, AllPropertyTypes, PropertyTypes } from '@models';\nimport { useObjectState } from '@utils/hooks';\n\nexport interface IProps {\n footer: any;\n loading?: boolean;\n onChange?: Function;\n parentId: number;\n}\n\nexport function PropertyTypeForm(props: IProps) {\n const { t } = useTranslation();\n\n const data = useObjectState({\n name: '',\n title: '',\n parentId: props.parentId,\n typeId: PropertyTypes.TEXT,\n selectOptions: \"\",\n }, {\n onChange: props.onChange,\n });\n\n const [selectOptions, setSelectOptions] = React.useState([]);\n\n const isValid =\n data.value.name != '' && data.value.title != '' && !props.loading;\n\n React.useEffect(() => {\n if (data.value.typeId != PropertyTypes.SELECT) {\n setSelectOptions([]);\n }\n }, [data.value.typeId]);\n\n React.useEffect(() => {\n data.set('selectOptions')(selectOptions.join(','));\n }, [selectOptions]);\n\n return
\n
\n \n \n \n \n \n \n \n \n \n {data.value.typeId == PropertyTypes.SELECT && \n
\n setSelectOptions([...selectOptions, d.value])}\n onRemove={d =>setSelectOptions(selectOptions.filter((o: any) => o != d.value))}\n />\n
\n
}\n
\n {props.footer({disabled: !isValid})}\n
\n}","import * as React from 'react';\n\nimport * as I18n from '../../i18n';\nimport { G, Select, useTranslation, InputSwitch } from '@components';\nimport { IPropertyGroupType } from '@models';\nimport { useObjectState } from '@utils/hooks';\nimport './PropertyGroupTypeForm.scss';\n\nexport interface IProps {\n footer: any;\n isInternal?: boolean;\n objectType: number;\n loading?: boolean;\n onChange?: Function;\n workId: number;\n}\n\nexport const dispositionTypes = [\n {id: 'embed', name: I18n.get('Embed')},\n {id: 'fluid', name: I18n.get('Fluid')},\n {id: 'column', name: I18n.get('Column')},\n {id: 'grid-2', name: I18n.get('Grid')},\n];\n\nexport function PropertyGroupTypeForm(props: IProps) {\n const { t } = useTranslation();\n\n const data = useObjectState({\n name: '',\n objectType: props.objectType,\n title: '',\n isInternal: props.isInternal,\n workId: props.workId,\n containerType: 'fluid',\n hidable: false,\n mandatory: false,\n // isolated: false,\n }, {\n onChange: props.onChange,\n });\n\n const isValid =\n data.value.name != '' && data.value.title != '' && !props.loading;\n\n return
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n {/* \n \n */}\n
\n {props.footer({disabled: !isValid})}\n
\n}","import * as React from 'react';\n\nimport {\n InlineInputText,\n InlineSelect,\n useConfirm,\n useDialogs,\n useFormDialog,\n useLoading,\n useMessage,\n useObjectState,\n useResolveName,\n useStringState,\n useTranslation,\n useTreeTable,\n useForm,\n F\n} from '@components';\nimport {\n IPropertyGroupType,\n IPropertyType,\n AllPropertyTypes,\n IWork,\n} from '@models';\nimport { PropertyTypeForm } from './PropertyTypeForm';\nimport { PropertyGroupTypeForm, dispositionTypes } from './PropertyGroupTypeForm';\nimport { flatten } from \"@utils\";\n\nexport interface IProps {\n getPropertyGroupTypes: Function;\n isInternal?: boolean;\n loadWorks: Function;\n objectType: number;\n propertyGroupTypes: IPropertyGroupType[];\n removePropertyGroupType: Function;\n removePropertyType: Function;\n savePropertyGroupType: Function;\n savePropertyType: Function;\n work: IWork;\n}\n\nfunction PropertyGroupStyle({ group, onSave, onClose, workId }: any) {\n const color = useStringState('#ffffff');\n const { t } = useTranslation();\n\n React.useEffect(() => {\n if (group.style) {\n const style = JSON.parse(group.style);\n color.set(style.backgroundColor ?? '#ffffff');\n }\n }, []);\n\n const updateColor = async (_: any) => {\n const style = JSON.stringify({ backgroundColor: color.value });\n await onSave(workId, { ...group, style });\n\n onClose();\n }\n\n return
\n
\n \n
\n\n
\n \n
\n \n
\n
\n}\n\nfunction PropertyGroupTypeHidableForm({ propertyGroupType, onSave, onClose, workId }: any) {\n const form = useForm({\n initialValues: {\n hidable: propertyGroupType.hidable,\n mandatory: propertyGroupType.mandatory,\n },\n });\n const { t } = useTranslation();\n\n\n const doSave = async () => {\n await onSave(workId, {\n ...propertyGroupType,\n hidable: form.values.hidable,\n mandatory: form.values.mandatory\n })\n onClose();\n }\n\n return <>\n
\n
\n {form.checkBox('hidable')}\n \n
\n
\n {form.checkBox('mandatory')}\n \n
\n
\n
\n \n
\n \n
\n \n}\n\nfunction PropertyType({ propertyType, onSave, onClose, workId }: any) {\n const state = useObjectState(propertyType);\n const { t } = useTranslation();\n\n const doSave = async () => {\n await onSave(workId, { ...propertyType, help: state.value['help'] });\n onClose();\n }\n\n return
\n
\n \n
\n\n
\n \n
\n \n
\n
\n}\n\nconst parsePropertyGroup = (g: IPropertyGroupType) => {\n return {\n ...g,\n properties: g?.properties?.sort((a, b) => (a?.propertyOrder ?? 0) - (b?.propertyOrder ?? 0)),\n };\n}\n\nexport function PropertyGroupTypes(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const groupDialogs = useDialogs();\n const msg = useMessage();\n const dialogs = useFormDialog({\n addTitle: t('Add property group'),\n });\n const propertyDialog = useFormDialog({\n editTitle: t('Add property'),\n });\n const resolvePropertyTypeName = useResolveName(AllPropertyTypes, {\n defaultName: t('TEXT'),\n });\n\n const doRemove = loading.wrap(async (r: any) => {\n if (r.__typename === 'PropertyGroupTypeGraphType') {\n await props.removePropertyGroupType(props.work.id, r.id);\n }\n else {\n await props.removePropertyType(props.work.id, r.id);\n }\n props.loadWorks();\n });\n\n const confirmRemove = useConfirm({\n message: t('Are you sure you want to remove this property?'),\n accept: doRemove\n });\n\n const [data, setData] = React.useState(props.propertyGroupTypes);\n const [addRecord, setAddRecord] = React.useState();\n const [addPropertyRecord, setAddPropertyRecord] = React.useState();\n\n React.useEffect(() => {\n setData(props.propertyGroupTypes.map(parsePropertyGroup));\n }, [props.propertyGroupTypes]);\n\n const EditableText = ({ object, style, field, className }: any) =>\n object.__typename === 'PropertyGroupTypeGraphType'\n ? props.savePropertyGroupType(props.work.id, o)} />\n : props.savePropertyType(props.work.id, o)} />;\n\n const isPropertyType = (d: any) => d.__typename != 'PropertyGroupTypeGraphType';\n const isGroupType = (d: any) => !isPropertyType(d);\n\n const allowDrop = (event: React.DragEvent) => {\n event.preventDefault();\n }\n\n const onDrop = loading.wrap(async (prop: IPropertyType, event: React.DragEvent) => {\n const currentOrder = prop.propertyOrder;\n const sourceId = parseInt(event.dataTransfer.getData('text/plain'));\n const sourceProperty = flatten(props.propertyGroupTypes.map(g => g.properties ?? []))\n .find(r => r.id === sourceId);\n if (sourceProperty) {\n sourceProperty.propertyOrder = (currentOrder ?? 0);\n const parent = props.propertyGroupTypes.find(g => g.id === prop.parentId);\n const siblings = (parent?.properties ?? []).filter(r =>\n r.id != sourceId\n && (\n ((r.propertyOrder ?? 0) > (currentOrder ?? 0))\n || ((r.propertyOrder === currentOrder) && r.id! > prop.id!)));\n siblings?.forEach(s => s.propertyOrder = (s.propertyOrder ?? 0) + 1);\n prop.propertyOrder = (currentOrder ?? 0) + 1;\n\n await props.savePropertyType(props.work.id, sourceProperty);\n await props.savePropertyType(props.work.id, prop);\n for (const s of siblings ?? []) {\n await props.savePropertyType(props.work.id, s);\n }\n await reload();\n }\n });\n\n const onDragStart = (prop: IPropertyType, event: React.DragEvent) => {\n event.dataTransfer.setData('text/plain', prop.id + '');\n }\n\n const dataTable = useTreeTable({\n columns: [\n {\n title: 'Name', render: (d: any) => {\n if (d.__typename === 'PropertyTypeGraphType') {\n return
onDrop(d, e)}\n onDragOver={allowDrop}>\n
onDragStart(d, e)}>\n \n
\n \n
\n }\n else {\n return ;\n }\n }\n },\n { title: 'Title', render: (d: any) => },\n {\n title: 'Description', render: (d: any) => \n },\n {\n title: 'Type', render: (d: any) => d.__typename == 'PropertyTypeGraphType'\n ? props.savePropertyType(props.work.id, d)}\n field={'typeId'} />\n //resolvePropertyTypeName(d.propertyType)\n : props.savePropertyGroupType(props.work.id, o)}\n field='containerType' />\n }\n ],\n childrenProperty: 'properties',\n actions: [\n { icon: 'fas fa-palette', onClick: (g: any) => groupDialogs.show('color', g), disabled: isPropertyType },\n { icon: (g: any) => isGroupType(g) ? 'fas fa-edit' : 'far fa-qestion-circle', onClick: (g: any) => isGroupType(g) ? groupDialogs.show('settings', g) : groupDialogs.show('help', g) },\n { icon: 'plus', onClick: propertyDialog.showEdit, disabled: isPropertyType },\n { icon: 'trash', onClick: confirmRemove },\n ],\n expand: true,\n data,\n });\n\n const reload = async () => {\n const resp = await props.getPropertyGroupTypes(props.work.id);\n const types = resp.filter((p: IPropertyGroupType) => p.objectType == props.objectType && p.isInternal == props.isInternal);\n setData(types.map(parsePropertyGroup));\n }\n\n const doAddPropertyType = loading.wrap(async (ev: any) => {\n ev.preventDefault();\n ev.stopPropagation();\n\n console.log('add property type', addPropertyRecord);\n\n const res = await props.savePropertyType(props.work.id, addPropertyRecord);\n msg.set(res);\n await reload();\n propertyDialog.clear();\n\n props.loadWorks();\n });\n\n const doAddPropertyGroup = loading.wrap(async (ev: any) => {\n ev.preventDefault();\n ev.stopPropagation();\n\n await props.savePropertyGroupType(props.work.id, addRecord);\n const resp = await props.getPropertyGroupTypes(props.work.id);\n const types = resp\n .filter((p: IPropertyGroupType) => p.objectType == props.objectType && p.isInternal == props.isInternal);\n setData(types);\n dialogs.clear();\n });\n\n return
\n {dataTable()}\n
\n\n {groupDialogs.render('color', { title: t('Set color') }, (group: IPropertyGroupType) =>\n \n )}\n {groupDialogs.render('help', { title: t('Set help text') }, (p: IPropertyType) =>\n \n )}\n\n {groupDialogs.render('settings', { title: t('Settings') }, (g: IPropertyGroupType) =>\n \n )}\n\n {dialogs.render((_: any) =>\n
\n }\n objectType={props.objectType}\n isInternal={props.isInternal}\n onChange={setAddRecord}\n workId={props.work.id} />\n )}\n\n {propertyDialog.render((data: IPropertyGroupType) =>\n
\n }\n onChange={setAddPropertyRecord}\n parentId={data.id!} />\n )}\n\n
\n
\n {msg.renderIfError()}\n {loading.render()}\n \n
\n
;\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as Admin from '../../store/admin';\n\nimport { PropertyGroupTypes } from '@components/admin/PropertyGroupTypes';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...Admin.plainActions,\n }),\n Admin.actionCreators,\n)(PropertyGroupTypes as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport {\n F, Select, TabPanel, TabView, TogglePanel, useForm, InputSwitch, useLoading, useObjectState, useRemoteData, useTranslation\n} from '@components';\nimport {\n isContractorWorkerPropertyGroupType,\n isRRHHPropertyGroupType,\n isJobHasContractorPropertyGroupType, isMachineryPropertyGroupType, isJobPropertyGroupType,\n IWork, IWorkSettings, JobEncodingType, PropertyGroupObjectType\n} from '@models';\nimport PropertyGroupTypesContainer from '@containers/admin/PropertyGroupTypesContainer';\nimport { WorkToolbar } from './WorkToolbar';\nimport { INotificationTemplate, isWorkspacePropertyGroupType } from '@models/works';\n\ntype GetNotificationTemplatesF = (workId: number) => Promise;\n\nexport interface IProps {\n getNotificationTemplates: GetNotificationTemplatesF;\n getJobPropertyGroups: Function;\n saveJobPropertyGroup: Function;\n saveJobPropertyType: Function;\n saveWork: Function;\n work: IWork;\n}\n\nconst defaultSettings: IWorkSettings = {}\n\nfunction ContractorsConfiguration({ saveWork, work }: { saveWork: Function, work: IWork }) {\n const { t } = useTranslation();\n const loading = useLoading();\n\n const workSettings = work.settingsObj ?? defaultSettings;\n\n const form = useForm({\n initialValues: {\n id: work.id,\n name: work.name,\n countryId: work.countryId,\n settings: workSettings,\n contextData: work.contextData,\n __acceptSubContractorRequests: workSettings?.acceptSubContractorRequests,\n __mainContractorCanFulfillSubs: workSettings?.mainContractorCanFulfillSubs,\n __rememberSubContractorAcceptances: workSettings?.rememberSubContractorAcceptances,\n }\n });\n\n const doSave = loading.wrap(async (..._: any) => {\n const w = {\n ...form.values,\n settings: form.get('settings'),\n };\n w.settings['acceptSubContractorRequests'] = form.get('__acceptSubContractorRequests');\n w.settings['mainContractorCanFulfillSubs'] = form.get('__mainContractorCanFulfillSubs');\n w.settings['rememberSubContractorAcceptances'] = form.get('__rememberSubContractorAcceptances');\n\n w.settings = JSON.stringify(w.settings);\n delete w['__acceptSubContractorRequests'];\n delete w['__mainContractorCanFulfillSubs'];\n delete w['__rememberSubContractorAcceptances'];\n\n await saveWork(w);\n });\n\n return
\n
\n \n {form.checkBox('__acceptSubContractorRequests')}\n\n \n {form.checkBox('__mainContractorCanFulfillSubs')}\n\n \n {form.checkBox('__rememberSubcontractorAcceptances')}\n
\n
\n
\n
\n {loading.render()}\n \n {t('Save')}\n \n
\n
\n}\n\nfunction JobsConfiguration({ getNotificationTemplates, saveWork, work }: {\n getNotificationTemplates: GetNotificationTemplatesF, saveWork: Function, work: IWork\n}) {\n const { t } = useTranslation();\n const loading = useLoading();\n\n const notificationTemplates = useRemoteData(\n getNotificationTemplates,\n { parameters: [work.id] }\n );\n\n // const settings = useObjectState>(work.settingsObj ?? defaultSettings);\n const workSettings = work.settingsObj ?? defaultSettings;\n const workContextData = work.contextDataObj ?? {};\n\n const encodingOptions = [\n { id: JobEncodingType.Sequential, name: t('Sequential') },\n { id: JobEncodingType.SequentialByWorkspace, name: t('SequentialByWorkspace') },\n { id: JobEncodingType.Manual, name: t('job.encodingType.manual') },\n ];\n\n const form = useForm({\n initialValues: {\n id: work.id,\n contractorInvitationTemplateId: work.contractorInvitationTemplateId,\n helpDeskEmail: work.helpDeskEmail,\n footerResource: work.footerResource,\n resetPasswordTemplateId: work.resetPasswordTemplateId,\n __jobEncodingType: workSettings.jobEncodingType,\n __jobEncodingPrefix: workSettings.jobEncodingPrefix,\n __allowAlwaysNotifyInformationLoaded: workSettings.allowAlwaysNotifyInformationLoaded,\n settings: workSettings,\n contextData: workContextData,\n __clientImage: workSettings.clientImage,\n __screenImage: workSettings.screenImage,\n __createJobRelations: workSettings.createJobRelations,\n __jobHiddenFields:\n workSettings.jobHiddenFields?.join\n ? workSettings.jobHiddenFields?.join(',')\n : '',\n __contractorHiddenFields:\n workSettings.contractorHiddenFields?.join\n ? workSettings.contractorHiddenFields?.join(',')\n : '',\n __workerHiddenFields:\n workSettings.workerHiddenFields?.join\n ? workSettings?.workerHiddenFields?.join(',')\n : '',\n __machineryHiddenFields:\n workSettings.machineryHiddenFields?.join\n ? workSettings?.machineryHiddenFields?.join(',')\n : '',\n __simpleDelayedRevokation: workSettings.simpleDelayedRevokation,\n __jobDelayedRevokation: workSettings.jobDelayedRevokation,\n __hideByDefaultEnded: workSettings.hideByDefaultEnded,\n __jobChainFinalisation: workSettings.jobChainFinalisation,\n __contextDataPhone: workContextData?.phone,\n __contextDataEmail: workContextData?.email,\n }\n });\n\n const doSave = loading.wrap(async (..._: any) => {\n const w = {\n ...form.values,\n settings: form.get('settings'),\n contextData: form.get('contextData'),\n };\n w.settings['jobEncodingType'] = w.__jobEncodingType;\n w.settings['jobEncodingPrefix'] = w.__jobEncodingPrefix;\n w.settings['jobHiddenFields'] = form.get('__jobHiddenFields')?.split(',')?.map(x => x.trim()) ?? [];\n w.settings['contractorHiddenFields'] = form.get('__contractorHiddenFields')?.split(',')?.map(x => x.trim()) ?? [];\n w.settings['workerHiddenFields'] = form.get('__workerHiddenFields')?.split(',')?.map(x => x.trim()) ?? [];\n w.settings['machineryHiddenFields'] = form.get('__machineryHiddenFields')?.split(',')?.map(x => x.trim()) ?? [];\n w.settings['clientImage'] = form.get('__clientImage');\n w.settings['screenImage'] = form.get('__screenImage');\n w.settings['createJobRelations'] = form.get('__createJobRelations');\n w.settings['allowAlwaysNotifyInformationLoaded'] = form.get('__allowAlwaysNotifyInformationLoaded');\n w.settings['simpleDelayedRevokation'] = form.get('__simpleDelayedRevokation');\n w.settings['jobDelayedRevokation'] = form.get('__jobDelayedRevokation');\n w.settings['hideByDefaultEnded'] = form.get('__hideByDefaultEnded');\n w.settings['jobChainFinalisation'] = form.get('__jobChainFinalisation');\n w.contextData['phone'] = form.get('__contextDataPhone');\n w.contextData['email'] = form.get('__contextDataEmail');\n\n w.settings = JSON.stringify(w.settings);\n w.contextData = JSON.stringify(w.contextData);\n\n await saveWork({\n id: work.id,\n name: work.name,\n countryId: work.countryId,\n settings: w.settings,\n contextData: w.contextData,\n resetPasswordTemplateId: w.resetPasswordTemplateId,\n contractorInvitationTemplateId: w.contractorInvitationTemplateId,\n defaultEmail: form.get('defaultEmail'),\n helpDeskEmail: form.get('helpDeskEmail'),\n footerResource: form.get('footerResource'),\n });\n });\n\n return
\n
\n \n {form.input('defaultEmail', { type: 'email' })}\n \n \n form.setFieldValue('__jobEncodingType', v.target.value)}>\n \n \n \n form.setFieldValue('__jobEncodingPrefix', s.target.value)} />\n \n \n form.setFieldValue('__allowAlwaysNotifyInformationLoaded', s.target.value)} />\n \n \n form.setFieldValue('__jobHiddenFields', s.target.value)} />\n \n \n form.setFieldValue('__contractorHiddenFields', s.target.value)} />\n \n \n form.setFieldValue('__workerHiddenFields', s.target.value)} />\n \n \n form.setFieldValue('__machineryHiddenFields', s.target.value)} />\n \n \n form.setFieldValue('__createJobRelations', s.target.value)} />\n \n \n form.setFieldValue('__clientImage', s.target.value)} />\n \n \n form.setFieldValue('__screenImage', s.target.value)} />\n \n \n form.setFieldValue('__simpleDelayedRevokation', s.target.value)} />\n \n \n form.setFieldValue('__jobDelayedRevokation', s.target.value)} />\n \n \n form.setFieldValue('__hideByDefaultEnded', s.target.value)} />\n \n \n form.setFieldValue('__jobChainFinalisation', s.target.value)} />\n \n \n {form.select('contractorInvitationTemplateId', {\n blank: true,\n options: notificationTemplates.value ?? [],\n })}\n \n \n {form.select('resetPasswordTemplateId', {\n blank: true,\n options: notificationTemplates.value ?? [],\n })}\n \n \n {form.input('helpDeskEmail', { type: 'email' })}\n \n \n \n
\n \n {form.input('footerResource', { type: 'text' })}\n \n \n {form.input('__contextDataPhone', { type: 'text' })}\n \n \n {form.input('__contextDataEmail', { type: 'text' })}\n \n
\n
\n
\n
\n
\n
\n {loading.render()}\n \n {t('Save')}\n \n
\n
\n}\n\nexport function AdminWorkConfiguration(props: IProps) {\n const { t } = useTranslation();\n\n return
\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as Admin from '../../store/admin';\n\nimport { AdminWorkConfiguration, IProps } from '../../components/admin/AdminWorkConfiguration';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...Admin.plainActions,\n }),\n Admin.actionCreators,\n)(AdminWorkConfiguration as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\r\n\r\nimport { Card, Chip, G, useForm, useLoading, useToast, useTranslation, ValidationBuilder } from '@components';\r\nimport {\r\n IActivityType, IContractorInvitation, ICountry, ILegalForm,\r\n PropertyGroupObjectType, IPropertyGroupType, IWork, PropertyTypes, IPropertyGroup, IContractorInvitationRegisterData\r\n} from '@models';\r\nimport { delay, redirectTo } from '@utils';\r\nimport { CountryRegionSelect } from '@components/common/CountryRegionSelect';\r\nimport { DynamicProperties } from '@components/user/DynamicProperties';\r\nimport './RegisterContractor.scss';\r\n\r\nexport interface IProps {\r\n getContractorInvitation: Function;\r\n getWorkConstants: Function;\r\n registerContractorInvitation: Function;\r\n token: string;\r\n onSuccess?: Function;\r\n propertyGroupTypes?: IPropertyGroupType[],\r\n getWork: Function;\r\n}\r\n\r\n\r\nfunction RegisterContractorForm(props: IProps) {\r\n const { t } = useTranslation();\r\n const toast = useToast();\r\n const loading = useLoading(true);\r\n const [invitation, setInvitation] = React.useState();\r\n const [activityTypes, setActivityTypes] = React.useState([]);\r\n const [legalForms, setLegalForms] = React.useState([]);\r\n const [countries, setCountries] = React.useState([]);\r\n const [legalFormMandatory, setLegalFormMandatory] = React.useState(false);\r\n const [hiddenFields, setHiddenFields] = React.useState([]);\r\n const [selectedLegalForm, setSelectedLegalForm] = React.useState();\r\n const propertiesInvalid = React.useRef();\r\n\r\n React.useEffect(() => {\r\n if (invitation) {\r\n const updateValues: any = {\r\n workId: invitation.workId,\r\n email: invitation.email,\r\n invitationId: invitation.id,\r\n jobId: invitation.jobId,\r\n parentId: invitation.parentJobHasContractorId,\r\n name: invitation.name,\r\n shipmentNumber: invitation.shipmentNumber,\r\n jobsDescription: invitation.jobsDescription,\r\n startDate: invitation.startDate,\r\n };\r\n form.setFieldValues(updateValues);\r\n }\r\n }, [invitation, activityTypes, legalForms, countries]);\r\n\r\n const createValidation = (workId?: number) =>\r\n ValidationBuilder\r\n .new()\r\n .notEmpty('name', 'Contractor name is required')\r\n .notEmpty('code', 'Code is required')\r\n .minLength('code', 4, 'Code must be at least 4 characters long')\r\n .notEmptyIf(legalFormMandatory, 'legalFormId', 'Legal form is required')\r\n .notEmpty('address', 'Address is required')\r\n .notEmpty('postalCode', 'Postal Code is required')\r\n .notEmpty('countryId', 'Country is required')\r\n .notEmpty('city', 'City is required')\r\n .notEmpty('userName', 'Username is required')\r\n .notEmpty('password', 'Password is required')\r\n .notEmpty('contactName', 'Name is required')\r\n .notEmpty('contactSurname', 'Surname is required')\r\n .notEmpty('contactPhone', 'Phone is required')\r\n .notEmptyIf(workId == 21, 'contactEmail', 'Contact email is required')\r\n .notEmptyIf(workId != 21, 'otherActivityType', 'Activity type is required')\r\n .email('contactEmail',)\r\n .notEmpty('email', 'Email is required')\r\n .notEmpty('passwordConfirmation', 'Password confirmation')\r\n .equalTo('passwordConfirmation', 'password', 'Passwords do not match')\r\n .lift();\r\n\r\n const form = useForm({\r\n initialValues: {\r\n code: '',\r\n name: invitation?.name ?? '',\r\n workId: invitation?.workId!,\r\n remarks: '',\r\n legalFormId: 0,\r\n activityTypeId: undefined,\r\n address: '',\r\n postalCode: '',\r\n countryId: undefined,\r\n regionId: undefined,\r\n countyId: undefined,\r\n\r\n contactName: '',\r\n contactSurname: '',\r\n contactPhone: '',\r\n contactEmail: '',\r\n\r\n invitationId: invitation?.id,\r\n jobId: invitation?.jobId,\r\n email: invitation?.email!,\r\n password: '',\r\n passwordConfirmation: '',\r\n properties: [{\r\n \"value\": \"{}\",\r\n \"valueObj\": {}\r\n }],\r\n\r\n providerCode: '',\r\n shipmentNumber: invitation?.shipmentNumber,\r\n jobsDescription: invitation?.jobsDescription,\r\n startDate: invitation?.startDate,\r\n },\r\n validate: createValidation(invitation?.workId),\r\n validateOnMount: true,\r\n });\r\n\r\n const initialize = loading.wrap(async (token: string) => {\r\n const data = await props.getContractorInvitation(token);\r\n setInvitation(data);\r\n\r\n const constants = await props.getWorkConstants(data.workId);\r\n\r\n if (constants.workSettings != undefined && constants.workSettings.contractorHiddenFields != undefined) {\r\n setLegalFormMandatory(!constants.workSettings.contractorHiddenFields.includes('legalFormId'));\r\n }\r\n\r\n if (constants.workSettings != undefined && constants.workSettings.contractorHiddenFields != undefined) {\r\n const hiddenFields = constants.workSettings.contractorHiddenFields;\r\n setHiddenFields(hiddenFields);\r\n }\r\n\r\n setActivityTypes(constants.activityTypes);\r\n setLegalForms(constants.legalForms);\r\n if (data.workId != 21) {\r\n for (let c in constants.countries) {\r\n if (constants.countries[c].regions.length > 0) {\r\n constants.countries[c].regions = [];\r\n }\r\n }\r\n }\r\n setCountries(constants.countries);\r\n });\r\n\r\n const showField = (field: string) => {\r\n return !hiddenFields.includes(field);\r\n }\r\n\r\n const calculateProperties = () => {\r\n const values: IPropertyGroup[] = form.values.properties;\r\n let newValues: IPropertyGroup[] = [];\r\n if (selectedLegalForm?.hideContractorProperties) {\r\n values.map((p: IPropertyGroup) => {\r\n if (invitation?.propertyGroupTypes != undefined && invitation.propertyGroupTypes.find(g => g.id == p.propertyGroupTypeId)?.hidable) {\r\n newValues = values.filter(v => v.propertyGroupTypeId == undefined && v.propertyGroupTypeId != p.propertyGroupTypeId && v.value != \"{}\");\r\n }\r\n });\r\n return newValues;\r\n }\r\n newValues = values.filter(v => v.propertyGroupTypeId != undefined && v.value != \"{}\")\r\n\r\n return newValues;\r\n }\r\n\r\n const doSave = loading.wrap(async (..._: any) => {\r\n const contractorData: IContractorInvitationRegisterData = {\r\n activityTypeId: form.values.activityTypeId,\r\n otherActivityType: form.values.otherActivityType,\r\n code: form.values.code,\r\n email: form.values.email,\r\n legalFormId: form.values.legalFormId,\r\n name: form.values.name,\r\n password: form.values.password,\r\n properties: calculateProperties(),\r\n workId: invitation?.workId!,\r\n address: form.values.address,\r\n contactEmail: form.values.contactEmail,\r\n contactName: form.values.contactName,\r\n contactPhone: form.values.contactPhone,\r\n contactSurname: form.values.contactSurname,\r\n countryId: form.values.countryId,\r\n countyId: form.values.countyId,\r\n invitationId: invitation?.id,\r\n remarks: form.values.remarks,\r\n userName: form.values.userName,\r\n parentId: invitation?.parentJobHasContractorId,\r\n jobId: invitation?.jobId,\r\n postalCode: form.values.postalCode,\r\n city: form.values.city,\r\n }\r\n\r\n const resp = await props.registerContractorInvitation(contractorData);\r\n\r\n if (resp.hasValue) {\r\n toast.show(t('Contractor registered successfully'));\r\n props.onSuccess && props.onSuccess(form.values);\r\n }\r\n else {\r\n toast.error(t('Error'), { detail: t(resp.error) });\r\n }\r\n });\r\n\r\n React.useEffect(() => {\r\n const lf = legalForms.find(l => l.id == form.values.legalFormId);\r\n setSelectedLegalForm(lf);\r\n }, [form.values.legalFormId])\r\n\r\n const calculateFormPropertiesAreValid = () => {\r\n\r\n const mandatoryPropertyIds: number[] = [];\r\n const mandatoryPropertyNames: string[] = [];\r\n\r\n //Si existen el formulario, evaluamos las propiedades dinámicas acordes a las existentes\r\n if (form.values.properties != undefined && form.values.properties.length > 0) {\r\n let hiddens: number = 0;\r\n if (invitation?.propertyGroupTypes != undefined && invitation.propertyGroupTypes.length > 0) {\r\n const boolTextNames: string[] = [];\r\n invitation.propertyGroupTypes.map(g => {\r\n // ¿Está ocultada esta propiedad por la forma legal y la propiedad hidable del grupo de propiedades?\r\n const isHidden = selectedLegalForm?.hideContractorProperties && g.hidable;\r\n if (!isHidden) {\r\n if (g.mandatory) {\r\n // Si el grupo de propiedades no está oculto y es obligatorio -> cargamos su ID y los nombres de sus propiedades\r\n mandatoryPropertyIds.push(g.id!);\r\n if (g.properties != undefined && g.properties.length > 0) {\r\n g.properties.map(p => {\r\n mandatoryPropertyNames.push(p.name);\r\n // Si alguna de las propiedades es de tipo BoolText, la almacenamos\r\n if (p.typeId == PropertyTypes.BOOLTEXT) {\r\n boolTextNames.push(p.name);\r\n }\r\n })\r\n }\r\n }\r\n }\r\n else {\r\n // Si está ocultada, ya sea por:\r\n // 1- El grupo de propiedades no es ocultable\r\n // 2- La forma legal no oculta las propiedades\r\n // -> La contabilizamos\r\n hiddens += 1;\r\n }\r\n });\r\n if (mandatoryPropertyIds != undefined && mandatoryPropertyIds.length > 0) {\r\n const properties: any[] = [];\r\n\r\n // Evaluamos cuáles son las propiedades del formulario que son obligatorias\r\n form.values.properties.map((p: any) => {\r\n mandatoryPropertyIds.map(m => {\r\n if (p.propertyGroupTypeId == m) {\r\n properties.push(p);\r\n }\r\n })\r\n });\r\n if (properties != undefined && properties.length > 0) {\r\n const values: boolean[] = []\r\n\r\n properties.map(p => {\r\n // Si cualquiera de estas propiedades tiene valor, lo evaluamos\r\n if (p.valueObj != \"{}\") {\r\n mandatoryPropertyNames.map(m => {\r\n // Evaluamos si los BoolTexts hallados tienen valor de texto\r\n if (boolTextNames.includes(m)) {\r\n boolTextNames.map(b => {\r\n if (b == m) {\r\n const valueText = p.valueObj[m + \"_text\"];\r\n if (valueText == \"\" || valueText == undefined) {\r\n values.push(false);\r\n }\r\n else {\r\n values.push(true);\r\n }\r\n }\r\n })\r\n }\r\n // Obtenemos su valor teniendo en cuenta que undefined es false\r\n else {\r\n const value = p.valueObj[m];\r\n if (value != undefined) {\r\n values.push(value);\r\n }\r\n else {\r\n values.push(false);\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n values.push(false);\r\n }\r\n });\r\n // Si existe algún true en el array, entonces el grupo de propiedades es válido\r\n if (values.some(v => v)) {\r\n propertiesInvalid.current = false;\r\n }\r\n else {\r\n if (hiddens < invitation.propertyGroupTypes.length) {\r\n propertiesInvalid.current = true;\r\n }\r\n }\r\n }\r\n }\r\n if (hiddens == invitation.propertyGroupTypes.filter(g => g.mandatory).length) {\r\n propertiesInvalid.current = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n calculateFormPropertiesAreValid();\r\n }, [form.values.properties, selectedLegalForm])\r\n\r\n React.useEffect(() => {\r\n initialize(props.token);\r\n }, []);\r\n\r\n return
\r\n {toast.render()}\r\n\r\n {invitation &&\r\n
\r\n
\r\n \r\n {t('contractor.register.message')}\r\n \r\n\r\n {loading.renderBox()}\r\n
\r\n
\r\n
\r\n

{t('Contractor data')}

\r\n \r\n {form.input('name')}\r\n \r\n \r\n {form.input('code')}\r\n \r\n {showField('activityTypeId') && \r\n {form.select('activityTypeId', {\r\n options: activityTypes,\r\n })}\r\n }\r\n {legalFormMandatory &&\r\n \r\n {form.select('legalFormId', {\r\n options: legalForms.sort((a, b) => a.name.localeCompare(b.name)),\r\n filter: true,\r\n })}\r\n }\r\n {invitation.workId != 21 &&\r\n \r\n {form.input('providerCode')}\r\n }\r\n {invitation.workId != 21 &&\r\n \r\n {form.input('otherActivityType')}\r\n }\r\n \r\n {form.input('address')}\r\n \r\n \r\n {form.input('postalCode')}\r\n \r\n \r\n
\r\n {\r\n form.setFieldValue('countryId', d.countryId);\r\n if (d.regionId) {\r\n form.setFieldValue('regionId', d.regionId);\r\n }\r\n if (d.countyId) {\r\n form.setFieldValue('countyId', d.countyId);\r\n }\r\n }} />\r\n {form.getFormErrorMessage('countryId')}\r\n
\r\n
\r\n \r\n {form.input('city')}\r\n \r\n \r\n {form.textarea('remarks')}\r\n \r\n\r\n {invitation.workId == 21 && <>
\r\n form.setFieldValue('properties', properties)} />\r\n {propertiesInvalid.current && {t('dynamic.properties.error')}}\r\n }\r\n\r\n
\r\n
\r\n

{t('Contact data')}

\r\n \r\n {form.input('contactName')}\r\n \r\n \r\n {form.input('contactSurname')}\r\n \r\n \r\n {form.input('contactPhone')}\r\n \r\n {invitation.workId == 21 && \r\n {form.input('contactEmail')}\r\n }\r\n
\r\n
\r\n

{t('Access data') + ' ' + '\\(' + t('User') + '\\)'}

\r\n \r\n {/* {form.input('username', {defaultValue: invitation.email})} */}\r\n {form.input('userName')}\r\n \r\n \r\n {form.input('email', { type: 'email' })}\r\n \r\n \r\n {form.input('password', { type: 'password' })}\r\n \r\n \r\n {form.input('passwordConfirmation', { type: 'password' })}\r\n \r\n
\r\n
\r\n {invitation.workId != 21 &&\r\n

{t('Other data')}

}\r\n {invitation.workId != 21 && <>
\r\n form.setFieldValue('properties', properties)} />\r\n {propertiesInvalid.current && {t('dynamic.properties.error')}}\r\n }\r\n
\r\n
\r\n {form.errorBox()}\r\n
\r\n
\r\n
\r\n \r\n {t('Create')}\r\n \r\n
\r\n
}\r\n
;\r\n}\r\n\r\nfunction RegisterContractorSuccess({ data }: { data: IContractorInvitation }) {\r\n const { t } = useTranslation();\r\n\r\n return
\r\n
\r\n \r\n
\r\n
\r\n \r\n {t('User created successfully')}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n}\r\n\r\nenum State {\r\n INIT = 0,\r\n SUCCESS = 1,\r\n}\r\n\r\nexport function RegisterContractor(props: IProps) {\r\n const [state, setState] = React.useState(State.INIT);\r\n const [data, setData] = React.useState();\r\n\r\n const onSuccess = async (data: IContractorInvitation) => {\r\n setData(data);\r\n setState(State.SUCCESS);\r\n await delay(2000);\r\n redirectTo('/');\r\n }\r\n\r\n if (state == State.INIT) {\r\n return ;\r\n }\r\n else if (state == State.SUCCESS && data) {\r\n return \r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as ContractorsStore from '@store/contractors';\nimport * as AdminStore from '@store/actions/admin';\nimport { RegisterContractor } from '@components/contractors/RegisterContractor';\n\nexport default connect(\n (_: ApplicationState, props: any) => ({\n getContractorInvitation: ContractorsStore.plainActions.getContractorInvitation,\n getWorkConstants: ContractorsStore.plainActions.getWorkConstants,\n registerContractorInvitation: ContractorsStore.plainActions.registerContractorInvitation,\n token: props.match.params.token,\n getWork: AdminStore.getWork,\n }),\n {}\n)(RegisterContractor as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport { RecoverPassword } from '@components/identity/RecoverPassword';\nimport * as UserStore from '@store/user';\n\nexport default connect(\n (_: ApplicationState, props: any) => ({\n token: props.match.params.token,\n ...UserStore.plainActions,\n }),\n {}\n)(RecoverPassword as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { useForm, useLoading, useToast, useTranslation, ValidationBuilder, G } from '@components';\nimport { delay, redirectTo } from '@utils';\nimport { IChangePasswordData } from '@models/forms';\n\nexport interface IProps {\n token: string;\n changeUserPassword: Function;\n}\n\ntype RecoverData = {\n email: string,\n password: string,\n passwordConfirm: string,\n userName: string\n}\n\nexport function RecoverPassword(props: IProps) {\n const loading = useLoading();\n const { t } = useTranslation();\n const toast = useToast();\n\n const form = useForm({\n initialValues: {\n email: '',\n password: '',\n passwordConfirm: '',\n userName: '',\n },\n validateOnMount: true,\n validate: data => ValidationBuilder.create(data)\n .notEmpty('email')\n .email('email')\n .notEmpty('password')\n .minLength('password', 4)\n .notEmpty('userName')\n .match('passwordConfirm', data.password, 'Passwords do not match')\n .build()\n });\n\n const changePassword = loading.wrap(async () => {\n const data: IChangePasswordData = {\n email: form.values.email,\n token: window.location.href.split('recover/')[1],\n password: form.values.password,\n userName: form.values.userName\n };\n\n const resp = await props.changeUserPassword(data);\n form.setFieldValue('email', '');\n if (resp.isError) {\n toast.error(t(resp.error));\n }\n else {\n toast.show(t('Password changed successfully'));\n await delay(2000);\n redirectTo('/');\n }\n });\n\n return
\n {toast.render()}\n
\n {t('password.reset')}\n \n {form.input('email', {type: 'email'})}\n \n \n {form.input('userName')}\n \n \n {form.input('password', {type: 'password'})}\n \n \n {form.input('passwordConfirm', {type: 'password'})}\n \n
\n {loading.render()}\n {t('Change password')}\n
\n
\n
\n}","import * as React from 'react';\n\nimport { ISecurity } from '@models';\nimport { Card, G, Tag, useForm, useLoading, useMessage, useTranslation, ValidationBuilder } from '@components';\nimport { IChangePasswordData } from '@models/forms';\n\nimport './ChangePassword.scss';\n\nexport interface IProps {\n changePassword: Function;\n security: ISecurity;\n}\n\nconst validateUserData = (data: IChangePasswordData) => {\n return ValidationBuilder.create(data)\n .notEmpty('password', 'Password is required')\n .equalTo('passwordConfirmation', 'password', 'Passwords do not match')\n .build();\n}\n\nexport function ChangePassword(props: IProps) {\n const loading = useLoading();\n const { t } = useTranslation();\n\n const messages = useMessage();\n const form = useForm({\n validateOnMount: true,\n initialValues: {\n userId: props.security.user?.id,\n password: '',\n passwordConfirmation: '',\n },\n loading: loading,\n validate: validateUserData,\n });\n\n const doChange = loading.wrap(async (..._: any) => {\n const resp = await props.changePassword({\n ...form.values,\n userId: props.security.user?.id,\n });\n messages.set(resp, { successMessage: t('Password changed successfully') });\n });\n\n return
\n \n
\n
\n {t('Changing password for user')} {props.security.user?.email}\n
\n \n {form.input('password', { type: 'password' })}\n \n \n {form.input('passwordConfirmation', { type: 'password' })}\n \n
\n
\n
\n {loading.render()}\n {t('Change password')}\n
\n {messages.render()}\n \n
\n}","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as UserStore from '@store/user';\nimport { ChangePassword } from '@components/user/ChangePassword';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...state.identity,\n ...UserStore.plainActions,\n }),\n {\n },\n)(ChangePassword as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\r\n\r\nimport { Card, G, Tag, useForm, useLoading, useMessage, useTranslation, useWorkFormSettings, ValidationBuilder } from '@components';\r\nimport {\r\n IActivityType, IConstants, IContractor, IFieldValidation, ILegalForm, IPropertyGroupType, IResourceStatusType, ISecurity, IWork,\r\n PropertyGroupObjectType, ResourceType\r\n} from '@models';\r\n\r\nimport './ChangePassword.scss';\r\nimport { CountryRegionSelect } from '@components/common/CountryRegionSelect';\r\nimport { saveContractor } from '@store/actions/contractors';\r\nimport { useRemoteData, useToast } from '@utils/hooks';\r\nimport { DynamicProperties } from './DynamicProperties';\r\n\r\ntype GetContractorF = (workId: number, id: number) => Promise;\r\ntype ContractorFromAppUserF = (workId: number) => Promise;\r\n\r\nexport interface IProps {\r\n propertyGroupTypes: IPropertyGroupType[];\r\n legalForms: ILegalForm[];\r\n activityTypes: IActivityType[];\r\n constants: IConstants;\r\n getContractor: GetContractorF;\r\n getContractorFromAppUser: ContractorFromAppUserF;\r\n work: IWork;\r\n contractor: IContractor;\r\n contractorId: number;\r\n security: ISecurity;\r\n saveContractor: Function;\r\n resourceStatusTypes: IResourceStatusType[];\r\n // showRequirements?: boolean;\r\n}\r\n\r\nenum FormType {\r\n Data = 1,\r\n Requirements = 2,\r\n AccessData = 3,\r\n}\r\n\r\nconst validateUserData = (fieldValidations: IFieldValidation[] | undefined) => {\r\n return ValidationBuilder.new()\r\n .notEmpty('')\r\n .withFieldValidations(ResourceType.Contractor, fieldValidations)\r\n .lift();\r\n}\r\n\r\nfunction UserConfigurationForm(props: IProps) {\r\n const { t } = useTranslation();\r\n const loading = useLoading();\r\n const toast = useToast();\r\n // const dialogs = useDialogs();\r\n const saveContractor = loading.wrap(async (req: IContractor) => {\r\n const resp = await props.saveContractor(props.work.id, req);\r\n if (resp.hasValue) {\r\n toast.show(t('Contractor preferences updated'));\r\n return { ok: true };\r\n }\r\n else {\r\n return { ok: false, message: resp.error };\r\n }\r\n }\r\n );\r\n\r\n // const settings = useWorkFormSettings({work: props.work, scope: 'contractor'});\r\n\r\n const canSave = props.security.hasPermission('contractors.edit');\r\n\r\n // const validateContractor = validateUserData(props.work.validations ?? []);\r\n\r\n const form = useForm({\r\n readonly: !canSave,\r\n initialValues: {\r\n id: props.contractorId,\r\n workId: props.contractor.workId,\r\n name: props.contractor.name,\r\n code: props.contractor.code,\r\n address: props.contractor.address,\r\n postalCode: props.contractor.postalCode,\r\n countryId: props.contractor.countryId,\r\n regionId: props.contractor.regionId,\r\n countyId: props.contractor.countyId,\r\n isActive: props.contractor.isActive,\r\n properties: props.contractor.properties,\r\n phone: props.contractor.phone,\r\n remarks: props.contractor.remarks,\r\n providerCode: props.contractor.providerCode\r\n },\r\n // validate: validateContractor,\r\n onSubmit: (data: IContractor) => {\r\n return saveContractor(data);\r\n }\r\n })\r\n\r\n const doSave = (..._: any) => {\r\n return saveContractor(form.values);\r\n }\r\n\r\n return
\r\n \r\n
\r\n
\r\n {t('Changing preferences')}\r\n
\r\n \r\n {form.input('place')}\r\n \r\n
\r\n {form.input('iva')}{form.input('code')}\r\n
\r\n \r\n {form.input('social.region')}\r\n \r\n \r\n {form.input('activity')}\r\n \r\n {form.input('address')}\r\n \r\n
\r\n {form.input('postalCode')} {form.input('province')}\r\n
\r\n \r\n {form.input('phone')}\r\n \r\n \r\n {form.input('email')}\r\n \r\n form.setFieldValue('properties', v)}\r\n embedPortal={'#embed-properties'}\r\n objectType={PropertyGroupObjectType.JobHasContractor}\r\n propertyGroupTypes={props.propertyGroupTypes} />\r\n \r\n {form.textarea('remarks')}\r\n \r\n {form.errorBox()}\r\n
\r\n
\r\n
\r\n {loading.render()}\r\n {canSave && {t('Change preferences')}}\r\n
\r\n \r\n
\r\n}\r\n\r\nexport function UserConfiguration(props: IProps) {\r\n const data = useRemoteData(props.getContractor, {\r\n parameters: [props.work.id, props.contractorId]\r\n });\r\n\r\n return
\r\n {data.renderLoading()}\r\n {data.value && }\r\n
\r\n}","import * as React from 'react';\n\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as ContractorsStore from '../../store/contractors';\nimport * as UserStore from '@store/user';\nimport { isJobHasContractorPropertyGroupType } from '../../models';\nimport { UserConfiguration } from '@components/user/UserConfiguration';\n\n\n\nexport default connect(\n (state: ApplicationState, params: any) => ({\n ...state.identity,\n ...UserStore.plainActions,\n contractorId: params.contractorId ?? parseInt(params.match?.params?.contractorid),\n workId: params.workId ?? parseInt(params.match?.params?.workid),\n ...state.identity,\n ...state.user,\n ...ContractorsStore.plainActions,\n constants: state.constants,\n propertyGroupTypes: state.user.propertyGroupTypes.filter(isJobHasContractorPropertyGroupType),\n resourceStatusTypes: state.user.resourceStatusTypes,\n }),\n UserStore.actionCreators,\n)(UserConfiguration as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport {\n Select,\n useConfirm,\n useLoading,\n useMemoized,\n useMessage,\n useRemoteData,\n useResolveName,\n useTranslation\n} from '@components';\nimport { IWork } from '@models';\nimport {\n IRequirementGroup,\n IRequirementType,\n RequirementTargetType,\n RequirementTypeDependencyType,\n requirementTargetTypes\n} from '@models/requirements';\nimport { flatten } from '@utils';\n\nexport interface IProps {\n getWorkRequirementGroups: Function;\n onClose: Function;\n onSuccess: Function;\n removeWorkRequirementTypeDependency: Function;\n saveWorkRequirementTypeDependency: Function;\n selectedTargetType: number|undefined;\n requirementGroups: IRequirementGroup[];\n requirementType: IRequirementType;\n work: IWork;\n}\n\nenum DependencyOptions {\n NONE = 0,\n PROPAGATE = 1,\n}\n\nexport function EditRequirementTypeDependencies(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const message = useMessage();\n\n const allRequirementGroups = useRemoteData(\n props.getWorkRequirementGroups,\n {\n parameters: [ props.work.id ],\n });\n\n const allDependencyOptions = React.useRef([\n {id: DependencyOptions.NONE, name: t('Select an option')},\n {id: DependencyOptions.PROPAGATE, name: t('Propagate validation')},\n ]);\n\n const allRequirementDependencyTypes = React.useRef([\n {id: RequirementTypeDependencyType.RequirementMustHaveBeenRead, name: t('RequirementMustHaveBeenRead')},\n {id: RequirementTypeDependencyType.RequirementMustHaveBeenValidated, name: t('RequirementMustHaveBeenValidated')},\n {id: RequirementTypeDependencyType.IBO, name: t('requirements.dependency.ibo')},\n ]);\n\n const [selectedDependencyType, setSelectedDependencyType] =\n React.useState(RequirementTypeDependencyType.RequirementMustHaveBeenValidated);\n const [dependencyOptions, setDependencyOptions] = React.useState(DependencyOptions.NONE);\n\n const [allRequirements, setAllRequirements] = React.useState(\n flatten(\n props.requirementGroups.map(g => g.requirementTypes ?? []))\n .filter(r => r.isActive && r.id != props.requirementType.id)\n );\n const [selected, setSelected] = React.useState();\n\n const resolveDependency = useMemoized((id: number) => {\n const d = allRequirements.find(d => d.id == id);\n return d?.title;\n }, [ allRequirements ]);\n const resolveDependencyType = useResolveName(allRequirementDependencyTypes.current);\n const dependencies = props.requirementType.dependencies ?? [];\n\n const doAddRequirement = loading.wrap(async () => {\n if (selected || selectedDependencyType === RequirementTypeDependencyType.IBO) {\n const propagate = dependencyOptions === DependencyOptions.PROPAGATE;\n\n const obj = {\n id: undefined,\n requirementTypeId: props.requirementType.id!,\n dependsOnRequirementId: selected,\n dependencyType: selectedDependencyType,\n propagate: propagate,\n };\n const res = await props.saveWorkRequirementTypeDependency(\n props.requirementType.workId,\n obj);\n message.set(res);\n\n if (res.hasValue) {\n obj.id = res.value;\n props.onSuccess({\n ...props.requirementType,\n dependencies: dependencies.concat([obj])\n }, false);\n }\n\n setDependencyOptions(DependencyOptions.NONE);\n }\n });\n\n const doRemove = loading.wrap(async (id: number) => {\n const res = await props.removeWorkRequirementTypeDependency(\n props.requirementType.workId,\n id);\n message.set(res);\n if (res.hasValue) {\n props.onSuccess({\n ...props.requirementType,\n dependencies: dependencies.filter(d => d.id != id)\n }, false);\n }\n });\n\n const confirm = useConfirm({\n message: t('Are you sure to remove this dependency?'),\n accept: doRemove,\n });\n\n const getRequirementTitle = (d: IRequirementType) => {\n const targetTypeName = requirementTargetTypes.find(r => r.id === d.targetType)?.name;\n return `${targetTypeName}: ${d?.title}`;\n }\n\n React.useEffect(() => {\n if (props.selectedTargetType === RequirementTargetType.JobHasContractor\n && allRequirementGroups.value != undefined) {\n const groups = flatten(allRequirementGroups.value.map(g => g.requirementTypes ?? []))\n .filter(r =>\n r.id != props.requirementType.id\n && (\n r.targetType === RequirementTargetType.Contractor\n || r.targetType === RequirementTargetType.JobHasContractor\n || r.targetType === RequirementTargetType.Job\n || r.targetType === RequirementTargetType.JobHasDepartment)\n )\n .map(r => ({...r, title: getRequirementTitle(r) }));\n setAllRequirements(groups);\n }\n else if (props.selectedTargetType === RequirementTargetType.JobHasWorker\n && allRequirementGroups.value != undefined) {\n const groups = flatten(allRequirementGroups.value.map(g => g.requirementTypes ?? []))\n .filter(r =>\n r.id != props.requirementType.id\n && (\n r.targetType === RequirementTargetType.Worker\n || r.targetType === RequirementTargetType.JobHasWorker\n || r.targetType === RequirementTargetType.Job\n || r.targetType === RequirementTargetType.JobHasContractor\n || r.targetType === RequirementTargetType.JobHasDepartment)\n )\n .map(r => ({...r, title: getRequirementTitle(r) }));\n setAllRequirements(groups);\n }\n else if (props.selectedTargetType === RequirementTargetType.JobHasMachinery\n && allRequirementGroups.value != undefined) {\n const groups = flatten(allRequirementGroups.value.map(g => g.requirementTypes ?? []))\n .filter(r =>\n r.id != props.requirementType.id\n && (\n r.targetType === RequirementTargetType.Machinery\n || r.targetType === RequirementTargetType.JobHasMachinery\n || r.targetType === RequirementTargetType.Job\n || r.targetType === RequirementTargetType.JobHasContractor\n || r.targetType === RequirementTargetType.JobHasDepartment)\n )\n .map(r => ({...r, title: getRequirementTitle(r) }));\n setAllRequirements(groups);\n }\n else if (allRequirementGroups.value != undefined) {\n const groups = flatten(allRequirementGroups.value.map(g => g.requirementTypes ?? []))\n .filter(r => r.id != props.requirementType.id)\n .map(r => ({...r, title: getRequirementTitle(r) }));\n setAllRequirements(groups);\n }\n }, [ allRequirementGroups.value ]);\n\n return
\n {allRequirementGroups.renderLoading()}\n {allRequirementGroups.hasValues() &&\n
\n \n \n \n \n \n \n {dependencies.map((d, i) =>\n \n \n \n \n \n )}\n \n \n \n \n \n \n
\n \n \n
{resolveDependency(d.dependsOnRequirementId)}{resolveDependencyType(d.dependencyType)}\n {d.propagate\n && {t('Propagate validation')}}\n \n confirm(d.id, e)}/>\n
\n
\n
{t('Add requirement dependency')}
\n
\n {loading.renderBox()}\n
\n d.isActive)}\n optionLabel='title'\n optionValue='id'\n value={selected}\n filter\n filterBy={'name'}\n onChange={e => setSelected(e.target.value)}/>\n setSelectedDependencyType(e.target.value)}\n />\n setDependencyOptions(e.target.value)}/>\n\n \n doAddRequirement()}/>\n \n\n {message.render()}\n
\n
\n
\n
\n
\n }\n
\n \n
\n
;\n}","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../../store';\nimport * as ConstantsStore from '../../../store/constants';\nimport * as App from '../../../store/app';\nimport * as Admin from '../../../store/admin';\n\nimport { EditRequirementTypeDependencies } from '@components/admin/requirementTypes/EditRequirementTypeDependencies';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...Admin.plainActions,\n }),\n {},\n)(EditRequirementTypeDependencies as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import {IWork} from \"@models\";\nimport {RequirementTargetType} from \"@models/requirements\";\nimport {flatten} from \"@utils\";\n\nexport const getTargetEntityName = (target: RequirementTargetType) => {\n const targets = {\n [RequirementTargetType.Contractor]: 'Contractor',\n [RequirementTargetType.JobHasContractor]: 'JobHasContractor',\n [RequirementTargetType.JobHasDepartment]: 'JobHasDepartment',\n [RequirementTargetType.JobHasMachinery]: 'JobHasMachinery',\n [RequirementTargetType.JobHasWorker]: 'JobHasWorker',\n [RequirementTargetType.Machinery]: 'Machinery',\n [RequirementTargetType.Worker]: 'Worker',\n [RequirementTargetType.Job]: 'Job',\n };\n\n return targets[target];\n}\n\nexport const getReferenceValues = (p: string|undefined, work: IWork, constants: any) => {\n if (p?.endsWith('MachineryTypeId')) {\n return constants.machineryTypes;\n }\n else if (p?.endsWith('MachinerySubTypeId')) {\n const m = constants.machineryTypes;\n const s = m.map((m: any) => m.subTypes.map((s: any) => ({...s, name: m.name + ': ' + s.name})));\n\n return flatten(s);\n }\n else if (p?.endsWith('WorkShiftId')) {\n return constants.workShifts;\n }\n else if (p?.endsWith('WorkspaceId')) {\n return constants.workspaces;\n }\n else if (p?.endsWith('LegalFormId') || p === 'LegalFormId' || p === 'Contractor.LegalFormId') {\n return constants.legalForms;\n }\n else if (p?.endsWith('WorkerTypeId')) {\n return constants.workerTypes;\n }\n else if (p?.endsWith('ActivityTypeId')) {\n return constants.activityTypes;\n }\n else if (p?.endsWith('CountryId')) {\n return constants.countries;\n }\n else if (p?.endsWith('CountyId')) {\n const countries = constants.countries;\n const s = flatten(countries.map((c: any) => c.regions.map((r: any) =>\n ({...r, name: c.name + ': ' + r.name})\n )));\n\n const res = flatten(s.map((r: any) =>\n r.counties.map((c: any) =>\n ({...c, name: r.name + ': ' + c.name}))));\n\n return res;\n }\n else if (p?.endsWith('RegionId')) {\n const countries = constants.countries;\n const s = countries.map((c: any) => c.regions.map((r: any) =>\n ({...r, name: c.name + ': ' + r.name})\n ));\n\n return flatten(s);\n }\n else {\n return [];\n }\n}\n\nexport const propertyIsString = (propertyName: string) => {\n return !propertyName.includes(\"Id\");\n}\n\nexport const propertyOperatorName = (id: PropertyOperator) => {\n return allOperators.find(o => o.id === id)?.name ?? '?';\n}\n\nexport const propertyTitle = (target: RequirementTargetType, name: string) => {\n if (name == 'JobHasContractor.ParentId' || (target == RequirementTargetType.JobHasContractor && name === 'ParentId')) {\n return 'contractor.issubcontractor';\n }\n else {\n return name;\n }\n}\n\nexport const propertyIsReference = (name: string|undefined) => {\n const references = [\n 'MachineryTypeId', 'MachinerySubTypeId',\n 'Machinery.MachineryTypeId', 'Machinery.MachinerySubTypeId',\n 'CountryId', 'CountyId', 'RegionId',\n 'LegalFormId', 'ActivityTypeId',\n 'Contractor.LegalFormId', 'Contractor.ActivityTypeId',\n 'Job.ActivityTypeId', 'Job.WorkShiftId',\n 'Job.WorkspaceId',\n 'Worker.WorkerTypeId', 'WorkerTypeId',\n 'Worker.Contractor.LegalFormId',\n ];\n return name != undefined && references.includes(name);\n}\n\nexport const propertyIsBoolean = (name: string|undefined) => {\n return name && ['IsMain'].includes(name);\n}\n\nexport const propertyIsCheckExistence = (name: string|undefined) => {\n return name?.includes('ParentId');\n}\n\nexport enum Operator {\n AND = 1,\n OR = 2\n}\n\nexport enum PropertyOperator {\n EQUAL = 1,\n IN = 2,\n LESSER_THAN = 3,\n GREATER_THAN = 4,\n LESSER_EQUAL_THAN = 5,\n GREATER_EQUAL_THAN = 6,\n CONTAINS = 7,\n NOT_EQUAL = 8,\n TRUE = 9,\n FALSE = 10,\n IS_NULL = 11,\n IS_NOT_NULL = 12,\n}\n\nexport const getCommonProperties = (targetType: RequirementTargetType) => {\n if (targetType === RequirementTargetType.Worker) {\n return [\n 'Name', 'Surname', 'Code', 'Remarks', 'WorkerTypeId', 'LegalFormId',\n 'Contractor.LegalFormId',\n ];\n }\n else if (targetType === RequirementTargetType.JobHasWorker) {\n return [\n 'StartDate',\n 'Worker.Name', 'Worker.Surname', 'Worker.Code', 'Worker.Remarks',\n 'Worker.WorkerTypeId',\n 'Worker.LegalFormId',\n 'Worker.Contractor.LegalFormId',\n 'Job.ActivityTypeId',\n 'Job.WorkShiftId',\n 'Job.WorkspaceId',\n 'JobHasContractor.ParentId',\n ];\n }\n else if (targetType === RequirementTargetType.Contractor) {\n return [\n 'Name', 'Code', 'Remarks', 'LegalFormId', 'ActivityTypeId',\n 'Address', 'PostalCode', 'CountryId', 'RegionId', 'CountyId'\n ];\n }\n else if (targetType === RequirementTargetType.JobHasContractor) {\n return [\n 'Contractor.Name', 'Contractor.Code', 'Contractor.Remarks',\n 'Contractor.LegalFormId', 'Contractor.ActivityTypeId',\n 'Contractor.Address', 'Contractor.PostalCode',\n 'Contractor.CountryId', 'Contractor.RegionId',\n 'Contractor.CountyId', 'JobsDescription',\n 'StartDate', 'EndDate',\n 'ParentId',\n 'Job.ActivityTypeId',\n 'Job.WorkShiftId',\n 'Job.WorkspaceId'\n ];\n }\n else if (targetType === RequirementTargetType.Machinery) {\n return [\n 'Name', 'Code', 'Description', 'MachineryTypeId', 'MachinerySubTypeId',\n ];\n }\n else if (targetType === RequirementTargetType.JobHasMachinery) {\n return [\n 'Machinery.Name', 'Machinery.Code', 'Machinery.Description',\n 'Machinery.MachineryTypeId', 'Machinery.MachinerySubTypeId',\n 'Job.ActivityTypeId',\n 'Job.WorkShiftId',\n 'Job.WorkspaceId',\n 'JobHasContractor.ParentId',\n ];\n }\n else if (targetType === RequirementTargetType.JobHasDepartment) {\n return [\n 'DepartmentId', 'ResponsibleId' , 'DateTime', 'EndDateTime', 'IsMain',\n 'Department.Name',\n 'Job.ActivityTypeId',\n 'Job.WorkShiftId',\n 'Job.WorkspaceId'\n ];\n }\n else {\n return [];\n }\n}\n\nexport const allOperators = [\n {id: PropertyOperator.EQUAL, name: 'expressions.operator.Equal'},\n {id: PropertyOperator.GREATER_EQUAL_THAN, name: 'expressions.operator.GreaterEqualThan'},\n {id: PropertyOperator.GREATER_THAN, name: 'expressions.operator.GreaterThan'},\n {id: PropertyOperator.IN, name: 'expressions.operator.In'},\n {id: PropertyOperator.LESSER_EQUAL_THAN, name: 'expressions.operator.LesserEqualThan'},\n {id: PropertyOperator.LESSER_THAN, name: 'expressions.operator.LesserThan'},\n {id: PropertyOperator.CONTAINS, name: 'expressions.operator.Contains'},\n {id: PropertyOperator.NOT_EQUAL, name: 'expressions.operator.NotEqual'},\n {id: PropertyOperator.TRUE, name: 'expressions.operator.True'},\n {id: PropertyOperator.FALSE, name: 'expressions.operator.False'},\n {id: PropertyOperator.IS_NULL, name: 'expressions.operator.IsNull'},\n {id: PropertyOperator.IS_NOT_NULL, name: 'expressions.operator.IsNotNull'}\n];","import * as React from 'react';\n\nimport {useForm, useLoading, useMessage, useTranslation, MultiSelect} from '@components';\nimport {IRequirementType, RequirementTargetType} from '@models/requirements';\nimport {IPropertyGroupType, IWork, PropertyGroupObjectType} from '@models';\nimport {__d, flatten} from '@utils';\nimport {IExpression, Invocation, parse} from '@utils/expressions';\nimport {\n allOperators,\n getCommonProperties,\n getReferenceValues,\n getTargetEntityName,\n Operator,\n propertyIsBoolean,\n propertyIsCheckExistence,\n propertyIsReference,\n propertyIsString,\n PropertyOperator,\n propertyOperatorName,\n propertyTitle,\n} from './RequirementConstants';\n\nimport './EditRequirementTypeExpressions.scss';\n\nexport interface IProps {\n constants: any;\n onClose: Function;\n onSuccess: Function;\n requirementType: IRequirementType;\n saveRequirementType: Function;\n work: IWork;\n}\n\ninterface IPropertyExpression {\n property: string;\n operator: PropertyOperator;\n value: string | number | boolean | undefined;\n __display?: string;\n}\n\ninterface IExpressionFragment {\n id: number;\n operator: Operator;\n expressions: IPropertyExpression[];\n}\n\nconst matchTargetType = (a: PropertyGroupObjectType, b: RequirementTargetType) => {\n return (a == PropertyGroupObjectType.Contractor && b == RequirementTargetType.Contractor)\n || (a == PropertyGroupObjectType.JobHasContractor && b == RequirementTargetType.JobHasContractor)\n || (a == PropertyGroupObjectType.JobHasContractor && b == RequirementTargetType.Contractor)\n || (a == PropertyGroupObjectType.JobHasMachinery && b == RequirementTargetType.JobHasMachinery)\n || (a == PropertyGroupObjectType.JobHasWorker && b == RequirementTargetType.JobHasWorker)\n || (a == PropertyGroupObjectType.Machinery && b == RequirementTargetType.Machinery)\n || (a == PropertyGroupObjectType.JobHasMachinery && b == RequirementTargetType.Machinery)\n || (a == PropertyGroupObjectType.JobHasWorker && b == RequirementTargetType.Worker);\n}\n\nconst matchJobTargetType = (a: PropertyGroupObjectType, b: RequirementTargetType) => {\n return (a == PropertyGroupObjectType.Job && b == RequirementTargetType.JobHasContractor)\n || (a == PropertyGroupObjectType.Job && b == RequirementTargetType.JobHasWorker)\n || (a == PropertyGroupObjectType.Job && b == RequirementTargetType.JobHasMachinery)\n ;\n}\n\nconst getJobDynamicProperties = (targetType: RequirementTargetType, props: IPropertyGroupType[]) => {\n const g = props.filter(p => matchJobTargetType(p.objectType, targetType));\n return flatten(g.map(a => a.properties ?? []));\n}\n\nconst getDynamicProperties = (targetType: RequirementTargetType, props: IPropertyGroupType[]) => {\n const g = props.filter(p => matchTargetType(p.objectType, targetType));\n return flatten(g.map(a => a.properties ?? []));\n}\n\nconst propertyOperatorToCode = (o: PropertyOperator, propertyName: string) => {\n const isString = propertyIsString(propertyName);\n if (o === PropertyOperator.EQUAL) {\n return [\"==\", '', ''];\n }\n else if (o === PropertyOperator.GREATER_THAN) {\n return [\">\", '', ''];\n }\n else if (o === PropertyOperator.LESSER_THAN) {\n return [\"<\", '', ''];\n }\n else if (o === PropertyOperator.GREATER_EQUAL_THAN) {\n return [\">=\", '', ''];\n }\n else if (o === PropertyOperator.LESSER_EQUAL_THAN) {\n return [\"<=\", '' , ''];\n }\n else if (o === PropertyOperator.CONTAINS && isString) {\n return ['Contains', '(\"', '\")'];\n }\n else if (o === PropertyOperator.CONTAINS) {\n return ['Contains', '(', ')'];\n }\n else if (o === PropertyOperator.NOT_EQUAL) {\n return ['!=', '', ''];\n }\n else {\n return ['', '', ''];\n }\n}\n\nconst INVOCATION_NAME_EXP = new RegExp(/\\(\\\"([\\d|\\w|\\W|_|-]+)\\\"\\)/);\n\nconst propertyToCode = (p: IPropertyExpression, targetEntityName: string) => {\n const propIsBoolean = p.operator === PropertyOperator.TRUE\n || p.operator === PropertyOperator.FALSE;\n\n const resourcePrefix = (p.property.includes('.Job.') || p.property.startsWith('Job.'))\n ? '.Job'\n : targetEntityName === 'JobHasMachinery'\n ? '.Machinery'\n : targetEntityName === 'JobHasContractor'\n ? '.Contractor'\n : targetEntityName === 'JobHasWorker'\n ? '.Worker'\n : '';\n\n if ([PropertyOperator.IS_NOT_NULL, PropertyOperator.IS_NULL].includes(p.operator)) {\n const op = p.operator === PropertyOperator.IS_NULL ? '==' : '!=';\n const prefix = p.property.includes(targetEntityName + '.')\n ? ''\n : `${targetEntityName}.`;\n return `${prefix}${p.property} ${op} null`;\n }\n else if (p.property.includes('Property.') && propIsBoolean) {\n const name = p.property.split('Property.')[1];\n const v = p.operator === PropertyOperator.TRUE\n ? 'true'\n : 'false';\n return `${targetEntityName}${resourcePrefix}.GetBooleanProperty(\"${name}\") == ${v}`;\n }\n else if (p.property.includes('Property.')) {\n const name = p.property.split('.')[2];\n return `${targetEntityName}${resourcePrefix}.GetBooleanProperty(\"${name}\")`;\n }\n else {\n const [op, s, e] = propertyOperatorToCode(p.operator, p.property);\n const value = p.value;\n const sep = s != '' ? '.' : '';\n const prefix = p.property.includes(targetEntityName + '.')\n ? ''\n : `${targetEntityName}.`;\n return `${prefix}${p.property}${sep}${op}${s}${value}${e}`\n }\n}\n\nconst expressionToCode = (f: IExpressionFragment, targetEntityName: string) => {\n const op = f.operator === Operator.AND ? ' && ' : ' || ';\n\n const properties = f.expressions.map(p => propertyToCode(p, targetEntityName));\n\n return '(' + properties.join(op) + ')';\n}\n\nconst expressionsToCode = (fragments: IExpressionFragment[], target: RequirementTargetType) => {\n const targetName = getTargetEntityName(target);\n const source = [];\n for (const f of fragments) {\n if (f.expressions) {\n __d('expressionsToCode', targetName, f.expressions, expressionToCode(f, targetName));\n source.push(expressionToCode(f, targetName));\n }\n }\n\n return source.join(' && ');\n}\n\nconst getPropertyNameWithoutPath = (n: string) => {\n const p = n.split('.');\n\n return p[p.length - 1];\n}\n\nfunction ExpressionFragment({\n constants,\n fragment,\n onChangeOperator,\n onPropertiesChanged,\n requestRemove,\n requirementType,\n propertyGroupTypes,\n work,\n}: {\n constants: any,\n fragment: IExpressionFragment,\n onChangeOperator: Function,\n onPropertiesChanged: Function,\n requestRemove: Function,\n requirementType: IRequirementType,\n propertyGroupTypes: IPropertyGroupType[],\n work: IWork,\n}) {\n const { t } = useTranslation();\n\n const [selectedProperty, setSelectedProperty] = React.useState();\n const [selectedOperator, setSelectedOperator] = React.useState();\n const [operators, setOperators] = React.useState([]);\n const [isReference, setIsReference] = React.useState(false);\n const [referenceValues, setReferenceValues] = React.useState([]);\n const [selectedReference, setSelectedReference] = React.useState();\n const [selectedReferenceName, setSelectedReferenceName] = React.useState();\n const [selectedValue, setSelectedValue] = React.useState();\n\n const [properties, setProperties] = React.useState(fragment.expressions);\n const [displayValues, setDisplayValues] = React.useState({});\n\n const isBooleanProp =\n selectedOperator === PropertyOperator.TRUE\n || selectedOperator === PropertyOperator.FALSE\n || selectedOperator === PropertyOperator.IS_NULL\n || selectedOperator === PropertyOperator.IS_NOT_NULL;\n\n React.useEffect(() => {\n const r = referenceValues.find(r => r.id == selectedReference);\n setSelectedReferenceName(r?.name);\n }, [selectedReference]);\n\n React.useEffect(() => {\n const dvs: any = {};\n for (const i in properties) {\n const p = properties[i];\n const n = getPropertyNameWithoutPath(p.property);\n if (propertyIsReference(n) && p.__display == undefined && displayValues[i] == undefined) {\n const values = getReferenceValues(n, work, constants);\n const v = values.find((a: any) => a.id == p.value)?.name;\n\n if (v) {\n dvs[i] = v;\n }\n }\n }\n if (Object.keys(dvs).length > 0) {\n setDisplayValues(dvs);\n }\n }, [properties]);\n\n React.useEffect(() => {\n const isRef = propertyIsReference(selectedProperty);\n const isExst = propertyIsCheckExistence(selectedProperty);\n const isDyn = selectedProperty?.includes('Property');\n setIsReference(isRef);\n\n if (propertyIsBoolean(selectedProperty)) {\n setOperators([\n {id: PropertyOperator.TRUE, name: 'expressions.operator.True'},\n {id: PropertyOperator.FALSE, name: 'expressions.operator.False'},\n ]);\n setSelectedOperator(PropertyOperator.TRUE);\n }\n else if (isDyn) {\n setOperators([\n {id: PropertyOperator.TRUE, name: 'expressions.operator.True'},\n {id: PropertyOperator.FALSE, name: 'expressions.operator.False'},\n ]);\n setSelectedOperator(PropertyOperator.TRUE);\n }\n else if (isExst) {\n setOperators([\n {id: PropertyOperator.IS_NULL, name: 'expressions.operator.IsNull'},\n {id: PropertyOperator.IS_NOT_NULL, name: 'expressions.operator.IsNotNull'},\n ]);\n setSelectedOperator(PropertyOperator.IS_NULL);\n }\n else if (isRef) {\n setOperators([\n {id: PropertyOperator.EQUAL, name: 'expressions.operator.Equal'}\n ]);\n setSelectedOperator(PropertyOperator.EQUAL);\n setReferenceValues(getReferenceValues(selectedProperty, work, constants));\n }\n else {\n setOperators(allOperators);\n }\n }, [selectedProperty]);\n\n const commonProperties = getCommonProperties(requirementType.targetType);\n const dynamicProperties = getDynamicProperties(requirementType.targetType, propertyGroupTypes);\n const jobDynamicProperties = getJobDynamicProperties(requirementType.targetType, propertyGroupTypes);\n\n const addProperty = (..._: any[]) => {\n const newProperty: IPropertyExpression = isReference\n ? { property: selectedProperty!, operator: selectedOperator!, value: selectedReference, __display: selectedReferenceName }\n : propertyIsBoolean(selectedProperty!)\n ? { property: selectedProperty!, operator: PropertyOperator.EQUAL, value: selectedOperator === PropertyOperator.TRUE }\n : { property: selectedProperty!, operator: selectedOperator!, value: selectedValue };\n\n setSelectedProperty(undefined);\n setSelectedOperator(undefined);\n setSelectedReference(undefined);\n setSelectedValue(undefined);\n\n __d('Add property', newProperty);\n\n const newProperties = properties.concat([newProperty]);\n setProperties(newProperties);\n\n onPropertiesChanged(newProperties);\n }\n\n const removePropertyByIndex = (indx: number) => {\n const v = properties.filter((_, i) => i != indx);\n setProperties(v);\n\n onPropertiesChanged(v);\n }\n\n const dynamicPropertyPrefix =\n requirementType.targetType == RequirementTargetType.JobHasContractor\n ? 'Contractor.'\n : requirementType.targetType == RequirementTargetType.JobHasWorker\n ? 'Worker.'\n : requirementType.targetType == RequirementTargetType.JobHasMachinery\n ? 'Machinery.'\n : '';\n\n return
\n
\n onChangeOperator(parseInt(e.target.value))}>\n \n \n \n
\n requestRemove(fragment)} />\n
\n\n
\n \n \n \n \n \n \n {properties.map((p, i) => \n \n \n \n \n )}\n \n
\n \n \n \n
{t(propertyTitle(requirementType.targetType, p.property))}{t(propertyOperatorName(p.operator))}\n {typeof(p.value) === 'boolean' && {JSON.stringify(p.value)}}\n {p.__display && p.__display}\n {!p.__display && displayValues[i] &&\n {displayValues[i]}}\n {!p.__display && !displayValues[i] && p.value}\n \n removePropertyByIndex(i)} />\n
\n
\n\n
\n \n \n {isReference &&\n }\n {!isReference && !isBooleanProp &&\n setSelectedValue(e.target.value)} /> }\n \n \n \n
\n
\n}\n\nconst astGetPropertyName = (ast: IExpression) => {\n if (ast.type === 'path') {\n const name = (ast.values ?? [])\n .filter((a: any) => typeof(a) === 'string').join('.');\n\n return name;\n }\n else {\n return '???';\n }\n}\n\nconst parseOperator = (name: string|undefined) => {\n if (name === 'Contains') {\n return PropertyOperator.CONTAINS;\n }\n else {\n return PropertyOperator.EQUAL;\n }\n}\n\nconst astGetPropertyOperator = (ast: IExpression) => {\n if (ast.type === 'path') {\n const operator = (ast.values ?? [])\n .find((a: any) => a && a.type && a.type == 'invocation') as Invocation;\n\n return parseOperator(operator?.name);\n }\n else {\n return PropertyOperator.LESSER_EQUAL_THAN;\n }\n}\n\nconst astGetInvocation = (ast: IExpression) => {\n const i = (ast.values ?? [])\n .find((v: any) => v && v.type && v.type === 'invocation') as Invocation;\n\n return i;\n}\n\nconst astNodeToExpression = (ast: IExpression) => {\n const propertyName = astGetPropertyName(ast);\n const operator = astGetPropertyOperator(ast);\n const invocation = astGetInvocation(ast);\n const p: IPropertyExpression = {\n property: propertyName,\n operator: operator,\n value: invocation?.args?.value ?? '',\n };\n\n return p;\n}\n\nconst parseAstOperator = (op: string) => {\n const map: any = {\n '==': PropertyOperator.EQUAL,\n '!=': PropertyOperator.NOT_EQUAL,\n };\n\n return map[op] ?? PropertyOperator.EQUAL;\n}\n\nconst astHasBooleanPropInvocation = (ast: IExpression) => {\n const res = (ast.values ?? [])\n .find((i: any) => i && i.type == 'invocation' && i.name == 'GetBooleanProperty');\n\n return res != undefined;\n}\n\nconst astGetPath = (ast: IExpression) => {\n return (ast.values ?? [])\n .filter((i: any) => typeof(i) === 'string')\n .join('.');\n}\n\nconst astToFragments: (ast: IExpression, isRoot?: boolean) => IExpressionFragment[] =\n (ast: IExpression, isRoot: boolean = false) => {\n if (ast.type === 'binaryop'\n && (\n (ast.left?.op !== ast.op && ast.left?.op === 'AND') ||\n (ast.right?.op !== ast.op && ast.right?.op === 'AND') ||\n (ast.left?.op !== ast.op && ast.left?.op === 'OR') ||\n (ast.right?.op !== ast.op && ast.right?.op === 'OR')\n )\n && (ast.op === 'AND' || ast.op === 'OR')\n && isRoot) {\n const left = astToFragments(ast.left!, false);\n const right = astToFragments(ast.right!, false);\n\n return left.concat(right);\n }\n const root: IExpressionFragment = {\n id: new Date().getTime() * Math.random(),\n operator: Operator.AND,\n expressions: [],\n };\n if (ast.type === 'path') {\n const e = astNodeToExpression(ast);\n // return IPropertyExpression\n root.expressions.push(e);\n }\n else if (ast.type === 'binaryop' && astHasBooleanPropInvocation(ast.left!)) {\n const value = ast.right?.value === true;\n const i = astGetInvocation(ast.left!);\n const propertyName = i.args.value!;\n const propertyPath = astGetPath(ast.left!);\n const operator = value ? PropertyOperator.TRUE : PropertyOperator.FALSE;\n\n root.expressions.push({\n property: `${propertyPath}.Property.${propertyName}`,\n operator,\n value: '',\n });\n }\n else if (ast.type === 'binaryop' && (ast.op === '==' || ast.op === '!=')) {\n const property = (ast.left!.values ?? []).join('.');\n const valueIsNull = ast.right!.type === 'path'\n && (ast.right!.values?.length ?? 0) >= 1\n && ast.right!.values![0] === 'null';\n const op = valueIsNull\n ? (parseAstOperator(ast.op) == PropertyOperator.EQUAL\n ? PropertyOperator.IS_NULL\n : PropertyOperator.IS_NOT_NULL)\n : parseAstOperator(ast.op);\n\n root.expressions.push({\n property,\n operator: op,\n value: ast.right!.value as any\n });\n }\n else if (ast.type === 'binaryop') {\n const { left, op, right } = ast;\n root.operator = op === 'AND' ? Operator.AND : Operator.OR;\n\n const a = astToFragments(left as IExpression);\n const b = astToFragments(right as IExpression);\n\n for (const e of a) {\n for (const x of e.expressions) {\n root.expressions.push(x);\n }\n }\n\n for (const e of b) {\n for (const x of e.expressions) {\n root.expressions.push(x);\n }\n }\n }\n\n return [root];\n}\n\nexport function EditRequirementTypeExpression(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const message = useMessage();\n\n const [fragments, setFragments] = React.useState([]);\n const [selectedOperator, setSelectedOperator] = React.useState(Operator.OR);\n\n const form = useForm({\n initialValues: props.requirementType,\n });\n\n const parseAndSetExpression = (expression: string) => {\n const ast = parse(expression);\n __d('ast', ast, expression);\n setFragments(astToFragments(ast, true));\n }\n\n React.useEffect(() => {\n if (props.requirementType?.expression) {\n try {\n parseAndSetExpression(props.requirementType.expression);\n }\n catch (e) {\n console.error(e);\n }\n }\n }, [props.requirementType]);\n\n const doSave = loading.wrap(async () => {\n if (form.values.expression && form.values.expression.trim() == '()') {\n form.values.expression = null;\n }\n const res = await props.saveRequirementType(props.requirementType.workId, form.values);\n message.set(res);\n\n if (res.hasValue) {\n props.onSuccess(form.values);\n }\n });\n\n const appendFragment = (...args: any[]) => {\n const newFragment = {\n id: (new Date().getTime() * Math.random()),\n operator: selectedOperator,\n expressions: [],\n };\n setFragments(f => f.concat([newFragment]));\n }\n\n const removeFragment = (f: IExpressionFragment) => {\n setFragments(a => a.filter(b => b.id != f.id));\n }\n\n const updateFragment = (f: IExpressionFragment, p: IPropertyExpression[], op: Operator|undefined = undefined) => {\n const newFragment = {...f, expressions: p};\n if (op) {\n newFragment.operator = op;\n }\n __d('Update fragment', newFragment);\n const newFragments = fragments.map(i => i == f ? newFragment : i);\n setFragments(newFragments);\n }\n\n React.useEffect(() => {\n try {\n form.setFieldValue('expression',\n expressionsToCode(fragments, props.requirementType.targetType));\n }\n catch (e) {\n form.setFieldValue('expression', null);\n }\n }, [ fragments ]);\n\n return
\n
\n
\n
\n {fragments.length === 0 &&\n \n {t('expressions.add-logic-operator')}\n }\n {fragments.map((f, i) =>\n updateFragment(f, f.expressions, o)}\n onPropertiesChanged={(p: IPropertyExpression[]) => updateFragment(f, p)}\n propertyGroupTypes={props.work.propertyGroupTypes ?? []}\n requestRemove={removeFragment}\n requirementType={props.requirementType}\n work={props.work} />)}\n
\n
\n {form.textarea('expression', { rows: 10 })}\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../../store';\n\nimport { EditRequirementTypeExpression } from '@components/admin/requirementTypes/EditRequirementTypeExpression';\n\nexport default connect(\n (state: ApplicationState) => ({\n constants: {\n ...state.user,\n ...state.constants,\n }\n }),\n {},\n)(EditRequirementTypeExpression as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { G, Tag, useConfirm, useForm, useLoading, useMessage, useRemoteData, useTranslation } from '@components';\nimport {\n IRequirementTypeDocumentRestriction, IRequirementGroup, IRequirementType\n} from '@models/requirements';\n\nexport interface IProps {\n getRequirementType: (workId: number, id: number) => Promise,\n onClose: Function;\n onSuccess: Function;\n removeWorkRequirementTypeDependency: Function;\n removeRequirementTypeDocumentRestriction: Function;\n saveWorkRequirementTypeDependency: Function;\n saveRequirementTypeDocumentRestriction: Function;\n requirementGroups: IRequirementGroup[];\n requirementType: IRequirementType;\n}\n\nconst commonMimeTypes = [\n {id: 'doc,docx', name: 'Word'},\n {id: 'xls,xlsx', name: 'Excel'},\n {id: 'pdf', name: 'Pdf'},\n {id: 'rar', name: 'Rar'},\n {id: 'zip', name: 'Zip'},\n {id: 'jpeg, jpg', name: 'JPG'},\n {id: 'png', name: 'PNG'},\n];\n\ntype IRequirementTypeDocumentRestrictionM = IRequirementTypeDocumentRestriction & {\n __mimeTypes: string[];\n __excludeMimeTypes: string[];\n}\n\nfunction AddDocumentRestriction({\n onSuccess,\n requirementType,\n saveRequirementTypeDocumentRestriction,\n workId,\n}: {\n onSuccess: Function,\n requirementType: IRequirementType,\n saveRequirementTypeDocumentRestriction: Function,\n workId: number,\n}) {\n const { t } = useTranslation();\n const loading = useLoading();\n const messages = useMessage();\n\n const form = useForm({\n initialValues: {\n isActive: true,\n name: '',\n title: '',\n requirementTypeId: requirementType.id!,\n __excludeMimeTypes: [],\n __mimeTypes: []\n },\n loading: loading,\n });\n\n const doSave = loading.wrap(async () => {\n const obj = form.values;\n obj.mimeTypes = obj.__mimeTypes.join(',');\n obj.excludeMimeTypes = obj.__excludeMimeTypes.join(',');\n\n const res = await saveRequirementTypeDocumentRestriction(workId, requirementType.id, obj);\n messages.set(res);\n\n if (res.hasValue) {\n onSuccess();\n }\n });\n\n return
\n
\n \n {form.input('name')}\n \n \n {form.input('title')}\n \n \n {form.multiselect('__mimeTypes', commonMimeTypes)}\n \n \n {form.multiselect('__excludeMimeTypes', commonMimeTypes)}\n \n \n {form.input('regexp')}\n \n
\n {messages.render()}\n
\n {loading.render()}\n {t('Save')}\n
\n
\n}\n\nfunction DocumentRestrictionRepresentation({restriction}: {restriction: IRequirementTypeDocumentRestriction}) {\n const { t } = useTranslation();\n console.log(restriction)\n const style = ['success', 'info', 'warn', 'error'];\n const restrictions: ('mimeTypes'| 'excludeMimeTypes' |'regexp'|'limitFileSize')[] = ['mimeTypes', 'excludeMimeTypes' ,'regexp', 'limitFileSize'];\n const reps = restrictions\n .filter(r => restriction[r])\n .map((r, i) => );\n\n return
\n {reps}\n
\n}\n\nenum FormType {\n List = 1,\n Add = 2,\n}\n\nexport function EditRequirementTypeDocumentRestrictions(props: IProps) {\n const { t } = useTranslation();\n const [formType, setFormType] = React.useState(FormType.List);\n const requirementType = useRemoteData(\n props.getRequirementType,\n {\n parameters: [props.requirementType.workId, props.requirementType.id],\n });\n const loading = useLoading();\n const message = useMessage();\n\n const documentRestrictions = (requirementType.value?.documentRestrictions ?? []).filter(r => r.isActive);\n const reload = () => {\n requirementType.query();\n setFormType(FormType.List);\n }\n\n const doRemove = loading.wrap(async (id: number) => {\n const resp = await props.removeRequirementTypeDocumentRestriction(\n props.requirementType.workId,\n props.requirementType.id,\n id);\n message.set(resp);\n reload();\n });\n\n const confirm = useConfirm({\n message: t('Are you sure to remove this document restriction?'),\n accept: doRemove,\n });\n\n const onCancel = () => {\n if (formType === FormType.Add) {\n setFormType(FormType.List);\n }\n else {\n props.onClose();\n }\n }\n\n return
\n
\n {formType === FormType.List && <>\n \n \n \n \n \n \n \n \n \n \n {documentRestrictions.length == 0 && \n \n }\n {documentRestrictions.map((d, i) => \n \n \n \n \n )}\n \n
\n
\n \n {t('There is no document restrictions')}\n \n
\n
{d.name}{d.title}\n \n \n confirm(d.id, e)}>\n
\n }\n {formType === FormType.Add &&\n }\n
\n
\n {message.render()}\n \n \n {formType === FormType.List &&\n }\n
\n
\n}","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../../store';\nimport * as ConstantsStore from '../../../store/constants';\nimport * as App from '../../../store/app';\nimport * as Admin from '../../../store/admin';\n\nimport { EditRequirementTypeDocumentRestrictions } from '@components/admin/requirementTypes/EditRequirementTypeDocumentRestrictions';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...Admin.plainActions,\n }),\n {},\n)(EditRequirementTypeDocumentRestrictions as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { IRequirementType, IRequirementTypeSuggestion } from '@models/requirements';\nimport { IOption } from '@models';\nimport { useConfirm, useDataTable, useForm, useRemoteData, useTranslation, ValidationBuilder } from '@components';\n\ntype GetF = (workId: number, id: number) => Promise;\ntype SaveF = (workId: number, suggestion: IRequirementTypeSuggestion) => Promise>;\ntype RemoveF = (workId: number, id: number) => Promise>;\n\nexport interface IProps {\n getRequirementType: GetF;\n onClose: Function;\n onSuccess: Function;\n saveRequirementTypeSuggestion: SaveF;\n removeRequirementTypeSuggestion: RemoveF;\n requirementTypeId: number;\n workId: number;\n}\n\nenum FormType {\n LIST = 1,\n ADD = 2,\n}\n\nexport function RequirementTypeSuggestions(props: IProps) {\n const { t } = useTranslation();\n\n const [formType, setFormType] = React.useState(FormType.LIST);\n\n const data = useRemoteData(\n props.getRequirementType,\n {\n parameters: [props.workId, props.requirementTypeId],\n });\n\n const onDelete = data.loading.wrap(async (suggestion: IRequirementTypeSuggestion) => {\n await props.removeRequirementTypeSuggestion(props.workId, suggestion.id!);\n await data.query();\n });\n\n const confirmDelete = useConfirm({\n message: t('Are you sure to delete the element ?'),\n accept: onDelete,\n });\n\n const dataTable = useDataTable({\n data: data.value?.suggestions ?? [],\n columns: [\n 'name'\n ],\n actions: [\n {icon: 'trash', className: 'td-sm', onClick: confirmDelete }\n ]\n });\n\n const addForm = useForm({\n initialValues: {\n name: '',\n requirementTypeId: props.requirementTypeId,\n },\n validate: d => ValidationBuilder.create(d).notEmpty('name').build(),\n });\n\n const onCancel = () => {\n if (formType === FormType.LIST) {\n props.onClose();\n }\n else {\n setFormType(FormType.LIST);\n }\n }\n\n const onSave = data.loading.wrap(async () => {\n const _ = await props.saveRequirementTypeSuggestion(props.workId, addForm.values);\n data.query();\n setFormType(FormType.LIST);\n });\n\n return
\n {data.renderLoading()}\n {formType === FormType.LIST &&\n
\n {dataTable()}\n
}\n\n {formType === FormType.ADD &&\n
\n {addForm.input('name', {placeholder: t('Suggestion')})}\n {addForm.errorBox()}\n
}\n\n
\n \n {formType === FormType.LIST &&\n setFormType(FormType.ADD)}>{t('Add')}}\n {formType === FormType.ADD &&\n onSave()}>{t('Save')}}\n
\n
\n}","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../../store';\nimport * as ConstantsStore from '../../../store/constants';\nimport * as AdminStore from '../../../store/admin';\n\nimport { RequirementTypeSuggestions } from '../../../components/admin/requirementTypes/RequirementTypeSuggestions';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...AdminStore.plainActions,\n }),\n {},\n)(RequirementTypeSuggestions as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../../store';\nimport * as ConstantsStore from '../../../store/constants';\nimport * as AdminStore from '../../../store/admin';\n\nimport { RequirementTypeValidationHolderForm } from '../../../components/admin/requirementTypes/RequirementTypeValidationHolderForm';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...AdminStore.plainActions,\n }),\n {},\n)(RequirementTypeValidationHolderForm as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { IWork } from '@models';\nimport { IRequirementTypeValidationHolder } from '@models/requirements';\nimport { R, useForm, useRemoteData, useTranslation } from '@components';\n\ntype GetWorkResourcesF = (id: number) => Promise;\n\nexport interface IProps {\n getWorkResources: GetWorkResourcesF;\n onChange: Function;\n validationHolder: IRequirementTypeValidationHolder;\n workId: number;\n}\n\nexport function RequirementTypeValidationHolderForm(props: IProps) {\n const { t } = useTranslation();\n\n const work = useRemoteData(props.getWorkResources, { parameters: [props.workId] });\n\n const form = useForm({\n initialValues: props.validationHolder,\n onChange: props.onChange,\n });\n\n return
\n {work.renderLoading()}\n
\n \n {form.checkBox('optional')}\n \n\n \n {form.checkBox('isBlocking')}\n \n \n {form.checkBox('onlyNotifications')}\n \n \n {form.input('validationOrder', { type: 'number', map: parseInt })}\n \n \n {form.checkBox('jobResponsible')}\n \n \n {form.checkBox('jobImpliedRso')}\n \n \n {form.select('appUserId', { blank: true, options: work.value?.users ?? [], optionLabel: 'userName' })}\n \n \n {form.select('departmentId', { blank: true, options: work.value?.departments ?? [] })}\n \n \n {form.select('workFunctionId', { blank: true, options: work.value?.workFunctions ?? [] })}\n \n
\n
\n}\n","import * as React from 'react';\n\nimport { IRequirementType, IRequirementTypeValidationHolder } from '@models/requirements';\nimport { useConfirm, useDataTable, useMemoized, useRemoteData, useTranslation } from '@components';\nimport RequirementTypeValidationHolder from '@containers/admin/requirementTypes/RequirementTypeValidationHolderContainer';\nimport { IOption, IWork } from '@models';\n\ntype GetF = (workId: number, id: number) => Promise;\ntype GetWorkResourcesF = (workId: number) => Promise;\ntype SaveF = (workId: number, data: IRequirementTypeValidationHolder) => Promise>;\ntype RemoveF = (workId: number, id: number) => Promise>;\n\nexport interface IProps {\n getRequirementType: GetF;\n getWorkResources: GetWorkResourcesF;\n onClose: Function;\n requirementType: IRequirementType;\n saveRequirementTypeValidationHolder: SaveF;\n removeRequirementTypeValidationHolder: RemoveF;\n}\n\nenum FormType {\n LIST = 1,\n ADD = 2,\n EDIT = 3,\n}\n\nexport function RequirementTypeValidationHolders(props: IProps) {\n const { t } = useTranslation();\n\n const work = useRemoteData(\n props.getWorkResources,\n { parameters: [props.requirementType.workId] });\n\n const createNewHolderRecord = () =>\n ({ requirementTypeId: props.requirementType.id! });\n\n const [formType, setFormType] = React.useState(FormType.LIST);\n const [editHolderRecord, setEditHolder] = React.useState();\n const [addHolderRecord, setAddHolderRecord] = React.useState(\n createNewHolderRecord());\n\n React.useEffect(() => {\n if (editHolderRecord) {\n setFormType(FormType.EDIT);\n }\n else {\n setFormType(FormType.LIST);\n }\n }, [editHolderRecord]);\n\n const data = useRemoteData(\n props.getRequirementType,\n {\n parameters: [props.requirementType.workId, props.requirementType.id]\n });\n\n const doDelete = data.loading.wrap(async (holder: IRequirementTypeValidationHolder) => {\n await props.removeRequirementTypeValidationHolder(props.requirementType.workId, holder.id!);\n await data.query();\n });\n\n const confirmDelete = useConfirm({\n message: t('Are you sure to delete the element ?'),\n accept: doDelete,\n });\n\n const resolveUserName = useMemoized(\n (id: number) => work.value?.users?.find(u => u.id == id)?.userName);\n const resolveDepartment = useMemoized(\n (id: number) => work.value?.departments?.find(u => u.id == id)?.name);\n const resolveWorkFunction = useMemoized(\n (id: number) => work.value?.workFunctions?.find(u => u.id == id)?.name);\n\n const renderHolder = (r: IRequirementTypeValidationHolder) => {\n if (r.appUserId) {\n return resolveUserName(r.appUserId);\n }\n else if (r.jobResponsible) {\n return t('job.responsible');\n }\n else if (r.departmentId) {\n return resolveDepartment(r.departmentId);\n }\n else if (r.workFunctionId) {\n return resolveWorkFunction(r.workFunctionId);\n }\n else if (r.jobImpliedRso) {\n return t('job.rso.implied');\n }\n else {\n return r.policy;\n }\n }\n\n const dataTable = useDataTable({\n data: data.value?.validationHolders ?? [],\n columns: [\n { className: 'td-sm center', render: r => r.onlyNotifications ? : null },\n { className: 'td-sm center', render: r => r.isBlocking ? : null },\n { field: 'validationOrder', className: 'td-sm center' },\n { title: t('Holder'), render: renderHolder },\n { field: 'optional', delegate: 'boolean', className: 'td-md', title: 'requirement.holder.optional' },\n ],\n actions: [\n { icon: 'pencil', onClick: setEditHolder },\n { icon: 'trash', onClick: confirmDelete }\n ]\n });\n\n const onCancel = () => {\n if (formType === FormType.LIST) {\n props.onClose();\n }\n else {\n setEditHolder(undefined);\n setFormType(FormType.LIST);\n }\n }\n\n const onSaveClicked = data.loading.wrap(async () => {\n if (formType === FormType.EDIT) {\n await props.saveRequirementTypeValidationHolder(props.requirementType.workId, editHolderRecord!);\n }\n else {\n await props.saveRequirementTypeValidationHolder(props.requirementType.workId, addHolderRecord);\n }\n\n await data.query();\n\n setFormType(FormType.LIST);\n });\n\n return
\n {data.renderLoading()}\n\n
\n {formType === FormType.LIST &&\n dataTable()}\n {formType === FormType.ADD &&\n }\n {formType === FormType.EDIT &&\n }\n
\n\n
\n \n {(formType === FormType.ADD || formType == FormType.EDIT) &&\n }\n {formType === FormType.LIST &&\n }\n
\n
;\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../../store';\nimport * as ConstantsStore from '../../../store/constants';\nimport * as AdminStore from '../../../store/admin';\n\nimport { RequirementTypeValidationHolders } from '../../../components/admin/requirementTypes/RequirementTypeValidationHolders';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...AdminStore.plainActions,\n }),\n {},\n)(RequirementTypeValidationHolders as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\r\n\r\nimport {\r\n BreadcrumbItem,\r\n classNames,\r\n F,\r\n G,\r\n i18n,\r\n IRemoteData,\r\n R,\r\n SplitButton,\r\n Tag,\r\n ValidationBuilder,\r\n useConfirm,\r\n useDialogs,\r\n useForm,\r\n useLoading,\r\n useMemoized,\r\n useDebounce,\r\n useMessage,\r\n useRemoteData,\r\n useTranslation,\r\n} from '@components';\r\nimport Constants from '../../Constants';\r\nimport { INotificationTemplate, IWork } from '@models';\r\nimport {\r\n IRequirementExpirationType,\r\n IRequirementGroup,\r\n IRequirementType,\r\n IRequirementTypeDocumentRestriction,\r\n IRequirementValidationType,\r\n RequirementTargetType,\r\n RequirementTypeKind,\r\n requirementTargetTypes\r\n} from '@models/requirements';\r\nimport EditRequirementTypeDependenciesContainer\r\n from '@containers/admin/requirementTypes/EditRequirementTypeDependenciesContainer';\r\nimport EditRequirementTypeExpression from '@containers/admin/requirementTypes/EditRequirementTypeExpressionContainer';\r\nimport EditRequirementTypeDocumentRestrictionsContainer\r\n from '@containers/admin/requirementTypes/EditRequirementTypeDocumentRestrictionsContainer';\r\nimport RequirementTypeSuggestions from '@containers/admin/requirementTypes/RequirementTypeSuggestionsContainer';\r\nimport RequirementTypeValidationHolders\r\n from '@containers/admin/requirementTypes/RequirementTypeValidationHoldersContainer';\r\nimport { WorkToolbar } from './WorkToolbar';\r\n\r\nimport './AdminWorkRequirements.scss';\r\nimport { flatten } from '@utils';\r\n\r\nconst requirementTypeKinds = [\r\n { id: RequirementTypeKind.Mandatory, name: i18n('Mandatory') },\r\n { id: RequirementTypeKind.Optional, name: i18n('Optional') }\r\n];\r\n\r\nfunction AddRequirementGroupInput({\r\n onClose, onSuccess, saveRequirementGroup, workId,\r\n}: {\r\n onClose: Function,\r\n onSuccess: Function,\r\n saveRequirementGroup: Function,\r\n workId: number,\r\n}) {\r\n const { t } = useTranslation();\r\n const loading = useLoading();\r\n const message = useMessage();\r\n\r\n const form = useForm({\r\n initialValues: {\r\n name: '',\r\n title: '',\r\n description: '',\r\n workId: workId,\r\n isActive: true,\r\n },\r\n validateOnMount: true,\r\n validate: ValidationBuilder\r\n .new()\r\n .notEmpty('name')\r\n .notEmpty('title')\r\n .lift(),\r\n });\r\n\r\n const doSave = loading.wrap(async (..._: any) => {\r\n const res = await saveRequirementGroup(workId, form.values);\r\n message.set(res);\r\n if (res.hasValue) {\r\n onSuccess();\r\n }\r\n });\r\n\r\n return
\r\n
\r\n
\r\n {form.input('name', { autoFocus: true })}\r\n {form.input('title')}\r\n {form.input('description')}\r\n {form.input('color', { type: 'color' })}\r\n
\r\n {form.textarea('legend', { containerClassName: 'legend-container', containerStyle: { height: '100%' } })}\r\n
\r\n
\r\n
\r\n

Previsualización

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {message.render()}\r\n
\r\n onClose()}>{t('Cancel')}\r\n \r\n {t('Save')}\r\n \r\n
\r\n
\r\n}\r\n\r\nfunction EditRequirementGroup({\r\n onClose, onSuccess, saveRequirementGroup, workId,\r\n data\r\n}: {\r\n data: IRequirementGroup,\r\n onClose: Function,\r\n onSuccess: Function,\r\n saveRequirementGroup: Function,\r\n workId: number,\r\n}) {\r\n const { t } = useTranslation();\r\n const loading = useLoading();\r\n const message = useMessage();\r\n\r\n const form = useForm({\r\n initialValues: data,\r\n validateOnMount: true,\r\n validate: ValidationBuilder\r\n .new()\r\n .notEmpty('name')\r\n .notEmpty('title')\r\n .lift(),\r\n });\r\n\r\n const doSave = loading.wrap(async (..._: any) => {\r\n const res = await saveRequirementGroup(workId, form.values);\r\n message.set(res);\r\n if (res.hasValue) {\r\n onSuccess();\r\n }\r\n });\r\n\r\n return
\r\n
\r\n
\r\n {form.input('orderValue', { type: 'number' })}\r\n
\r\n {form.textarea('legend', { containerClassName: 'legend-container', containerStyle: { height: '100%' } })}\r\n
\r\n
\r\n
\r\n

Previsualización

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {message.render()}\r\n
\r\n onClose()}>{t('Cancel')}\r\n \r\n {t('Save')}\r\n \r\n
\r\n
\r\n}\r\n\r\nfunction AddRequirementTypeInput({\r\n group, onClose, onSuccess,\r\n requirementExpirationTypes,\r\n requirementValidationTypes,\r\n saveRequirementType,\r\n}: {\r\n group: IRequirementGroup,\r\n onClose: Function,\r\n onSuccess: Function,\r\n requirementExpirationTypes: IRequirementExpirationType[],\r\n requirementValidationTypes: IRequirementValidationType[],\r\n saveRequirementType: Function,\r\n}) {\r\n const { t } = useTranslation();\r\n const loading = useLoading();\r\n const message = useMessage();\r\n const form = useForm({\r\n initialValues: {\r\n name: '',\r\n title: '',\r\n description: '',\r\n criteria: '',\r\n template: '',\r\n kindId: RequirementTypeKind.Mandatory,\r\n workId: group.workId,\r\n requirementGroupId: group.id!,\r\n targetType: RequirementTargetType.Contractor,\r\n expirationTypeId: requirementExpirationTypes?.[0]?.id,\r\n isActive: true,\r\n isResourcePicture: false,\r\n },\r\n validateOnMount: true,\r\n validate: ValidationBuilder.new().notEmpty('name').lift(),\r\n });\r\n\r\n const doSave = loading.wrap(async () => {\r\n const res = await saveRequirementType(group.workId, form.values);\r\n message.set(res);\r\n if (res.hasValue) {\r\n onSuccess();\r\n }\r\n });\r\n\r\n return
\r\n
\r\n \r\n {form.select('kindId', requirementTypeKinds)}\r\n \r\n \r\n {form.input('name')}\r\n \r\n \r\n {form.input('title')}\r\n \r\n \r\n {form.input('description')}\r\n \r\n \r\n {form.select('targetType', requirementTargetTypes)}\r\n \r\n \r\n {form.select('expirationTypeId', requirementExpirationTypes)}\r\n \r\n \r\n {form.select('validationTypeId', requirementValidationTypes)}\r\n \r\n \r\n {form.checkBox('isResourcePicture')}\r\n \r\n
\r\n {loading.renderBox()}\r\n {message.render()}\r\n
\r\n \r\n \r\n
\r\n
\r\n}\r\n\r\nfunction RequirementTypeConfiguration({\r\n onClose, onSuccess,\r\n requirementType, requirementExpirationTypes, requirementValidationTypes,\r\n saveRequirementType,\r\n templates,\r\n}: {\r\n onClose: Function,\r\n onSuccess: Function,\r\n requirementType: IRequirementType,\r\n requirementExpirationTypes: IRequirementExpirationType[],\r\n requirementValidationTypes: IRequirementValidationType[],\r\n saveRequirementType: Function,\r\n templates: INotificationTemplate[],\r\n}) {\r\n const { t } = useTranslation();\r\n const loading = useLoading();\r\n const message = useMessage();\r\n\r\n console.log('requirementType', requirementType);\r\n\r\n const form = useForm({\r\n initialValues: requirementType\r\n });\r\n\r\n const billingTypes = [\r\n { id: 1, name: t('') },\r\n { id: 2, name: t('Generic documentation') },\r\n { id: 3, name: t('Juridic documentation') }\r\n ];\r\n\r\n const doSave = loading.wrap(async () => {\r\n const resp = await saveRequirementType(requirementType.workId, form.values);\r\n message.set(resp);\r\n if (resp.hasValue) {\r\n onSuccess(form.values);\r\n onClose();\r\n }\r\n });\r\n\r\n return
\r\n
\r\n
\r\n
\r\n \r\n {form.select('kindId', requirementTypeKinds)}\r\n \r\n \r\n {form.checkBox('isShared', { containerClassName: 'center' })}\r\n \r\n \r\n {form.checkBox('isPublic', { containerClassName: 'center' })}\r\n \r\n \r\n {form.select('validationTypeId',\r\n requirementValidationTypes.map(v => ({ ...v, name: t(v.name) })))}\r\n \r\n \r\n {form.select('expirationTypeId', requirementExpirationTypes)}\r\n \r\n \r\n {form.input('expirationThreshold', { type: 'number' })}\r\n \r\n \r\n {form.editor('criteria', { className: 'criteria-editor' })}\r\n \r\n \r\n {form.input('template')}\r\n \r\n \r\n {form.select('billingTypeId', billingTypes)}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {form.input('color', { type: 'color' })}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {form.select('messageTemplateId', templates)}\r\n \r\n \r\n {form.input('orderValue', { type: 'number' })}\r\n \r\n \r\n {form.checkBox('notifyContractors', { containerClassName: 'center' })}\r\n \r\n \r\n {form.checkBox('notifyResponsible', { containerClassName: 'center' })}\r\n \r\n \r\n {form.checkBox('requireJobInformationAccess', { containerClassName: 'center' })}\r\n \r\n \r\n {form.input('notifyTitle')}\r\n \r\n \r\n {form.input('notifyPolicy')}\r\n \r\n \r\n {form.checkBox('expirationRequired')}\r\n \r\n \r\n {form.checkBox('isResourcePicture')}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n}\r\n\r\nfunction RequirementTypeSetPolicy({ onClose, onSuccess, requirementType, saveRequirementType }: {\r\n onClose: Function, onSuccess: Function, requirementType: IRequirementType, saveRequirementType: Function,\r\n}) {\r\n const { t } = useTranslation();\r\n const loading = useLoading();\r\n const message = useMessage();\r\n\r\n const form = useForm({\r\n initialValues: requirementType\r\n });\r\n\r\n const doSave = loading.wrap(async () => {\r\n const resp = await saveRequirementType(requirementType.workId, form.values);\r\n message.set(resp);\r\n if (resp.hasValue) {\r\n onSuccess(form.values);\r\n onClose();\r\n }\r\n });\r\n\r\n return
\r\n
\r\n \r\n {form.input('policy')}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n}\r\n\r\nfunction DocumentRestrictionRepresentation({ restriction }: { restriction: IRequirementTypeDocumentRestriction }) {\r\n const { t } = useTranslation();\r\n\r\n const style = ['success', 'info', 'warn', 'error'];\r\n const restrictions: ('mimeTypes' | 'regexp' | 'limitFileSize')[] = ['mimeTypes', 'regexp', 'limitFileSize'];\r\n const reps = restrictions\r\n .filter(r => restriction[r])\r\n .map((r, i) => );\r\n\r\n return
\r\n {reps}\r\n
\r\n}\r\n\r\nfunction RequirementTypeInfo({\r\n requirementGroups, requirementType, requirementValidationTypes,\r\n}: {\r\n requirementGroups: IRequirementGroup[],\r\n requirementType: IRequirementType,\r\n requirementValidationTypes: IRequirementValidationType[],\r\n}) {\r\n const { t } = useTranslation();\r\n\r\n const form = useForm({\r\n initialValues: requirementType,\r\n readonly: true,\r\n });\r\n\r\n const [allRequirements, setAllRequirements] = React.useState(\r\n flatten(requirementGroups.map(g => g.requirementTypes ?? []))\r\n .filter(r => r.isActive && r.id != requirementType.id));\r\n const resolveDependency = useMemoized((id: number) => {\r\n return allRequirements.find(d => d.id == id)?.name;\r\n });\r\n const dependencies = requirementType.dependencies ?? [];\r\n const documentRestrictions =\r\n (requirementType.documentRestrictions ?? []).filter(r => r.isActive);\r\n\r\n return
\r\n \r\n {form.checkBox('isShared')}\r\n \r\n \r\n {form.checkBox('isPublic')}\r\n \r\n \r\n {form.select('validationTypeId', requirementValidationTypes)}\r\n \r\n \r\n {form.input('policy')}\r\n \r\n \r\n \r\n {form.values.expression}\r\n \r\n \r\n \r\n
\r\n
    \r\n {dependencies.map((d, i) =>\r\n
  • {resolveDependency(d.dependsOnRequirementId)}
  • )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n {documentRestrictions.map((d, i) =>\r\n
\r\n {d.name} {d.title} \r\n
)}\r\n
\r\n
\r\n
\r\n}\r\n\r\nfunction RequirementTypeRow({\r\n className,\r\n notificationTemplates,\r\n requirementGroup,\r\n requirementGroups, requestRefresh, requirementType,\r\n requirementExpirationTypes,\r\n requirementValidationTypes,\r\n saveRequirementType,\r\n selectedTargetType,\r\n work,\r\n requestSelected\r\n}: {\r\n className?: string,\r\n notificationTemplates: INotificationTemplate[],\r\n requirementGroup: IRequirementGroup,\r\n requirementGroups: IRequirementGroup[],\r\n requestRefresh: Function,\r\n requirementType: IRequirementType,\r\n requirementExpirationTypes: IRequirementExpirationType[],\r\n requirementValidationTypes: IRequirementValidationType[],\r\n saveRequirementType: Function,\r\n selectedTargetType: number | undefined,\r\n work: IWork,\r\n requestSelected: Function,\r\n}) {\r\n const { t } = useTranslation();\r\n const splitButton = React.useRef();\r\n const dialogs = useDialogs({\r\n onShow: () => requestSelected?.(requirementType.id),\r\n });\r\n const loading = useLoading();\r\n const [expanded, setExpanded] = React.useState(false);\r\n\r\n const form = useForm({\r\n initialValues: requirementType,\r\n });\r\n\r\n const saveChanges = async (..._: any) => {\r\n if (form.hasChanges()) {\r\n await saveRequirementType(requirementType.workId, form.values);\r\n }\r\n }\r\n\r\n const doRemove = async () => {\r\n const obj = {\r\n ...form.values,\r\n isActive: false\r\n };\r\n await saveRequirementType(requirementType.workId, obj);\r\n requestRefresh();\r\n }\r\n\r\n const confirmRemove = useConfirm({\r\n accept: doRemove,\r\n message: t('Are you sure to remove this requirement type?'),\r\n target: () => splitButton.current.container,\r\n });\r\n\r\n const actions = [\r\n { label: t('Configure'), command: dialogs.showFromEvent('configuration') },\r\n { label: t('Set security policy'), command: dialogs.showFromEvent('set-policy') },\r\n { label: t('Edit expression'), command: dialogs.showFromEvent('edit-expression') },\r\n { label: t('Edit dependencies'), command: dialogs.showFromEvent('edit-dependencies') },\r\n { label: t('Document restrictions'), command: dialogs.showFromEvent('edit-document-restrictions') },\r\n { label: t('Suggestions'), command: dialogs.showFromEvent('suggestions') },\r\n { label: t('Validation holders'), command: dialogs.showFromEvent('validationHolders') },\r\n { label: t('Remove requirement'), command: confirmRemove },\r\n ];\r\n\r\n const onSuccess = (r: IRequirementType, close: boolean = true) => {\r\n form.setFieldValues(r);\r\n if (close) {\r\n dialogs.clear();\r\n }\r\n }\r\n\r\n const allowDrop = (event: React.DragEvent) => {\r\n event.preventDefault();\r\n }\r\n\r\n const onDrop = loading.wrap(async (event: React.DragEvent) => {\r\n const currentOrder = requirementType.orderValue;\r\n const sourceId = parseInt(event.dataTransfer.getData('text/plain'));\r\n const sourceRequirement = requirementGroup.requirementTypes?.find(r => r.id === sourceId);\r\n if (sourceRequirement) {\r\n sourceRequirement.orderValue = (currentOrder ?? 0);\r\n const siblings = requirementGroup\r\n .requirementTypes?.filter(r =>\r\n r.id != sourceRequirement.id\r\n && (\r\n ((r.orderValue ?? 0) > (currentOrder ?? 0))\r\n || ((r.orderValue === currentOrder) && r.id! > requirementType.id!)));\r\n siblings?.forEach(s => s.orderValue = (s.orderValue ?? 0) + 1);\r\n requirementType.orderValue = (currentOrder ?? 0) + 1;\r\n\r\n await saveRequirementType(requirementType.workId, requirementType);\r\n await saveRequirementType(requirementType.workId, sourceRequirement);\r\n for (const s of siblings ?? []) {\r\n await saveRequirementType(requirementType.workId, s);\r\n }\r\n await requestRefresh();\r\n }\r\n });\r\n\r\n const onDragStart = (event: React.DragEvent) => {\r\n event.dataTransfer.setData('text/plain', requirementType.id + '');\r\n }\r\n\r\n return <>\r\n \r\n \r\n {dialogs.render('edit-document-restrictions', {\r\n title: t('Edit document restrictions') + ': ' + requirementType.name,\r\n }, () =>\r\n )}\r\n {dialogs.render(\r\n 'edit-dependencies',\r\n {\r\n title: t('Edit requirement dependencies') + ': ' + requirementType.name,\r\n style: { width: '80%' }\r\n }, () =>\r\n )}\r\n {dialogs.render('edit-expression', {\r\n title: t('Edit requirement expression') + ': ' + requirementType.name,\r\n style: { width: '80%' }\r\n }, () =>\r\n )}\r\n {dialogs.render('suggestions', {\r\n title: t('Suggestions') + ': ' + requirementType.name,\r\n style: { width: '80%' }\r\n }, () =>\r\n )}\r\n {dialogs.render('configuration', {\r\n title: t('Requirement configuration') + ': ' + requirementType.name,\r\n style: { width: '90%' }\r\n }, () =>\r\n )}\r\n {dialogs.render('set-policy', {\r\n title: t('Set policy') + ': ' + requirementType.name,\r\n }, () =>\r\n )}\r\n {dialogs.render('validationHolders', {\r\n title: t('Validation holders') + ': ' + requirementType.name,\r\n style: { width: '50%' }\r\n }, () =>\r\n )}\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n setExpanded(e => !e)} />\r\n {Constants.isDebug && {requirementType.id}}\r\n {form.input('name', { onBlur: saveChanges })}\r\n\r\n
\r\n
\r\n \r\n \r\n {form.input('title', { onBlur: saveChanges })}\r\n \r\n \r\n {form.input('description', { onBlur: saveChanges })}\r\n \r\n \r\n {form.select('targetType', { onBlur: saveChanges, options: requirementTargetTypes })}\r\n \r\n \r\n {form.select('expirationTypeId', { onBlur: saveChanges, options: requirementExpirationTypes })}\r\n \r\n \r\n dialogs.show('edit-dependencies')}>\r\n \r\n \r\n dialogs.show('edit-expression')}>\r\n \r\n\r\n \r\n dialogs.show('configuration')}>\r\n \r\n \r\n \r\n \r\n \r\n {expanded && \r\n \r\n \r\n \r\n \r\n }\r\n \r\n}\r\n\r\nfunction RequirementGroupRow({\r\n query,\r\n notificationTemplates,\r\n requirementGroup,\r\n requirementGroups,\r\n requirementExpirationTypes,\r\n requirementValidationTypes,\r\n saveRequirementGroup,\r\n saveRequirementType,\r\n selectedTargetType,\r\n work,\r\n}: {\r\n notificationTemplates: INotificationTemplate[],\r\n query: IRemoteData,\r\n requirementGroup: IRequirementGroup,\r\n requirementGroups: IRequirementGroup[],\r\n requirementExpirationTypes: IRequirementExpirationType[],\r\n requirementValidationTypes: IRequirementValidationType[],\r\n saveRequirementGroup: Function,\r\n saveRequirementType: Function,\r\n selectedTargetType: number | undefined,\r\n work: IWork,\r\n}) {\r\n const { t } = useTranslation();\r\n const dialogs = useDialogs();\r\n const colorRef = React.useRef();\r\n const form = useForm({\r\n initialValues: requirementGroup\r\n });\r\n const [requirementTypes, setRequirementTypes] = React.useState([]);\r\n const [selectedRequirementType, setSelectedRequirementType] = React.useState();\r\n const saveChanges = async (..._: any) => {\r\n await saveRequirementGroup(form.values.workId, form.values);\r\n }\r\n\r\n const pickColor = (..._: any) => {\r\n colorRef.current.click();\r\n }\r\n\r\n const actions = [\r\n { label: t('Add requirement'), command: dialogs.showFromEvent('add-requirement') },\r\n { label: t('Configure'), command: dialogs.showFromEvent('edit-requirement') }\r\n ];\r\n\r\n const refresh = () => {\r\n dialogs.clear();\r\n return query.query();\r\n }\r\n\r\n React.useEffect(() => {\r\n setRequirementTypes(requirementGroup.requirementTypes ?? []);\r\n }, [requirementGroup.requirementTypes]);\r\n\r\n return <>\r\n \r\n {dialogs.render('edit-requirement', { title: t('Configure'), maximized: true }, () => {\r\n return ;\r\n })}\r\n {dialogs.render('add-requirement', { title: t('Add requirement') }, () => {\r\n return dialogs.clear()}\r\n onSuccess={refresh}\r\n requirementExpirationTypes={requirementExpirationTypes}\r\n requirementValidationTypes={requirementValidationTypes}\r\n saveRequirementType={saveRequirementType} />\r\n })}\r\n \r\n
\r\n \r\n \r\n {form.input('color', { ref: colorRef, onBlur: saveChanges, type: 'color', containerClassName: 'hide' })}\r\n {form.input('name', { onBlur: saveChanges })}\r\n
\r\n \r\n \r\n {form.input('title', { onBlur: saveChanges })}\r\n \r\n \r\n {form.input('description', { onBlur: saveChanges })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {requirementTypes\r\n .filter(r => r.isActive)\r\n .sort((a, b) => (a.orderValue ?? -100) - (b.orderValue ?? -100))\r\n .map(r =>\r\n setSelectedRequirementType(id)}\r\n work={work} />)}\r\n ;\r\n}\r\n\r\nfunction RequirementGroups({\r\n notificationTemplates,\r\n query,\r\n requirementExpirationTypes,\r\n requirementValidationTypes,\r\n saveRequirementGroup,\r\n saveRequirementType,\r\n selectedTargetType,\r\n work,\r\n workId\r\n}: {\r\n notificationTemplates: INotificationTemplate[],\r\n query: IRemoteData,\r\n requirementExpirationTypes: IRequirementExpirationType[],\r\n requirementValidationTypes: IRequirementValidationType[],\r\n saveRequirementGroup: Function,\r\n saveRequirementType: Function,\r\n selectedTargetType: number | undefined,\r\n work: IWork,\r\n workId: number\r\n}) {\r\n const { t } = useTranslation();\r\n const [data, setData] = React.useState([]);\r\n\r\n React.useEffect(() => {\r\n const d = query.value ?? [];\r\n setData(d.sort((a, b) => (a.orderValue ?? 100) - (b.orderValue ?? 100)));\r\n }, [query.value]);\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 {data.map(r =>\r\n )}\r\n \r\n
{t('Name')}{t('Title')}{t('Description')}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n}\r\n\r\nexport interface IProps {\r\n getNotificationTemplates: Function;\r\n getWorkRequirementGroups: Function;\r\n requirementExpirationTypes: IRequirementExpirationType[];\r\n saveWorkRequirementGroup: Function;\r\n saveWorkRequirementType: Function;\r\n work: IWork;\r\n}\r\n\r\nexport function AdminWorkRequirements(props: IProps) {\r\n const { t } = useTranslation();\r\n const dialogs = useDialogs();\r\n\r\n const requirementValidationTypes = props.work.requirementValidationTypes ?? [];\r\n const [selectedTargetType, setSelectedTargetType] = React.useState();\r\n\r\n const query = useRemoteData(\r\n props.getWorkRequirementGroups, {\r\n parameters: [props.work.id, selectedTargetType],\r\n });\r\n\r\n const notificationTemplates = useRemoteData(\r\n props.getNotificationTemplates, {\r\n parameters: [props.work.id],\r\n });\r\n\r\n const refresh = () => {\r\n dialogs.clear();\r\n return query.query();\r\n }\r\n\r\n React.useEffect(() => {\r\n query.query();\r\n }, [selectedTargetType]);\r\n\r\n return
\r\n \r\n\r\n \r\n {query.renderLoading()}\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {dialogs.render(\r\n 'add-requirement-group',\r\n { title: t('Add requirement group'), maximized: true },\r\n () => )}\r\n \r\n
\r\n
\r\n
;\r\n}\r\n","import { connect } from 'react-redux';\n\nimport { ApplicationState } from '../../store';\nimport * as Admin from '../../store/admin';\n\nimport { AdminWorkRequirements } from '@components/admin/AdminWorkRequirements';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...Admin.plainActions,\n requirementExpirationTypes: state.constants.requirementExpirationTypes,\n }),\n Admin.actionCreators,\n)(AdminWorkRequirements as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { G, ValidationBuilder, useForm, useTranslation } from '@components';\nimport { INotificationTemplate } from '@models';\n\ntype OnSubmitF = (template: INotificationTemplate) => any;\n\nexport interface IProps {\n data?: INotificationTemplate;\n isLoading?: boolean;\n onCancel?: Function;\n onSubmit?: OnSubmitF;\n showFooter?: boolean;\n workId: number;\n}\n\nexport function NotificationTemplateForm(props: IProps) {\n const { t } = useTranslation();\n\n const form = useForm({\n initialValues: {\n id: props.data?.id,\n title: props.data?.title ?? '',\n message: props.data?.message ?? '',\n name: props.data?.name ?? '',\n workId: props.workId,\n },\n validate: d => ValidationBuilder.create(d)\n .notEmpty('name')\n .notEmpty('title')\n .notEmpty('message')\n .build(),\n });\n\n return
\n
\n \n {form.input('name')}\n \n \n {form.input('title')}\n \n \n {form.textarea('message', { rows: 10 })}\n \n {form.errorBox()}\n
\n {props.showFooter &&
\n \n props.onSubmit?.(form.values)}>{t('Save')}\n
}\n
\n}","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as Admin from '@store/admin';\n\nimport { AdminNotificationTemplates } from '@components/admin/AdminNotificationTemplates';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...Admin.plainActions,\n }),\n Admin.actionCreators,\n)(AdminNotificationTemplates as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\r\n\r\nimport { INotificationTemplate, IOption, IWork } from '@models';\r\nimport { useConfirm, useDataTable, useDialogs, useForm, useLoading, useRemoteData, useTranslation } from '@components';\r\nimport { NotificationTemplateForm } from './NotificationTemplateForm';\r\n\r\nimport './NotificationMessages.scss';\r\n\r\ntype GetF = (workId: number) => Promise;\r\ntype RemoveF = (workId: number, id: number) => Promise>;\r\ntype SaveF = (workId: number, data: INotificationTemplate) => Promise>;\r\n\r\nexport interface IProps {\r\n getNotificationTemplates: GetF;\r\n removeNotificationTemplate: RemoveF;\r\n saveNotificationTemplate: SaveF;\r\n work: IWork;\r\n}\r\n\r\ntype Filters = {\r\n action?: string;\r\n title?: string;\r\n}\r\n\r\nexport function AdminNotificationTemplates(props: IProps) {\r\n const { t } = useTranslation();\r\n\r\n const dialogs = useDialogs();\r\n const loading = useLoading();\r\n\r\n const data = useRemoteData(\r\n props.getNotificationTemplates,\r\n {\r\n parameters: [props.work.id]\r\n });\r\n\r\n const doRemove = loading.wrap(async (r: INotificationTemplate) => {\r\n await props.removeNotificationTemplate(props.work.id, r.id!);\r\n data.query();\r\n });\r\n\r\n const confirmDelete = useConfirm({\r\n accept: doRemove,\r\n message: t('Are you sure to delete the element ?'),\r\n });\r\n\r\n const doSave = loading.wrap(async (r: INotificationTemplate) => {\r\n const _ = await props.saveNotificationTemplate(props.work.id, r);\r\n await data.query();\r\n dialogs.clear();\r\n });\r\n\r\n const filtersForm = useForm({\r\n initialValues: {},\r\n });\r\n \r\n const [filteredTemplates, setFilteredTemplates] = React.useState(data.value ?? []);\r\n\r\n const isBlank = (s: string|undefined) =>\r\n s == undefined || s == '';\r\n\r\n const filterTemplate = (m: INotificationTemplate, filters: Filters) => {\r\n const predicates = [\r\n [\r\n isBlank(filters.action),\r\n m.name.toLowerCase().includes(filters.action?.toLowerCase() ?? ''),\r\n ],\r\n [\r\n isBlank(filters.title),\r\n m.title.toLowerCase().includes(filters.title?.toLowerCase() ?? ''),\r\n ],\r\n ];\r\n\r\n return predicates\r\n .reduce((a, b) => a && (b[0] == true || b[1] == true), true);\r\n };\r\n\r\n React.useEffect(() => {\r\n setFilteredTemplates(\r\n (data.value ?? [])\r\n .filter(m => filterTemplate(m, filtersForm.values)));\r\n }, [data.value, filtersForm.values]);\r\n\r\n const dataTable = useDataTable({\r\n columns: [\r\n { title: 'id', field: 'id', sortable: true },\r\n { title: 'name', field: 'name', sortable: true },\r\n { title: 'title', field: 'title', sortable: true },\r\n { title: 'message', field: 'message', sortable: true },\r\n ],\r\n actions: [\r\n { icon: 'pencil', onClick: (r: INotificationTemplate) => dialogs.showFromEvent('edit', r)() },\r\n { icon: 'trash', onClick: confirmDelete }\r\n ],\r\n data: filteredTemplates,\r\n });\r\n\r\n return
\r\n {data.renderLoading()}\r\n\r\n {dialogs.render('edit', { title: t('Edit template'), style: { minWidth: '60%' }, className: 'g pd' }, (d: INotificationTemplate) =>\r\n dialogs.clear()}\r\n onSubmit={doSave}\r\n showFooter={true}\r\n workId={props.work.id} />)}\r\n\r\n {dialogs.render('add', { title: t('Add template'), style: { minWidth: '60%' }, className: 'g pd' }, (_: any) =>\r\n dialogs.clear()}\r\n onSubmit={doSave}\r\n showFooter={true}\r\n workId={props.work.id} />)}\r\n\r\n
\r\n
\r\n {t('Action')}\r\n {filtersForm.input('action', { placeholder: t('name')})}\r\n
\r\n
\r\n {t('Title')}\r\n {filtersForm.input('title', { placeholder: t('title')})}\r\n
\r\n
\r\n\r\n {dataTable()}\r\n\r\n
\r\n \r\n
\r\n
\r\n}\r\n","import * as React from 'react';\n\nimport { G, ValidationBuilder, useForm, useTranslation } from '@components';\nimport {\n getNotificationMessageActions,\n getNotificationResourceTypes,\n getResourceTypes,\n INotificationMessage,\n INotificationTemplate,\n ResourceType,\n} from '@models';\nimport { IWorkDepartment } from '@models/works';\n\ntype OnSubmitF = (data: INotificationMessage) => any;\n\nexport interface IProps {\n data?: INotificationMessage;\n templates: INotificationTemplate[];\n isLoading?: boolean;\n onCancel?: Function;\n onSubmit?: OnSubmitF;\n showFooter?: boolean;\n workId: number;\n departments: IWorkDepartment[];\n}\n\nexport function NotificationMessageForm(props: IProps) {\n const { t } = useTranslation();\n\n const commonActions = getNotificationMessageActions(t).sort((a, b) => a.name.localeCompare(b.name));\n\n const notificationResourceTypes = getNotificationResourceTypes(t);\n\n const resourceTypes = getResourceTypes(t);\n\n const form = useForm>({\n initialValues: {\n id: props.data?.id,\n action: props.data?.action,\n resourceType: props.data?.resourceType,\n restrictToResourceType: props.data?.restrictToResourceType,\n restrictToResourceId: props.data?.restrictToResourceId,\n notificationTemplateId: props.data?.notificationTemplateId,\n byMail: props.data?.byMail ?? false,\n workId: props.workId,\n actionKey: props.data?.actionKey\n },\n validate: d => ValidationBuilder.create(d)\n .notEmpty('action')\n .notEmpty('resourceType')\n .notEmpty('notificationTemplateId')\n .build(),\n });\n\n const obliqueDepartments = props.departments.filter(d => d.isOblique === true);\n\n return
\n
\n \n {form.select('action', commonActions)}\n \n {form.values.action == 20 &&\n \n {form.input('actionKey')}\n \n }\n \n {form.select('resourceType', notificationResourceTypes)}\n \n {form.values.resourceType == ResourceType.ObliqueDepartment && <>\n \n {form.select('restrictToResourceId', obliqueDepartments)}\n \n }\n \n {form.select('notificationTemplateId', props.templates)}\n \n \n {form.select('restrictToResourceType', resourceTypes)}\n \n \n {form.checkBox('byMail', { containerClassName: 'center' })}\n \n {form.errorBox()}\n
\n {props.showFooter &&
\n \n props.onSubmit?.(form.values)}>{t('Save')}\n
}\n
\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as Admin from '@store/admin';\n\nimport { AdminWorkMessages } from '@components/admin/AdminWorkMessages';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...Admin.plainActions,\n }),\n Admin.actionCreators,\n)(AdminWorkMessages as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport {\n useLoading, useRemoteData, useDataTable, useDialogs, useTranslation,\n useResolveName, useConfirm,\n useForm,\n} from '@components';\nimport {\n getNotificationResourceTypes, getResourceTypes, IOption, IWork\n} from '@models';\nimport {\n getNotificationMessageActions, INotificationMessage, INotificationTemplate\n} from '@models/works';\n\nimport './NotificationMessages.scss';\nimport { NotificationMessageForm } from './NotificationMessageForm';\n\ntype GetNotificationMessagesF = (workId: number) => Promise;\ntype GetNotificationTemplatesF = (workId: number) => Promise;\ntype RemoveNotificationMessageF = (workId: number, id: number) => Promise>;\ntype SaveNotificationMessageF = (workId: number, data: INotificationMessage) => Promise>;\n\ntype INotificationMessageRow = INotificationMessage & {\n actionName: string;\n}\n\nexport interface IProps {\n getNotificationMessages: GetNotificationMessagesF;\n getNotificationTemplates: GetNotificationTemplatesF;\n removeNotificationMessage: RemoveNotificationMessageF;\n saveNotificationMessage: SaveNotificationMessageF;\n work: IWork;\n}\n\ntype Filters = {\n email?: boolean;\n action?: number;\n resourceType?: number;\n template?: number;\n restrictResource?: number;\n}\n\nexport function AdminWorkMessages(props: IProps) {\n const { t } = useTranslation();\n const dialogs = useDialogs();\n const loading = useLoading();\n\n const actions = React.useRef(getNotificationMessageActions(t));\n const resourceTypes = React.useRef(getNotificationResourceTypes(t));\n const resourceTypeRestrict = React.useRef(getResourceTypes(t));\n\n const resolveAction = useResolveName(actions.current);\n const resolveResourceType = useResolveName(resourceTypes.current);\n const resolveRestrictResourceType = useResolveName(resourceTypeRestrict.current);\n const resolveDepartment = useResolveName(props.work.departments ?? []);\n\n const filtersForm = useForm({\n initialValues: {},\n });\n\n const templates = useRemoteData(\n props.getNotificationTemplates,\n {\n parameters: [props.work.id]\n });\n\n const messages = useRemoteData(\n props.getNotificationMessages,\n {\n parameters: [props.work.id]\n });\n\n const [filteredMessages, setFilteredMessages] = React.useState(messages.value ?? []);\n\n const filterMessage = (m: INotificationMessage, filters: Filters) => {\n const predicates = [\n [filters.email != true, m.byMail == true],\n [filters.action == undefined, m.action == filters.action],\n [filters.resourceType == undefined, m.resourceType == filters.resourceType],\n [filters.template == undefined, m.notificationTemplateId == filters.template],\n [filters.restrictResource == undefined, m.restrictToResourceType == filters.restrictResource],\n ];\n\n return predicates\n .reduce((a, b) => a && (b[0] == true || b[1] == true), true);\n };\n\n React.useEffect(() => {\n setFilteredMessages(\n (messages.value ?? [])\n .filter(m => filterMessage(m, filtersForm.values)));\n }, [messages.value, filtersForm.values]);\n\n const doRemove = loading.wrap(async (r: INotificationMessage) => {\n await props.removeNotificationMessage(props.work.id, r.id!);\n messages.query();\n });\n\n const confirmDelete = useConfirm({\n accept: doRemove,\n message: t('Are you sure to delete the element ?'),\n });\n\n const dataTable = useDataTable({\n columns: [\n { title: 'Action', render: r => r.actionName, sortKey: 'actionName', },\n { title: 'ResourceType', render: r => {\n const resourceType = resolveResourceType(r.resourceType);\n const department = r.restrictToResourceId;\n if (department) {\n const departmentName = resolveDepartment(department);\n const value = resourceType + ' (' + departmentName + ')';\n\n return {value};\n }\n else {\n return resourceType;\n }\n }, sortKey: 'resourceType', },\n { title: 'Template', render: r => r.notificationTemplate?.name, sortKey: 'notificationTemplateName' },\n {\n title: 'Restrict resource',\n field: 'restrictToResourceType',\n render: r => resolveRestrictResourceType(r.restrictToResourceType),\n sortable: true\n },\n { title: 'Email', field: 'byMail', delegate: 'boolean', className: 'td-md', sortable: true },\n ],\n actions: [\n {\n icon: 'pencil',\n onClick: r => dialogs.showFromEvent('edit', r)()\n },\n { icon: 'trash', onClick: confirmDelete }\n ],\n data: filteredMessages\n .map(m => ({\n ...m,\n notificationTemplateName: m.notificationTemplate?.name,\n actionName: resolveAction(m.action),\n }))\n .sort((a, b) => a.actionName.localeCompare(b.actionName))\n });\n\n const doSave = loading.wrap(async (r: INotificationMessage) => {\n const _ = await props.saveNotificationMessage(props.work.id, r);\n await messages.query();\n dialogs.clear();\n });\n\n return
\n
\n
\n {t('Email')}\n {filtersForm.checkBox('email')}\n
\n
\n {t('Action')}\n {filtersForm.select('action', {\n options: actions.current, blank: true, blankText: t('Action')\n })}\n
\n
\n {t('ResourceType')}\n {filtersForm.select('resourceType', {\n options: resourceTypes.current, blank: true, blankText: t('ResourceType'),\n })}\n
\n
\n {t('Template')}\n {filtersForm.select('template', {\n options: templates.value ?? [], blank: true, blankText: t('Template')\n })}\n
\n
\n {t('Email')}\n {filtersForm.select('restrictResource', { options: resourceTypes.current, blank: true })}\n
\n
\n {templates.renderLoading()}\n {messages.renderLoading()}\n\n {dialogs.render('edit', { title: t('Edit message'), className: 'pd g' }, (d: INotificationMessage) =>\n dialogs.clear()}\n templates={templates.value}\n onSubmit={doSave}\n showFooter={true}\n departments={props.work.departments ?? []}\n workId={props.work.id} />)}\n\n {dialogs.render('add', { title: t('Add message'), className: 'pd g' }, (_: any) =>\n dialogs.clear()}\n templates={templates.value}\n onSubmit={doSave}\n showFooter={true}\n departments={props.work.departments ?? []}\n workId={props.work.id} />)}\n {dataTable()}\n\n
\n \n
\n
\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as Admin from '@store/admin';\n\nimport { AdminWorkNotifications } from '@components/admin/AdminWorkNotifications';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...Admin.plainActions,\n }),\n Admin.actionCreators,\n)(AdminWorkNotifications as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport AdminNotificationTemplates from '@containers/admin/AdminNotificationTemplatesContainer';\nimport AdminWorkMessages from '@containers/admin/AdminWorkMessagesContainer';\nimport { IWork } from '@models';\nimport { WorkToolbar } from './WorkToolbar';\n\nimport { TabPanel, TabView, useTranslation } from '@components';\n\nexport interface IProps {\n work: IWork;\n}\n\nexport function AdminWorkNotifications(props: IProps) {\n const { t } = useTranslation();\n\n return (
\n \n\n \n \n \n \n \n \n \n \n
)\n}\n\n","import * as React from 'react';\n\nimport { useForm, useMessage, useTranslation, G, ValidationBuilder, SplitButton } from '@components';\nimport { createFieldValidation, fieldValidationResourceTypes, IFieldValidation, ResourceType } from '@models';\n\nimport './FieldValidationForm.scss';\n\nexport interface IProps {\n data?: IFieldValidation;\n onCancel?: Function;\n onSave?: Function;\n workId: number;\n}\n\nconst validate = (d: Partial) =>\n ValidationBuilder.create(d)\n .notEmpty('name')\n .notEmpty('resourceType')\n .notEmpty('field')\n .notEmpty('errorMessage')\n .build();\n\nconst decodeExpression = (e: string|undefined) => {\n if (e && e != '') {\n return atob(e);\n }\n else {\n return undefined;\n }\n}\n\nconst encodeExpression = (e: string|undefined) => {\n if (e && e != '') {\n return btoa(e);\n }\n else {\n return undefined;\n }\n}\n\nexport function FieldValidationForm(props: IProps) {\n const { t } = useTranslation();\n const messages = useMessage();\n\n const [expression, setExpression] = React.useState(\n decodeExpression(props.data?.value) ?? '');\n const [result, setResult] = React.useState();\n const [testExpression, setTestExpression] = React.useState('');\n\n const form = useForm>({\n initialValues: props.data ?? { workId: props.workId },\n validate,\n });\n\n React.useEffect(() => {\n form.setFieldValue('value', encodeExpression(expression));\n }, [expression]);\n\n const DNI = `\ni => {\n let numero, let_, letra;\n const dniRegexp = /^[XYZ]?\\\\d{5,8}[A-Z]$/;\n\n const dni = i.code.toUpperCase();\n\n if (dniRegexp.test(dni) === true) {\n numero = dni.substr(0, dni.length-1);\n numero = numero.replace('X', 0);\n numero = numero.replace('Y', 1);\n numero = numero.replace('Z', 2);\n\n let_ = dni.substr(dni.length - 1, 1);\n numero = numero % 23;\n letra = 'TRWAGMYFPDXBNJZSQVHLCKET';\n letra = letra.substring(numero, numero+1);\n if (letra != let_) {\n return false;\n } else {\n return true;\n }\n }\n else {\n return false;\n }\n}\n`;\n\n const CIF = `i => {\n const cif = i.code.toUpperCase();\n\n if (!cif || cif.length < 4) {\n return false;\n }\n else {\n return true;\n }\n }`;\n\n //STOP!!!!\n\n const actions = [\n { label: t('DNI'), command: () => setExpression(DNI)},\n { label: t('CIF'), command: () => setExpression(CIF)}\n ]\n\n const doTestExpression = () => {\n try {\n const f = createFieldValidation(form.values.value);\n const res = f.call(null, JSON.parse(testExpression));\n setResult(JSON.stringify(res));\n messages.set({hasValue: true, value: res});\n }\n catch (e) {\n console.log(e);\n messages.setError(e + '');\n }\n }\n\n return
\n
\n
\n \n {form.input('name', { autoFocus: true })}\n \n \n {form.input('field')}\n \n \n {form.select('resourceType', fieldValidationResourceTypes)}\n \n \n {form.input('errorMessage', { autoFocus: true })}\n \n
\n
\n
\n {t('Validation')}\n \n \n
\n setExpression(e.target.value)} />\n
\n
\n
\n \n setTestExpression(e.target.value)} />\n\n \n
\n\n
\n {messages.render()}\n
\n\n {result &&
\n            {result}\n        
}\n\n
\n {props.onCancel &&\n }\n {props.onSave &&\n }\n
\n
\n}","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\nimport * as Admin from '@store/admin';\n\nimport { AdminWorkValidations } from '@components/admin/AdminWorkValidations';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...Admin.plainActions,\n }),\n Admin.actionCreators,\n)(AdminWorkValidations as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport {\n BreadcrumbItem,\n useConfirm,\n useDataTable,\n useDialogs,\n useLoading,\n useMessage,\n useRemoteData,\n useResolveName,\n useTranslation\n} from '@components';\nimport { WorkToolbar } from '@components/admin/WorkToolbar';\nimport { fieldValidationResourceTypes, IOption } from '@models';\nimport { IFieldValidation, IWork } from '@models/works';\nimport { FieldValidationForm } from './FieldValidationForm';\n\ntype GetT = (workId: number) => Promise;\ntype RemoveT = (workId: number, id: number) => Promise>;\ntype SaveT = (workId: number, data: IFieldValidation) => Promise>;\n\nexport interface IProps {\n getFieldValidations: GetT;\n removeFieldValidation: RemoveT;\n saveFieldValidation: SaveT;\n work: IWork;\n}\n\nexport function AdminWorkValidations(props: IProps) {\n const { t } = useTranslation();\n const dialogs = useDialogs();\n const loading = useLoading();\n const messages = useMessage();\n const resolveResourceType = useResolveName(fieldValidationResourceTypes);\n const confirm = useConfirm({\n message: t('Are you sure to delete the element ?'),\n accept: console.log\n });\n\n const data = useRemoteData(props.getFieldValidations, { parameters: [ props.work.id ] });\n const dataTable = useDataTable({\n data: data.value,\n loading: data.loading,\n columns: [\n 'name',\n { title: 'ResourceType', render: d => resolveResourceType(d.resourceType) },\n 'field', 'errorMessage'\n ],\n actions: [\n { icon: 'pencil', onClick: (r: IFieldValidation) => dialogs.show('edit', r) },\n { icon: 'trash', onClick: confirm }\n ]\n });\n\n const doSave = loading.wrap(async (v: IFieldValidation) => {\n const res = await props.saveFieldValidation(props.work.id, v);\n messages.set(res);\n\n dialogs.clear();\n return data.query();\n });\n\n return (
\n {dialogs.render('add', { title: t('Add validation') }, () =>\n \n )}\n {dialogs.render('edit', { title: t('Edit validation') }, (data: IFieldValidation) =>\n \n )}\n\n \n \n \n\n {loading.render()}\n {data.renderLoading()}\n \n\n {dataTable()}\n
)\n}","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../../store';\nimport * as Admin from '../../../store/admin';\nimport * as App from '../../../store/app';\n\nimport { ManageContractorSettings } from '@components/admin/contractors/ManageContractorSettings';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...Admin.plainActions,\n }),\n Admin.actionCreators,\n)(ManageContractorSettings as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { useForm, useLoading, useTranslation } from '@components';\nimport { IContractorSettings, IWork } from '@models';\nimport { WorkToolbar } from '../WorkToolbar';\n\nexport interface IProps {\n work: IWork;\n saveContractorSettings: Function;\n}\n\nexport function ManageContractorSettings(props: IProps) {\n const loading = useLoading();\n const { t } = useTranslation();\n\n const contractorSettings = props.work.contractorSettings ?? {\n showGeneralIndicators: false,\n legalFormMandatory: false,\n jhcStartDateMandatory: false,\n jhcDescriptionMandatory: false,\n cifCantBeRepeated: false,\n canAddSubWorkers: false,\n canAddSubMachineries: false,\n workId: props.work.id\n };\n\n const form = useForm({\n initialValues: contractorSettings,\n });\n\n const doSave = loading.wrap(async () => {\n await props.saveContractorSettings(props.work.id, form.values);\n });\n\n return
\n \n\n {t('contractor.settings')}\n\n
\n
\n {form.checkBox('showGeneralIndicators')}\n \n
\n
\n {form.checkBox('legalFormMandatory')}\n \n
\n
\n {form.checkBox('jhcStartDateMandatory')}\n \n
\n
\n {form.checkBox('jhcDescriptionMandatory')}\n \n
\n
\n {form.checkBox('cifCantBeRepeated')}\n \n
\n
\n {form.checkBox('canAddSubWorkers')}\n \n
\n
\n {form.checkBox('canAddSubMachineries')}\n \n
\n
\n
\n\n
\n {loading.render()}\n doSave()}>{t('Save')}\n
\n
;\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../../store';\nimport * as Admin from '../../../store/admin';\nimport * as App from '../../../store/app';\n\nimport { ManageMachinerySettings } from '@components/admin/machineries/ManageMachinerySettings';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...Admin.plainActions,\n }),\n Admin.actionCreators,\n)(ManageMachinerySettings as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { useForm, useLoading, useTranslation } from '@components';\nimport { IMachinerySettings, IWork } from '@models';\nimport { WorkToolbar } from '../WorkToolbar';\n\nexport interface IProps {\n work: IWork;\n saveMachinerySettings: Function;\n}\n\nexport function ManageMachinerySettings(props: IProps) {\n const loading = useLoading();\n const { t } = useTranslation();\n\n const machinerySettings = props.work.machinerySettings ?? {\n showGeneralIndicators: false,\n subTypeMandatory: false,\n onlyLicenseNumber: false,\n workId: props.work.id\n };\n\n const form = useForm({\n initialValues: machinerySettings,\n });\n\n const doSave = loading.wrap(async () => {\n await props.saveMachinerySettings(props.work.id, form.values);\n });\n\n return
\n \n\n {t('machinery.settings')}\n\n
\n
\n {form.checkBox('showGeneralIndicators')}\n \n
\n
\n {form.checkBox('subTypeMandatory')}\n \n
\n
\n {form.checkBox('onlyLicenseNumber')}\n \n
\n
\n
\n
\n {loading.render()}\n doSave()}>{t('Save')}\n
\n
;\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../../store';\nimport * as Admin from '../../../store/admin';\nimport * as App from '../../../store/app';\n\nimport { ManageWorkerSettings } from '@components/admin/workers/ManageWorkerSettings';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...Admin.plainActions,\n }),\n Admin.actionCreators,\n)(ManageWorkerSettings as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { useForm, useLoading, useTranslation } from '@components';\nimport { IWorkerSettings, IWork } from '@models';\nimport { WorkToolbar } from '../WorkToolbar';\n\nexport interface IProps {\n work: IWork;\n saveWorkerSettings: Function;\n}\n\nexport function ManageWorkerSettings(props: IProps) {\n const loading = useLoading();\n const { t } = useTranslation();\n\n const workerSettings = props.work.workerSettings ?? {\n showWorkerImage: false,\n showGeneralIndicators: false,\n\t workerTypeIsMandatory: false,\n workId: props.work.id\n };\n\n const form = useForm({\n initialValues: workerSettings,\n });\n\n const doSave = loading.wrap(async () => {\n await props.saveWorkerSettings(props.work.id, form.values);\n });\n\n return
\n \n\n {t('worker.settings')}\n\n
\n
\n {form.checkBox('showWorkerImage')}\n \n
\n
\n {form.checkBox('showGeneralIndicators')}\n \n
\n
\n {form.checkBox('workerTypeIsMandatory')}\n \n
\n
\n
\n
\n {loading.render()}\n doSave()}>{t('Save')}\n
\n
;\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../../store';\nimport * as Admin from '../../../store/admin';\nimport * as App from '../../../store/app';\n\nimport { ManageJobSettings } from '@components/admin/jobs/ManageJobSettings';\n\nexport default connect(\n (state: ApplicationState) => ({\n ...Admin.plainActions,\n }),\n Admin.actionCreators,\n)(ManageJobSettings as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { useForm, useLoading, useTranslation } from '@components';\nimport { IJobSettings, IWork } from '@models';\nimport { WorkToolbar } from '../WorkToolbar';\n\nexport interface IProps {\n work: IWork;\n saveJobSettings: Function;\n}\n\nexport function ManageJobSettings(props: IProps) {\n const loading = useLoading();\n const { t } = useTranslation();\n\n const jobSettings = props.work.jobSettings ?? {\n noInformationLoadedState: false,\n skipInformationLoadedState: false,\n colorizeContractorIndicators: false,\n freeRequirementsAreMandatory: false,\n omitJobHasContractorDefaultNotification: false,\n showResourceIncidenceIndicator: true,\n jobHasContractorNotificationTargetPolicy: undefined,\n informationLoadedNotificationPolicy: undefined,\n workId: props.work.id\n };\n\n const form = useForm({\n initialValues: jobSettings,\n });\n\n const doSave = loading.wrap(async () => {\n await props.saveJobSettings(props.work.id, form.values);\n });\n\n return
\n \n\n {t('job.settings')}\n\n
\n
\n {form.checkBox('noInformationLoadedState')}\n \n
\n
\n {form.checkBox('skipInformationLoadedState')}\n \n
\n
\n {form.checkBox('colorizeContractorIndicators')}\n \n
\n
\n {form.checkBox('freeRequirementsAreMandatory')}\n \n
\n
\n {form.checkBox('omitJobHasContractorDefaultNotification')}\n \n
\n
\n {form.checkBox('showResourceIncidenceIndicator')}\n \n
\n
\n \n {form.input('jobHasContractorNotificationTargetPolicy')}\n\n \n {form.input('informationLoadedNotificationPolicy')}\n
\n
\n
\n
\n {loading.render()}\n doSave()}>{t('Save')}\n
\n
;\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '@store';\nimport * as Admin from '@store/admin';\n\nimport { ManageWorkModules } from '@components/admin/modules/ManageWorkModules';\n\n\nexport default connect(\n (state: ApplicationState) => ({\n availableModules: state.admin.availableModules,\n ...Admin.plainActions\n }),\n Admin.actionCreators,\n)(ManageWorkModules as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { InputSwitch, useLoading, useTranslation } from '@components';\nimport { IWork, IModuleInfo, IWorkHasModule } from '@models';\nimport { WorkToolbar } from '../WorkToolbar';\n\nexport interface IProps {\n availableModules: IModuleInfo[];\n saveWorkHasModule: Function;\n work: IWork;\n}\n\ntype ModuleRelation = {\n workHasModule: IWorkHasModule,\n moduleInfo: IModuleInfo,\n}\n\nexport function ManageWorkModules(props: IProps) {\n const loading = useLoading();\n const { t } = useTranslation();\n\n const [data, setData] = React.useState([]);\n\n React.useEffect(() => {\n const relations = props.work.workHasModules ?? [];\n const allModules = props.availableModules ?? [];\n\n const workRelations = allModules\n .map(m => {\n const r = relations.find(r => r.moduleName == m.id);\n return {\n moduleInfo: m,\n workHasModule: {\n workId: props.work.id,\n moduleName: m.id,\n isActive: r?.isActive ?? false,\n },\n };\n });\n setData(workRelations);\n }, [props.availableModules, props.work]);\n\n\n const saveModuleRelation = loading.wrap((raw: ModuleRelation) => {\n props.saveWorkHasModule(props.work.id, raw.workHasModule);\n });\n\n const toggleModuleRelation = (raw: ModuleRelation) => {\n const newRel = {...raw, workHasModule: {\n ...raw.workHasModule,\n isActive: !(raw.workHasModule?.isActive ?? false)\n }\n };\n\n saveModuleRelation(newRel);\n\n return newRel;\n }\n\n const toggleWorkHasModule = (raw: ModuleRelation) => {\n return (e: any) => {\n setData(d =>\n d.map(r => r.moduleInfo.id == raw.moduleInfo.id\n ? toggleModuleRelation(raw)\n : r));\n }\n }\n\n return
\n \n\n
\n {t('work.modules')}\n {loading.render()}\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n {data.map((d, k) => \n \n \n \n \n \n )}\n \n
{t('Name')}{t('EntryPoint')}{t('Description')}{t('Version')}
\n \n {d.moduleInfo.id}{d.moduleInfo.name}{d.moduleInfo.description}{d.moduleInfo.version}
\n
\n
\n}\n","import * as React from 'react';\n\nimport { IEventTrigger, getEventTriggerTypes, } from '@models';\nimport {\n Message,\n useForm,\n useTranslation,\n ValidationBuilder,\n} from '@components';\n\nimport './EventTriggerForm.scss';\nimport { getEventResourceTypes } from '@models/resources';\n\nexport interface IProps {\n data?: IEventTrigger;\n error?: string;\n workId: number;\n footer?: any;\n onChange?: Function;\n onSubmit: Function;\n}\n\nexport const validate = (data: IEventTrigger) => {\n return ValidationBuilder\n .create(data)\n .notEmpty('name')\n .notEmpty('eventTriggerTypeId')\n .notEmpty('resourceTypeId')\n .build();\n}\n\nexport const isValid = (data: IEventTrigger) => {\n return Object.keys(validate(data)).length == 0;\n}\n\nexport function EventTriggerForm(props: IProps) {\n const { t } = useTranslation();\n\n const resourceTypes = getEventResourceTypes(t);\n const eventTriggerTypes = getEventTriggerTypes(t);\n\n const editor = React.useRef();\n\n const form = useForm({\n initialValues: {\n id: props.data?.id ?? 0,\n name: props.data?.name ?? '',\n workId: props.workId,\n code: props.data?.code ?? '',\n resourceTypeId: props.data?.resourceTypeId ?? 1,\n eventTriggerTypeId: props.data?.eventTriggerTypeId ?? 1,\n },\n validate: validate,\n onSubmit: (data: IEventTrigger) => {\n data.code = editor.current.getValue();\n console.log(data);\n props.onSubmit(data);\n return {ok: true};\n },\n onChange: props.onChange,\n });\n\n React.useEffect(() => {\n (window.require as any)(['vs/editor/editor.main'], function() {\n const monaco = (window as any).monaco;\n if (editor.current == undefined) {\n editor.current = monaco.editor.create(document.getElementById('code-container'), {\n value: form.values.code,\n language: 'csharp',\n theme: \"vs-dark\",\n });\n\n window.onresize = function () {\n editor.current.layout();\n };\n }\n });\n }, []);\n\n return
\n
\n
\n {form.input('name', { containerClassName: 'e' })}\n {form.select('eventTriggerTypeId', eventTriggerTypes)}\n {form.select('resourceTypeId', resourceTypes)}\n
\n\n
\n
\n\n
\n {form.errorBox()}\n {props.error != undefined && }\n
\n {props.footer != undefined && props.footer}\n
\n
\n}","import { connect } from 'react-redux';\nimport { ApplicationState } from '@store';\nimport * as Admin from '@store/admin';\n\nimport { ManageWorkEvents } from '@components/admin/events/ManageWorkEvents';\n\n\nexport default connect(\n (state: ApplicationState) => ({\n ...Admin.plainActions\n }),\n Admin.actionCreators,\n)(ManageWorkEvents as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { useDataTable, useFormDialog, useLoading, useMessage, useResolveName, useTranslation } from '@components';\nimport { getEventTriggerTypes, getResourceTypes, IEventTrigger, IWork } from '@models';\nimport { WorkToolbar } from '../WorkToolbar';\n\nimport { EventTriggerForm } from './EventTriggerForm';\n\nexport interface IProps {\n getEventTriggers: Function;\n saveEventTrigger: Function;\n\n work: IWork;\n}\n\nexport function ManageWorkEvents(props: IProps) {\n const { t } = useTranslation();\n const loading = useLoading();\n const [eventTriggers, setEventTriggers] = React.useState([]);\n const messages = useMessage();\n\n const resourceTypes = React.useRef(getResourceTypes(t));\n const eventTriggerTypes = React.useRef(getEventTriggerTypes(t));\n\n const resolveEventTriggerType = useResolveName(eventTriggerTypes.current);\n const resolveResourceType = useResolveName(resourceTypes.current);\n\n const formDialog = useFormDialog({\n editTitle: t('Edit'),\n addTitle: t('Add'),\n });\n\n const initialize = loading.wrap(async () => {\n const res = await props.getEventTriggers(props.work.id);\n setEventTriggers(res);\n });\n\n React.useEffect(() => {\n initialize();\n }, []);\n\n const table = useDataTable({\n data: eventTriggers,\n className: 'e',\n loading,\n columns: [\n {field:'id', className:'td-sm'},\n 'name',\n {field: 'eventTriggerTypeId', title: 'eventTriggerType', render: (a) => resolveEventTriggerType(a.eventTriggerTypeId) },\n {field: 'resourceTypeId', title: 'resourceType', render: (a) => resolveResourceType(a.resourceTypeId) },\n ],\n actions: [\n {icon: 'pencil', tooltip: t('Edit'), onClick: formDialog.showEdit}\n ]\n });\n\n const saveTrigger = loading.wrap(async (data: IEventTrigger) => {\n const res = await props.saveEventTrigger(props.work.id, data);\n messages.set(res);\n if (res.value) {\n // formDialog.clear();\n\n await initialize();\n }\n });\n\n const createElement = (tag: string) => {\n const el = document.createElement(tag);\n document.body.append(el);\n return el as any;\n }\n\n React.useEffect(() => {\n (window as any).require = { paths: { vs: '/js/monaco/min/vs' } };\n (window as any).define = console.log;\n\n\t\tcreateElement('script').src = '/js/monaco/min/vs/loader.js';\n createElement('script').src = '/js/monaco/min/vs/editor/editor.main.nls.js';\n createElement('script').src = '/js/monaco/min/vs/editor/editor.main.js';\n }, []);\n\n return
\n \n\n {table()}\n\n \n\n {formDialog.render((data: IEventTrigger) =>\n )}\n\n
\n \n \n
\n
\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\n\nimport { ModuleView } from '@components/modules/ModuleView';\n\nexport default connect(\n (state: ApplicationState, props: any) => ({\n state,\n moduleName: props.match.params.module,\n moduleView: props.match.params.view,\n match: props.match,\n params: props,\n }),\n { },\n)(ModuleView as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { Loading } from '@components/custom/Loading';\nimport { getModule } from '../../modules';\nimport { ApplicationState } from '@store';\n\nexport interface IProps {\n moduleName: string;\n moduleView: string;\n mach: any;\n params: any;\n state: ApplicationState;\n}\n\nexport function ModuleView(props: any) {\n const module = getModule(props.moduleName);\n const moduleView = window.location.href.substring(\n window.location.href.indexOf(props.moduleView)\n );\n\n return module?.handleView({\n route: moduleView,\n state: props.state,\n params: props.params,\n security: props.state.identity.security,\n }) ??
;\n}\n","import ModuleManager from \"./ModuleManager\";\n\nexport const getModule = (name: string) => {\n return (window as any).__modules[name];\n}\nexport { ModuleManager };\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { ApplicationState } from '../../store';\n\nimport { Loading } from '@components';\nimport { redirectTo } from '@utils';\n\nconst Loader = (props: any) => {\n const [loading, setLoading] = React.useState(true);\n\n React.useEffect(() => {\n const work = props.state.user.work;\n if (work) {\n setLoading(false);\n redirectTo(`/modules/${work.id}/${props.moduleName}/${props.moduleView}`);\n }\n }, [props.state.work.work]);\n\n if (loading) {\n return ;\n }\n else {\n return null;\n }\n}\n\nexport default connect(\n (state: ApplicationState, props: any) => ({\n state,\n moduleName: props.match.params.module,\n moduleView: props.match.params.view,\n params: props,\n }),\n { },\n )(Loader as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any","import * as React from 'react';\n\nimport { useForm, useLoading, useToast, useTranslation, F, ValidationBuilder } from '@components';\nimport { CountryRegionSelect } from '@components/common/CountryRegionSelect';\nimport useContractorFromAppUser from '@components/custom/useContractorFromAppUser';\nimport { DynamicProperties } from '@components/user/DynamicProperties';\nimport { IContractor, IConstants, IOption, IPropertyGroupType, ISecurity, IUserIdentity, PropertyGroupObjectType, ModuleManager } from '@models';\nimport { goBack } from '@utils';\n\nimport './UserProfile.scss';\n\ntype SaveContractorT = (workId: number, data: IContractor) => Promise>;\n\nexport interface IProps {\n constants: IConstants;\n getContractorFromAppUser: Function;\n propertyGroupTypes: IPropertyGroupType[];\n saveContractor: SaveContractorT;\n security: ISecurity;\n user: IUserIdentity;\n workId: number;\n moduleManager: ModuleManager;\n}\n\nfunction ContractorUserProfileImpl(props: IProps) {\n const { t } = useTranslation();\n const toast = useToast();\n const loading = useLoading(true);\n\n const contractorId = useContractorFromAppUser(props.workId, props.security);\n const [contractor, setContractor] = React.useState();\n\n const form = useForm>({\n initialValues: {},\n validate: ValidationBuilder\n .create()\n .notEmpty('name')\n .notEmpty('code')\n .lift(),\n });\n\n const initialize = loading.wrap(async (workId: number) => {\n const data = await props.getContractorFromAppUser(workId);\n\n setContractor(data);\n form.setFieldValues(data);\n });\n\n React.useEffect(() => {\n initialize(props.workId);\n }, [props.workId]);\n\n const updateRegion = ({ countryId, regionId, countyId }: any) => {\n form.setFieldValue('countryId', countryId);\n form.setFieldValue('regionId', regionId);\n form.setFieldValue('countyId', countyId);\n }\n\n const doSave = loading.wrap(async () => {\n const res = await props.saveContractor(props.workId, form.values);\n\n if (res.hasValue && res.value) {\n toast.show(t('data.success'));\n }\n else {\n toast.error(res.error ?? t('data.error'));\n }\n\n await initialize(props.workId);\n });\n\n return (
\n {loading.renderBox()}\n\n {toast.render()}\n\n {!loading.isLoading() &&
\n
\n {contractor?.name}\n
\n
\n
\n \n {form.input('name', { autoFocus: true })}\n \n \n \n \n \n {form.input('code')}\n \n \n {form.input('phone')}\n \n \n {form.textarea('remarks', { rows: 8 })}\n \n
\n
\n \n {form.input('address')}\n \n \n \n \n\n \n {form.input('postalCode')}\n \n\n {contractor &&\n
\n form.setFieldValue('properties', v)}\n embedPortal={'#embed-properties'}\n objectType={PropertyGroupObjectType.JobHasContractor}\n propertyGroupTypes={props.propertyGroupTypes} />\n
}\n\n
\n
\n
\n \n \n doSave()}>{t('Save')}\n
\n
}\n
);\n}\n\n\nexport default function ContractorUserProfile(props: IProps) {\n\n return props\n .moduleManager\n .renderComponent(\n 'ContractorUserProfile',\n { ...props },\n ContractorUserProfileImpl,\n true);\n}","import { connect } from 'react-redux';\nimport { ApplicationState } from '../store';\n\nimport ContractorProfile from '../components/ContractorProfile';\nimport * as UserStore from '../store/user';\nimport * as ContractorStore from '../store/contractors';\n\nimport { isJobHasContractorPropertyGroupType } from '@models';\n\nexport default connect(\n (state: ApplicationState) => ({\n constants: state.constants,\n workId: state.user?.work?.id,\n propertyGroupTypes: state.user.propertyGroupTypes.filter(isJobHasContractorPropertyGroupType),\n user: state.identity?.user,\n ...UserStore.plainActions,\n ...ContractorStore.plainActions,\n moduleManager: state.modules.moduleManager,\n }),\n {},\n)(ContractorProfile as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../store';\n\nimport WorkerProfile from '../components/WorkerProfile';\nimport * as UserStore from '../store/user';\nimport * as WorkerStore from '../store/workers';\n\nexport default connect(\n (state: ApplicationState) => ({\n constants: state.constants,\n workId: state.user?.work?.id,\n user: state.identity?.user,\n ...UserStore.plainActions,\n ...WorkerStore.plainActions,\n }),\n {},\n)(WorkerProfile as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport { useForm, useLoading, useToast, useTranslation, F, ValidationBuilder } from '@components';\nimport { IConstants, IOption, ISecurity, IUserIdentity, IWorker } from '@models';\nimport { goBack } from '@utils';\n\nimport './UserProfile.scss';\n\ntype SaveWorkerT = (workId: number, data: IWorker) => Promise>;\n\nexport interface IProps {\n constants: IConstants;\n getWorker: Function;\n user: IUserIdentity;\n saveWorker: SaveWorkerT;\n security: ISecurity;\n workId: number;\n}\n\nexport default function WorkerUserProfile(props: IProps) {\n const { t } = useTranslation();\n const toast = useToast();\n const loading = useLoading(true);\n\n const [worker, setWorker] = React.useState();\n\n React.useEffect(() => {\n const workerIds = props.security.getWorkerIds();\n if (workerIds.length > 0 && workerIds[0]) {\n initialize(props.workId, workerIds[0]);\n }\n }, [props.security, props.workId]);\n\n const form = useForm>({\n initialValues: {},\n readonly: loading.isLoading(),\n validate: ValidationBuilder\n .create()\n .notEmpty('name')\n .notEmpty('code')\n .lift(),\n });\n\n const initialize = loading.wrap(async (workId: number, workerId: number) => {\n const worker = await props.getWorker(workId, workerId);\n\n setWorker(worker);\n form.setFieldValues(worker);\n });\n\n const doSave = loading.wrap(async () => {\n const res = await props.saveWorker(props.workId, form.values);\n\n if (res.hasValue && res.value) {\n toast.show(t('data.success'));\n }\n else {\n toast.error(res.error ?? t('data.error'));\n }\n });\n\n return (
\n\n {toast.render()}\n\n
\n
\n {worker?.name}\n  \n {worker?.surname}\n
\n
\n
\n
\n \n {form.input('name', { autoFocus: true, className: 'e' })}\n \n \n {form.input('surname', { className: 'e' })}\n \n \n \n \n \n {form.input('phone', { className: 'e' })}\n \n
\n \n {form.textarea('remarks', { rows: 8 })}\n \n
\n
\n
\n \n \n {loading.renderBox()}\n doSave()}>{t('Save')}\n
\n
\n
);\n}\n","import { connect } from 'react-redux';\nimport { ApplicationState } from '../store';\n\nimport UserProfile from '../components/UserProfile';\nimport * as UserStore from '../store/user';\n\nexport default connect(\n (state: ApplicationState) => ({\n workId: state.user?.work?.id,\n user: state.identity?.user,\n security: state.identity?.security,\n ...UserStore.plainActions,\n }),\n {},\n)(UserProfile as any) as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n","import * as React from 'react';\n\nimport ContractorProfile from '@containers/ContractorProfileContainer';\nimport WorkerProfile from '@containers/WorkerProfileContainer';\nimport { ISecurity, IUserIdentity } from '@models';\n\nexport interface IProps {\n security: ISecurity;\n user: IUserIdentity;\n workId?: number;\n}\n\nexport default function UserProfile(props: IProps) {\n if (props.workId == undefined) {\n return null;\n }\n else if (props.security.isWorker()) {\n return ;\n }\n else if (props.security.isContractor()) {\n return ;\n }\n else {\n return (
\n TODO\n
);\n }\n}\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Route } from 'react-router';\n\nimport Layout from '@components/Layout';\nimport Home from '@containers/HomeContainer';\nimport AdminDocumentTypesContainer from '@containers/admin/AdminDocumentTypesContainer';\nimport AdminUsers from '@containers/admin/AdminUsersContainer';\nimport AdminLoader from '@containers/admin/AdminLoaderContainer';\nimport AdminRoutesWrapper from './components/admin/AdminRoutesWrapper';\nimport AdminWorkLoader from '@containers/admin/AdminWorkLoader';\nimport EditWorkContainer from '@containers/admin/EditWorkContainer';\nimport AdminWorks from '@containers/admin/AdminWorksContainer';\nimport AdminDevelGraphqlUi from '@components/admin/devel/GraphQlUi';\nimport AdminWorkDepartments from '@containers/admin/AdminWorkDepartmentsContainer';\nimport AdminWorkPermissions from '@containers/admin/AdminWorkPermissionsContainer';\nimport AdminWorkWorkers from '@containers/admin/AdminWorkWorkersContainer';\nimport AdminWorkConfiguration from '@containers/admin/AdminWorkConfigurationContainer';\nimport RegisterContractorContainer from '@containers/contractors/RegisterContractorContainer';\nimport ResetPasswordContainer from '@containers/identity/ResetPasswordContainer';\nimport ChangePasswordContainer from '@containers/user/ChangePasswordContainer';\nimport UserConfigurationContainer from '@containers/user/UserConfigurationContainer';\nimport AdminWorkRequirementsContainer from '@containers/admin/AdminWorkRequirementsContainer';\nimport AdminWorkNotifications from '@containers/admin/AdminWorkNotificationsContainer';\nimport AdminWorkValidations from '@containers/admin/AdminWorkValidationsContainer';\nimport AdminWorkContractorsSettings from '@containers/admin/contractors/ManageContractorSettingsContainer';\nimport AdminWorkMachineriesSettings from '@containers/admin/machineries/ManageMachinerySettingsContainer';\nimport AdminWorkWorkersSettings from '@containers/admin/workers/ManageWorkerSettingsContainer';\nimport AdminWorkJobsSettings from '@containers/admin/jobs/ManageJobSettingsContainer';\nimport AdminWorkModules from '@containers/admin/modules/ManageWorkModulesContainer';\nimport AdminWorkEvents from '@containers/admin/events/ManageWorkEventsContainer';\nimport ModuleViewContainer from '@containers/modules/ModuleViewContainer';\nimport ModuleViewRedirectionContainer from '@containers/modules/ModuleViewRedirectionContainer';\nimport WorkLoader from '@containers/user/WorkLoaderContainer';\nimport UserProfileContainer from '@containers/UserProfileContainer';\n\nconst ModuleViewWrapper = (props: any) => {\n return \n \n \n}\n\nconst UserProfileWrapper = (props: any) => {\n return \n \n \n}\n\nconst AdminWrapper = (props: any) => {\n return \n {props.children}\n \n}\n\nconst AdminDocumentTypesWrapper = (props: any) => \n \n\n\nconst AdminUsersWrapper = (props: any) => \n \n\n\nconst AdminWorkWrapper = (props: any) => \n \n \n \n\n\nconst AdminWorksWrapper = (props: any) => \n \n\n\nconst AdminWorkPermissionsWrapper = (props: any) => \n \n \n \n\n\nconst AdminWorkRequirementsWrapper = (props: any) => \n \n \n \n\n\nconst AdminWorkConfigurationWrapper = (props: any) => \n \n \n \n\n\nconst AdminWorkDepartmentsWrapper = (props: any) => \n \n \n \n\n\nconst AdminWorkNotificationsWrapper = (props: any) => \n \n \n \n\n\nconst AdminWorkValidationsWrapper = (props: any) => \n \n \n \n\n\nconst AdminWorkUsersWrapper = (props: any) => \n \n \n \n\n\nconst AdminWorkContractorsSettingsWrapper = (props: any) => \n \n \n \n\n\nconst AdminWorkMachineriesSettingsWrapper = (props: any) => \n \n \n \n\n\nconst AdminWorkWorkersSettingsWrapper = (props: any) => \n \n \n \n\n\nconst AdminWorkJobSettingsWrapper = (props: any) => \n \n \n \n;\n\nconst AdminWorkModulesWrapper = (props: any) => \n \n \n \n\n\nconst AdminWorkEventsWrapper = (props: any) => \n \n \n \n\n\nconst AdminDevelVoyagerWrapper = (props: any) => \n \n\n\nconst AdminDevelGraphqlUiWrapper = (props: any) => \n \n\n\nconst AdminRoutes = (props: any) => {\n return \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n}\n\nexport default () => (\n \n \n \n \n \n \n \n \n \n \n \n {/* */}\n \n);\n\n(window as any).React = React;\n(window as any).ReactDOM = ReactDOM;\n","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register() {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const url = process.env.PUBLIC_URL as string;\n const publicUrl = new URL(url, window.location.toString());\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing as ServiceWorker;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (response.status === 404 || (contentType && contentType.indexOf('javascript') === -1)) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { ConnectedRouter } from 'connected-react-router';\nimport configureStore from './store/configureStore';\nimport App from './App';\nimport registerServiceWorker from './registerServiceWorker';\nimport History from './AppHistory';\nimport Constants from './Constants';\n\nimport * as NotificationsStore from './store/notifications';\n\nimport * as signalR from '@microsoft/signalr';\n\nimport './i18n';\nimport 'primereact/resources/themes/saga-blue/theme.css';\nimport 'primereact/resources/primereact.min.css';\nimport 'primeicons/primeicons.css';\nimport './styles/index.scss';\n\nimport * as AppActions from './store/app';\nimport { MessageType, parseMessage } from '@models/notifications';\n\n(window as any).process = {\n ...(window as any).process,\n};\n\n// Create browser history to use in the Redux store\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href') as string;\n\n// Get the application-wide store instance, prepopulating with state from the server where available.\nconst store = configureStore(History);\nAppActions.actionCreators.initialize()(store.dispatch);\n\nconst signalConnection = new signalR.HubConnectionBuilder()\n .withUrl(\"/notifications\")\n // .configureLogging(signalR.LogLevel.Information)\n .withAutomaticReconnect()\n .build();\n\nasync function startSignalNotifications() {\n try {\n await signalConnection.start();\n }\n catch (err) {\n console.log(err);\n setTimeout(startSignalNotifications, 5000);\n }\n};\n\nsignalConnection.onclose(async () => {\n await startSignalNotifications();\n});\n\nlet __last_reloadns = new Date().getTime();\n\nsignalConnection.on('NotificationMessage', rawMessage => {\n const message = parseMessage(rawMessage);\n if (message.notificationType == MessageType.RELOAD_NOTIFICATIONS) {\n const cs = new Date().getTime();\n if (cs - __last_reloadns > 1000 * 30) {\n NotificationsStore.actionCreators.addMessage(message)(store.dispatch, store.getState);\n }\n }\n else {\n NotificationsStore.actionCreators.addMessage(message)(store.dispatch, store.getState);\n }\n});\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root'));\n\nif (Constants.isDebug) {\n registerServiceWorker();\n}\n\nsetTimeout(\n () => {\n NotificationsStore.actionCreators.loadMessages()(store.dispatch, store.getState);\n startSignalNotifications();\n },\n 1000);\n","import { applyMiddleware, combineReducers, compose, createStore, Middleware } from 'redux';\nimport thunk from 'redux-thunk';\nimport { connectRouter, routerMiddleware } from 'connected-react-router';\nimport { History } from 'history';\nimport { ApplicationState, reducers } from './';\n\nimport { isDebug } from '../Constants';\n\nfunction logger(store: any) {\n return function dispatchAndLog(dispatch: any) {\n console.log('prev state', store.getState())\n return (action: any) => {\n console.log('action', action);\n dispatch(action);\n console.log('new state', store.getState());\n };\n }\n}\n\nexport default function configureStore(history: History, initialState?: ApplicationState) {\n const middleware: any = [\n thunk,\n // isDebug ? logger : undefined,\n routerMiddleware(history)\n ].filter(identity => identity !== undefined);\n\n const rootReducer = combineReducers({\n ...reducers,\n router: connectRouter(history)\n });\n\n const enhancers = [];\n const windowIfDefined = typeof window === 'undefined' ? null : window as any; // eslint-disable-line @typescript-eslint/no-explicit-any\n if (windowIfDefined && windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__) {\n enhancers.push(windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__());\n }\n\n return createStore(\n rootReducer,\n initialState,\n compose(applyMiddleware(...middleware), ...enhancers)\n );\n}\n"],"sourceRoot":""}