From 457194812ba292c34d7d5bebfb3523d584e9c690 Mon Sep 17 00:00:00 2001 From: Vitalii Kiiko Date: Wed, 29 Jan 2025 11:00:55 +0100 Subject: [PATCH] - added updating status for initiating evaluation process; - fixed issues with displaying and calcuating decimals in appl form; --- src/assets/scss/components/misc.scss | 6 +- .../components/BuilderElement/index.js | 16 ++ .../InstructorManagerMieDomandeTable/index.js | 49 ++++- .../PreInstructorDomandeTable/index.js | 49 ++++- .../DomandaEditInstructorManager/index.js | 18 +- src/pages/DomandaEditPreInstructor/index.js | 16 +- src/pages/DomandeBeneficiario/index.js | 4 +- .../index.js | 95 ++++++++++ .../InstructorManagerSoccorsiTable/index.js | 175 ++++++++++++++++++ .../index.js | 23 +++ .../PreInstructorSoccorsiTable/index.js | 23 ++- .../SoccorsoIstruttorioPreInstructor/index.js | 12 +- src/routes.js | 6 +- src/service/amendments-service.js | 4 +- src/service/assigned-application-service.js | 4 + 15 files changed, 449 insertions(+), 51 deletions(-) create mode 100644 src/pages/SoccorsoIstruttorioInstructorManager/index.js create mode 100644 src/pages/SoccorsoIstruttorioMioInstructorManager/components/InstructorManagerSoccorsiTable/index.js create mode 100644 src/pages/SoccorsoIstruttorioMioInstructorManager/index.js diff --git a/src/assets/scss/components/misc.scss b/src/assets/scss/components/misc.scss index 309e5ff..030a350 100644 --- a/src/assets/scss/components/misc.scss +++ b/src/assets/scss/components/misc.scss @@ -34,7 +34,11 @@ &.p-tag-secondary { background-color: var(--table-border-color); } - + + &.p-tag-tertiary { + background-color: var(--card-full-background-color-6); + } + .p-tag-value { color: var(--menuitem-active-color); } diff --git a/src/pages/BandoFormsEdit/components/BuilderElement/index.js b/src/pages/BandoFormsEdit/components/BuilderElement/index.js index 71c0324..83d22af 100644 --- a/src/pages/BandoFormsEdit/components/BuilderElement/index.js +++ b/src/pages/BandoFormsEdit/components/BuilderElement/index.js @@ -19,6 +19,8 @@ const BuilderElement = ({ id, name, label, index, bandoStatus }) => { const element = head(elements.filter(o => o.id === id)); const [isVariable, setIsVariable] = useState('secondary'); const [isFormula, setIsFormula] = useState('secondary'); + const [isRequestedAmount, setIsRequestedAmount] = useState(false); + const [isDelegation, setIsDelegation] = useState(false); const [{ handlerId }, drop] = useDrop({ accept: ItemTypes.FIELD, @@ -105,6 +107,8 @@ const BuilderElement = ({ id, name, label, index, bandoStatus }) => { useEffect(() => { const variable = head(element.settings.filter(o => o.name === 'variable')); const formula = head(element.settings.filter(o => o.name === 'formula')); + const isRequestedAmount = head(element.settings.filter(o => o.name === 'isRequestedAmount')); + const isDelegation = head(element.settings.filter(o => o.name === 'isDelegation')); if (variable && !isEmpty(variable.value)) { setIsVariable('warning'); @@ -113,6 +117,14 @@ const BuilderElement = ({ id, name, label, index, bandoStatus }) => { if (formula && !isEmpty(formula.value)) { setIsFormula('warning'); } + + if (isRequestedAmount && !isEmpty(isRequestedAmount.value) && isRequestedAmount.value) { + setIsRequestedAmount('tertiary'); + } + + if (isDelegation && !isEmpty(isDelegation.value) && isDelegation.value) { + setIsDelegation('tertiary'); + } }, [elements]); return ( @@ -128,6 +140,10 @@ const BuilderElement = ({ id, name, label, index, bandoStatus }) => { ? : null} {name === 'numberinput' ? : null} + {isRequestedAmount + ? : null} + {isDelegation + ? : null} diff --git a/src/pages/DashboardInstructorManager/components/InstructorManagerMieDomandeTable/index.js b/src/pages/DashboardInstructorManager/components/InstructorManagerMieDomandeTable/index.js index 537aefd..752347f 100644 --- a/src/pages/DashboardInstructorManager/components/InstructorManagerMieDomandeTable/index.js +++ b/src/pages/DashboardInstructorManager/components/InstructorManagerMieDomandeTable/index.js @@ -1,7 +1,7 @@ import React, { useState, useEffect} from 'react'; import { __ } from '@wordpress/i18n'; -import { is, uniq, isNil } from 'ramda'; -import { Link } from 'react-router-dom'; +import { is, uniq, isNil, head } from 'ramda'; +import { Link, useNavigate } from 'react-router-dom'; // api import AssignedApplicationService from '../../../../service/assigned-application-service'; @@ -22,10 +22,12 @@ import { Tag } from 'primereact/tag'; import translationStrings from '../../../../translationStringsForComponents'; import { useStore } from '../../../../store'; +import { klona } from 'klona'; const APP_HUB_ID = process.env.REACT_APP_HUB_ID; const InstructorManagerMieDomandeTable = ({ userId = null, statuses = [] }) => { + const navigate = useNavigate(); const [items, setItems] = useState(null); const [filters, setFilters] = useState(null); const [localAsyncRequest, setLocalAsyncRequest] = useState(false); @@ -136,13 +138,44 @@ const InstructorManagerMieDomandeTable = ({ userId = null, statuses = [] }) => { return ; }; + const handleInitiateEvaluation = (id) => { + setLocalAsyncRequest(true); + AssignedApplicationService.updateStatusAssignedApplication(id, getInitEvalCallback, errInitEvalCallbacks, [ + ['status', 'OPEN'] + ]) + } + + const getInitEvalCallback = (resp) => { + if (resp.status === 'SUCCESS') { + const evaluation = klona(head(getFormattedData([resp.data]))); + const newItems = items.map(o => o.id === evaluation.id ? evaluation : o); + setItems(newItems); + navigate(`/mie-domande/${evaluation.applicationId}`); + } + setLocalAsyncRequest(false); + } + + const errInitEvalCallbacks = (resp) => { + setLocalAsyncRequest(false); + } + const actionsBodyTemplate = (rowData) => { - const label = ['OPEN', 'SOCCORSO'].includes(rowData.status) && userData.id === rowData.userId - ? __('Valuta', 'gepafin') - : __('Mostra', 'gepafin'); - return -