diff --git a/.env b/.env
index 871e4c5..16f67c8 100644
--- a/.env
+++ b/.env
@@ -4,6 +4,7 @@ REACT_APP_API_ADDRESS=https://api-dev-gepafin.memento.credit
REACT_APP_API_ADDRESS_WS=https://api-dev-gepafin.memento.credit/wss
REACT_APP_LOGO_FILENAME=gepafin-logo.svg
REACT_APP_FAVICON_FILENAME=gepafin-favicon.ico
+# t7jh5wfg9QXylNaTZkPoE - sviluppumbria | p4lk3bcx1RStqTaIVVbXs - gepafin
REACT_APP_HUB_ID=p4lk3bcx1RStqTaIVVbXs
REACT_APP_EVALUATION_FLOW_ID=1
REACT_APP_LOCAL_DEVELOPMENT=1
diff --git a/src/assets/scss/components/evaluation.scss b/src/assets/scss/components/evaluation.scss
index 1498d2f..97b6888 100644
--- a/src/assets/scss/components/evaluation.scss
+++ b/src/assets/scss/components/evaluation.scss
@@ -38,4 +38,58 @@
th, td {
padding: 3px;
}
+}
+
+.file-upload-container {
+ display: flex;
+ flex-direction: column;
+ gap: 0.5rem;
+}
+
+.file-upload-item {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0.5rem;
+ border: 1px solid #dee2e6;
+ border-radius: 4px;
+ background-color: #f8f9fa;
+
+ .file-name {
+ font-size: 0.875rem;
+ color: #495057;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ flex: 1;
+ margin-right: 0.5rem;
+
+ .pi-file {
+ margin-right: 0.5rem;
+ }
+ }
+
+ .p-button {
+ min-width: auto;
+ padding: 0.25rem;
+ }
+}
+
+.file-upload-button {
+ cursor: pointer;
+ display: inline-flex;
+ align-items: center;
+ gap: 0.5rem;
+ padding: 0.5rem 1rem;
+ border-radius: 4px;
+ border: 1px dashed #007ad9;
+ background-color: transparent;
+ color: #007ad9;
+ font-size: 0.875rem;
+ text-decoration: none;
+ transition: background-color 0.2s;
+
+ &:hover {
+ background-color: rgba(0, 122, 217, 0.04);
+ }
}
\ No newline at end of file
diff --git a/src/components/FormField/components/CriteriaTable/RenderTable/components/LastRowCell/index.js b/src/components/FormField/components/CriteriaTable/RenderTable/components/LastRowCell/index.js
index 1c2dcc2..1123085 100644
--- a/src/components/FormField/components/CriteriaTable/RenderTable/components/LastRowCell/index.js
+++ b/src/components/FormField/components/CriteriaTable/RenderTable/components/LastRowCell/index.js
@@ -2,7 +2,7 @@ import { head, is, isNil, pathOr } from 'ramda';
import getNumberFormatted from '../../../../../../../helpers/getNumberFormatted';
const LastRowCell = ({columnId, lastRowCfg, columnMeta = {}, tableValue = []}) => {
- const cellData = head(lastRowCfg.filter(o => !isNil(o[columnId])));
+ const cellData = pathOr({}, [], head(lastRowCfg.filter(o => !isNil(o[columnId]))));
let cellValue = cellData[columnId];
if (columnMeta.enableFormula) {
diff --git a/src/components/FormField/components/Table/RenderTable/components/LastRowCell/index.js b/src/components/FormField/components/Table/RenderTable/components/LastRowCell/index.js
index e9c400d..a0d15c2 100644
--- a/src/components/FormField/components/Table/RenderTable/components/LastRowCell/index.js
+++ b/src/components/FormField/components/Table/RenderTable/components/LastRowCell/index.js
@@ -1,9 +1,9 @@
-import { head, isNil, sum } from 'ramda';
+import { head, isNil, pathOr, sum } from 'ramda';
import getNumberFormatted from '../../../../../../../helpers/getNumberFormatted';
import parseLocaleNumber from '../../../../../../../helpers/parseLocaleNumber';
const LastRowCell = ({columnId, lastRowCfg, columnMeta = {}, getColumnDataFn}) => {
- const cellData = head(lastRowCfg.filter(o => !isNil(o[columnId])));
+ const cellData = pathOr({}, [], head(lastRowCfg.filter(o => !isNil(o[columnId]))));
let cellValue = cellData[columnId];
if (columnMeta.enableFormula) {
diff --git a/src/helpers/getBandoLabel.js b/src/helpers/getBandoLabel.js
index 286c9d2..6c27fdf 100644
--- a/src/helpers/getBandoLabel.js
+++ b/src/helpers/getBandoLabel.js
@@ -35,6 +35,9 @@ const getBandoLabel = (status) => {
case 'TECHNICAL_EVALUATION':
return __('Valutazione technico-finanziaria', 'gepafin');
+ case 'AWAITING_TECHNICAL_EVALUATION':
+ return __('Pre valutazione technico-finanziaria', 'gepafin');
+
case 'DUE':
return __('In scadenza', 'gepafin');
diff --git a/src/helpers/getBandoSeverity.js b/src/helpers/getBandoSeverity.js
index 115ab3b..5c54514 100644
--- a/src/helpers/getBandoSeverity.js
+++ b/src/helpers/getBandoSeverity.js
@@ -33,6 +33,9 @@ const getBandoSeverity = (status) => {
case 'TECHNICAL_EVALUATION':
return 'info';
+ case 'AWAITING_TECHNICAL_EVALUATION':
+ return 'warning';
+
case 'DUE':
return 'warning';
diff --git a/src/pages/DomandaEditInstructorManager/index.js b/src/pages/DomandaEditInstructorManager/index.js
index 39bf0b4..45667d8 100644
--- a/src/pages/DomandaEditInstructorManager/index.js
+++ b/src/pages/DomandaEditInstructorManager/index.js
@@ -4,9 +4,9 @@ import { useNavigate, useParams } from 'react-router-dom';
import { is, isEmpty, isNil, sum, pathOr, head, pluck } from 'ramda';
import { klona } from 'klona';
import { wrap } from 'object-path-immutable';
+import { useForm } from 'react-hook-form';
import { evaluate } from 'mathjs';
import equal from 'fast-deep-equal';
-import { useForm } from 'react-hook-form';
// store
import { storeGet, storeSet, useStoreValue } from '../../store';
@@ -44,6 +44,7 @@ import { InputNumber } from 'primereact/inputnumber';
import { Toast } from 'primereact/toast';
import { Dialog } from 'primereact/dialog';
import HelpIcon from '../../icons/HelpIcon';
+import BlockingOverlay from '../../components/BlockingOverlay';
import { classNames } from 'primereact/utils';
import { InputTextarea } from 'primereact/inputtextarea';
import { InputText } from 'primereact/inputtext';
@@ -54,6 +55,7 @@ import ApplicationDownloadFiles from '../DomandaEditPreInstructor/components/App
import FormField from '../../components/FormField';
import SoccorsoResendEmails from '../SoccorsoEditPreInstructor/components/SoccorsoResendEmails';
import EvaluationReAdmit from '../DomandaEditPreInstructor/components/EvaluationReAdmit';
+import { SplitButton } from 'primereact/splitbutton';
const APP_EVALUATION_FLOW_ID = process.env.REACT_APP_EVALUATION_FLOW_ID;
const APP_HUB_ID = process.env.REACT_APP_HUB_ID;
@@ -69,12 +71,19 @@ const DomandaEditInstructorManager = () => {
const [isAdmissible, setIsAdmissible] = useState(false);
const [connectedSoccorsoId, setConnectedSoccorsoId] = useState(0);
const toast = useRef(null);
+ const tecFinBtnRef = useRef(null);
const [loading, setLoading] = useState(false);
const [isVisibleCompleteDialog, setIsVisibleCompleteDialog] = useState(false);
const [operationType, setOperationType] = useState('');
const [motivation, setMotivation] = useState('');
const [amountAccepted, setAmountAccepted] = useState(0);
const [isVisibleAppointmentDialog, setIsVisibleAppointmentDialog] = useState(false);
+ const [isVisiblePreTecEvalDialog, setIsVisiblePreTecEvalDialog] = useState(false);
+ const [preTecEvalData, setPreTecEvalData] = useState({
+ amendmentDocumentType: '',
+ pec: '',
+ amount: 0
+ });
const [allFilesRated, setAllFilesRated] = useState(false);
const [atLeastOneChecked, setAtLeastOneChecked] = useState(false);
const [allChecksChecked, setAllChecksChecked] = useState(false);
@@ -276,6 +285,40 @@ const DomandaEditInstructorManager = () => {
};
const header = renderHeader();
+ const technicalEvalItems = [
+ {
+ label: __('Nessuna garanzia', 'gepafin'),
+ icon: 'pi pi-pen-to-square',
+ command: () => {
+ setPreTecEvalData(prev => ({ ...prev, amendmentDocumentType: 'NESSUNA_GARANZIA' }));
+ setIsVisiblePreTecEvalDialog(true);
+ }
+ },
+ {
+ label: __('Garanzia MCC', 'gepafin'),
+ icon: 'pi pi-pen-to-square',
+ command: () => {
+ setPreTecEvalData(prev => ({ ...prev, amendmentDocumentType: 'GARANZIA_MCC' }));
+ setIsVisiblePreTecEvalDialog(true);
+ }
+ },
+ {
+ label: __('Garanzia MCC Start-Up', 'gepafin'),
+ icon: 'pi pi-pen-to-square',
+ command: () => {
+ setPreTecEvalData(prev => ({ ...prev, amendmentDocumentType: 'MCC_START_UP' }));
+ setIsVisiblePreTecEvalDialog(true);
+ }
+ },
+ {
+ label: __('Altre garanzie (fideiussioni)', 'gepafin'),
+ icon: 'pi pi-pen-to-square',
+ command: () => {
+ setPreTecEvalData(prev => ({ ...prev, amendmentDocumentType: 'ALTRE_GARANZIE' }));
+ setIsVisiblePreTecEvalDialog(true);
+ }
+ }
+ ]
const updateEvaluationValue = (value, path, maxValue = null) => {
let finalValue = value;
@@ -579,6 +622,8 @@ const DomandaEditInstructorManager = () => {
if (data.status === 'SUCCESS') {
if (data.data.length) {
setConnectedSoccorsoId(data.data[0].id);
+ } else {
+ setConnectedSoccorsoId(0);
}
}
}
@@ -700,7 +745,7 @@ const DomandaEditInstructorManager = () => {
setIsVisibleAppointmentDialog(true);
}
- const setFieldValue = (name, value) => {
+ const setAppointmentFieldValue = (name, value) => {
const newData = wrap(appointmentData).set(name, value).value();
setAppointmentData(newData);
}
@@ -724,6 +769,30 @@ const DomandaEditInstructorManager = () => {
}
+ const setPreTecEvalFieldValue = (name, value) => {
+ const newData = wrap(preTecEvalData).set(name, value).value();
+ setPreTecEvalData(newData);
+ }
+
+ const headerPreTecEvalDialog = () => {
+ return {__('Valutazione Tecnico-Finanziaria', 'gepafin')};
+ }
+
+ const hidePreTecEvalDialog = () => {
+ setIsVisiblePreTecEvalDialog(false);
+ setPreTecEvalData({});
+ }
+
+ const footerPreTecEvalDialog = () => {
+ return
+
+
+ }
+
const doCreateAppointmentRequest = () => {
if (
!isEmpty(appointmentData.title) && !isEmpty(appointmentData.text) && !isEmpty(appointmentData.amount)
@@ -776,6 +845,48 @@ const DomandaEditInstructorManager = () => {
storeSet('unsetAsyncRequest');
}
+ const doCreateSpecialAmendment = useCallback(() => {
+ if (
+ !isEmpty(preTecEvalData.amount) && !isEmpty(preTecEvalData.pec) && !isEmpty(preTecEvalData.amendmentDocumentType)
+ ) {
+ storeSet('setAsyncRequest');
+
+ AmendmentsService.createAmendmentSpecial(preTecEvalData, getAmendmentSpecialCallback, errGetAmendmentSpecialCallback,
+ [
+ ['applicationEvaluationId', data.id]
+ ]);
+ }
+ }, [preTecEvalData, data]);
+
+ const getAmendmentSpecialCallback = (data) => {
+ if (data.status === 'SUCCESS') {
+ if (toast.current && data.message) {
+ toast.current.show({
+ severity: 'success',
+ summary: '',
+ detail: data.message
+ });
+ }
+ }
+ setIsVisiblePreTecEvalDialog(false);
+ setPreTecEvalData({});
+ storeSet('unsetAsyncRequest');
+ }
+
+ const errGetAmendmentSpecialCallback = (data) => {
+ if (toast.current && data.message) {
+ toast.current.show({
+ severity: data.status === 'SUCCESS' ? 'info' : 'error',
+ summary: '',
+ detail: data.message
+ });
+ }
+ setIsVisiblePreTecEvalDialog(false);
+ setPreTecEvalData({});
+ set404FromErrorResponse(data);
+ storeSet('unsetAsyncRequest');
+ }
+
const doMakeAdmisible = () => {
doSaveDraft(null, {
applicationStatus: 'ADMISSIBLE'
@@ -796,9 +907,9 @@ const DomandaEditInstructorManager = () => {
}
const shouldDisableNewSoccorso = () => {
- if (data.evaluationVersion === 'V1') {
- return !allFilesRated || !atLeastOneChecked;
- } else if (data.evaluationVersion === 'V2') {
+ if (APP_HUB_ID !== 't7jh5wfg9QXylNaTZkPoE') {
+ return !data.ndg || !data.appointmentId || !allFilesRated || !atLeastOneChecked;
+ } else if (APP_HUB_ID === 't7jh5wfg9QXylNaTZkPoE') {
return !allFilesRated || !atLeastOneChecked;
} else {
return true;
@@ -812,7 +923,11 @@ const DomandaEditInstructorManager = () => {
const actionBtns = () => {
return
- {['EVALUATION', 'SOCCORSO', 'CLOSE'].includes(data.applicationStatus)
+ {(['SOCCORSO', 'CLOSE', 'EVALUATION', 'NDG', 'APPOINTMENT', 'ADMISSIBLE',
+ 'AWAITING_TECHNICAL_EVALUATION', 'TECHNICAL_EVALUATION'].includes(data.applicationStatus)
+ && APP_HUB_ID !== 't7jh5wfg9QXylNaTZkPoE')
+ || (['SOCCORSO', 'CLOSE', 'EVALUATION', 'ADMISSIBLE', 'TECHNICAL_EVALUATION'].includes(data.applicationStatus)
+ && APP_HUB_ID === 't7jh5wfg9QXylNaTZkPoE')
?
: <>
diff --git a/src/pages/DomandaEditPreInstructor/index.js b/src/pages/DomandaEditPreInstructor/index.js
index 7433472..58ebd03 100644
--- a/src/pages/DomandaEditPreInstructor/index.js
+++ b/src/pages/DomandaEditPreInstructor/index.js
@@ -28,11 +28,11 @@ import {
isPIVA,
isUrl, maxChecks, minChecks, nonEmptyTables
} from '../../helpers/validators';
+import formatDateString from '../../helpers/formatDateString';
import getTokens from '../../helpers/getTokens';
import parseCommaDecimal from '../../helpers/parseCommaDecimal';
import renderWithDataVars from '../../helpers/renderWithDataVars';
import renderHtmlContent from '../../helpers/renderHtmlContent';
-import formatDateString from '../../helpers/formatDateString';
// components
import { Skeleton } from 'primereact/skeleton';
@@ -55,6 +55,7 @@ import ApplicationDownloadFiles from './components/ApplicationDownloadFiles';
import FormField from '../../components/FormField';
import SoccorsoResendEmails from '../SoccorsoEditPreInstructor/components/SoccorsoResendEmails';
import EvaluationReAdmit from './components/EvaluationReAdmit';
+import { SplitButton } from 'primereact/splitbutton';
const APP_EVALUATION_FLOW_ID = process.env.REACT_APP_EVALUATION_FLOW_ID;
const APP_HUB_ID = process.env.REACT_APP_HUB_ID;
@@ -70,12 +71,19 @@ const DomandaEditPreInstructor = () => {
const [isAdmissible, setIsAdmissible] = useState(false);
const [connectedSoccorsoId, setConnectedSoccorsoId] = useState(0);
const toast = useRef(null);
+ const tecFinBtnRef = useRef(null);
const [loading, setLoading] = useState(false);
const [isVisibleCompleteDialog, setIsVisibleCompleteDialog] = useState(false);
const [operationType, setOperationType] = useState('');
const [motivation, setMotivation] = useState('');
const [amountAccepted, setAmountAccepted] = useState(0);
const [isVisibleAppointmentDialog, setIsVisibleAppointmentDialog] = useState(false);
+ const [isVisiblePreTecEvalDialog, setIsVisiblePreTecEvalDialog] = useState(false);
+ const [preTecEvalData, setPreTecEvalData] = useState({
+ amendmentDocumentType: '',
+ pec: '',
+ amount: 0
+ });
const [allFilesRated, setAllFilesRated] = useState(false);
const [atLeastOneChecked, setAtLeastOneChecked] = useState(false);
const [allChecksChecked, setAllChecksChecked] = useState(false);
@@ -127,6 +135,7 @@ const DomandaEditPreInstructor = () => {
const updateFlagsForSoccorso = useCallback((data) => {
let nonRatedFilesLength = 0;
+ let nonRatedAmmendFilesLength = 0;
if (data.files) {
const nonRatedFiles = data.files
@@ -139,10 +148,10 @@ const DomandaEditPreInstructor = () => {
const nonRatedFiles = data.amendmentDetails
.map(el => el.valid)
.filter(v => isNil(v));
- nonRatedFilesLength = nonRatedFiles.length;
+ nonRatedAmmendFilesLength = nonRatedFiles.length;
}
- setAllFilesRated(nonRatedFilesLength === 0);
+ setAllFilesRated(nonRatedFilesLength === 0 && nonRatedAmmendFilesLength === 0);
if (data.evaluationVersion === 'V1') {
if (data.checklist) {
@@ -276,6 +285,40 @@ const DomandaEditPreInstructor = () => {
};
const header = renderHeader();
+ const technicalEvalItems = [
+ {
+ label: __('Nessuna garanzia', 'gepafin'),
+ icon: 'pi pi-pen-to-square',
+ command: () => {
+ setPreTecEvalData(prev => ({ ...prev, amendmentDocumentType: 'NESSUNA_GARANZIA' }));
+ setIsVisiblePreTecEvalDialog(true);
+ }
+ },
+ {
+ label: __('Garanzia MCC', 'gepafin'),
+ icon: 'pi pi-pen-to-square',
+ command: () => {
+ setPreTecEvalData(prev => ({ ...prev, amendmentDocumentType: 'GARANZIA_MCC' }));
+ setIsVisiblePreTecEvalDialog(true);
+ }
+ },
+ {
+ label: __('Garanzia MCC Start-Up', 'gepafin'),
+ icon: 'pi pi-pen-to-square',
+ command: () => {
+ setPreTecEvalData(prev => ({ ...prev, amendmentDocumentType: 'MCC_START_UP' }));
+ setIsVisiblePreTecEvalDialog(true);
+ }
+ },
+ {
+ label: __('Altre garanzie (fideiussioni)', 'gepafin'),
+ icon: 'pi pi-pen-to-square',
+ command: () => {
+ setPreTecEvalData(prev => ({ ...prev, amendmentDocumentType: 'ALTRE_GARANZIE' }));
+ setIsVisiblePreTecEvalDialog(true);
+ }
+ }
+ ]
const updateEvaluationValue = (value, path, maxValue = null) => {
let finalValue = value;
@@ -418,6 +461,7 @@ const DomandaEditPreInstructor = () => {
} else if (data.evaluationVersion === 'V2') {
const newFormValues = getTransformedSubmitData();
const submitData = {
+ applicationStatus: 'APPROVED',
formFields: newFormValues,
files: klona(data.files),
evaluationDocument: klona(data.evaluationDocument.map(o => ({
@@ -578,6 +622,8 @@ const DomandaEditPreInstructor = () => {
if (data.status === 'SUCCESS') {
if (data.data.length) {
setConnectedSoccorsoId(data.data[0].id);
+ } else {
+ setConnectedSoccorsoId(0);
}
}
}
@@ -644,7 +690,7 @@ const DomandaEditPreInstructor = () => {
setIsVisibleCompleteDialog(true);
}
- const initiateTFRejecting = () => {
+ const initiateTFRejecting = () => {
setOperationType('tf_reject');
setIsVisibleCompleteDialog(true);
}
@@ -699,7 +745,7 @@ const DomandaEditPreInstructor = () => {
setIsVisibleAppointmentDialog(true);
}
- const setFieldValue = (name, value) => {
+ const setAppointmentFieldValue = (name, value) => {
const newData = wrap(appointmentData).set(name, value).value();
setAppointmentData(newData);
}
@@ -723,6 +769,30 @@ const DomandaEditPreInstructor = () => {
}
+ const setPreTecEvalFieldValue = (name, value) => {
+ const newData = wrap(preTecEvalData).set(name, value).value();
+ setPreTecEvalData(newData);
+ }
+
+ const headerPreTecEvalDialog = () => {
+ return {__('Valutazione Tecnico-Finanziaria', 'gepafin')};
+ }
+
+ const hidePreTecEvalDialog = () => {
+ setIsVisiblePreTecEvalDialog(false);
+ setPreTecEvalData({});
+ }
+
+ const footerPreTecEvalDialog = () => {
+ return
+
+
+
+ }
+
const doCreateAppointmentRequest = () => {
if (
!isEmpty(appointmentData.title) && !isEmpty(appointmentData.text) && !isEmpty(appointmentData.amount)
@@ -775,6 +845,48 @@ const DomandaEditPreInstructor = () => {
storeSet('unsetAsyncRequest');
}
+ const doCreateSpecialAmendment = useCallback(() => {
+ if (
+ !isEmpty(preTecEvalData.amount) && !isEmpty(preTecEvalData.pec) && !isEmpty(preTecEvalData.amendmentDocumentType)
+ ) {
+ storeSet('setAsyncRequest');
+
+ AmendmentsService.createAmendmentSpecial(preTecEvalData, getAmendmentSpecialCallback, errGetAmendmentSpecialCallback,
+ [
+ ['applicationEvaluationId', data.id]
+ ]);
+ }
+ }, [preTecEvalData, data]);
+
+ const getAmendmentSpecialCallback = (data) => {
+ if (data.status === 'SUCCESS') {
+ if (toast.current && data.message) {
+ toast.current.show({
+ severity: 'success',
+ summary: '',
+ detail: data.message
+ });
+ }
+ }
+ setIsVisiblePreTecEvalDialog(false);
+ setPreTecEvalData({});
+ storeSet('unsetAsyncRequest');
+ }
+
+ const errGetAmendmentSpecialCallback = (data) => {
+ if (toast.current && data.message) {
+ toast.current.show({
+ severity: data.status === 'SUCCESS' ? 'info' : 'error',
+ summary: '',
+ detail: data.message
+ });
+ }
+ setIsVisiblePreTecEvalDialog(false);
+ setPreTecEvalData({});
+ set404FromErrorResponse(data);
+ storeSet('unsetAsyncRequest');
+ }
+
const doMakeAdmisible = () => {
doSaveDraft(null, {
applicationStatus: 'ADMISSIBLE'
@@ -790,14 +902,14 @@ const DomandaEditPreInstructor = () => {
}, [isAdmissible]);
const evaluationBlockedForUser = (data = {}) => {
- const userData = storeGet('userData')
+ const userData = storeGet('userData');
return isAsyncRequest || userData.id !== data.assignedUserId;
}
const shouldDisableNewSoccorso = () => {
- if (data.evaluationVersion === 'V1') {
- return !allFilesRated || !atLeastOneChecked;
- } else if (data.evaluationVersion === 'V2') {
+ if (APP_HUB_ID !== 't7jh5wfg9QXylNaTZkPoE') {
+ return !data.ndg || !data.appointmentId || !allFilesRated || !atLeastOneChecked;
+ } else if (APP_HUB_ID === 't7jh5wfg9QXylNaTZkPoE') {
return !allFilesRated || !atLeastOneChecked;
} else {
return true;
@@ -811,7 +923,11 @@ const DomandaEditPreInstructor = () => {
const actionBtns = () => {
return
- {['EVALUATION', 'SOCCORSO', 'CLOSE'].includes(data.applicationStatus)
+ {(['SOCCORSO', 'CLOSE', 'EVALUATION', 'NDG', 'APPOINTMENT', 'ADMISSIBLE',
+ 'AWAITING_TECHNICAL_EVALUATION', 'TECHNICAL_EVALUATION'].includes(data.applicationStatus)
+ && APP_HUB_ID !== 't7jh5wfg9QXylNaTZkPoE')
+ || (['SOCCORSO', 'CLOSE', 'EVALUATION', 'ADMISSIBLE', 'TECHNICAL_EVALUATION'].includes(data.applicationStatus)
+ && APP_HUB_ID === 't7jh5wfg9QXylNaTZkPoE')
? {
onClick={doNewSoccorso}
outlined
label={<>
- {data.applicationStatus === 'EVALUATION'
+ {connectedSoccorsoId === 0
? __('Richiedi soccorso istruttorio', 'gepafin')
: __('Apri soccorso istruttorio', 'gepafin')}
@@ -845,7 +961,7 @@ const DomandaEditPreInstructor = () => {
&& APP_HUB_ID !== 't7jh5wfg9QXylNaTZkPoE'
? {
onClick={doCreateAppointment}
label={__('Crea l\'appuntamento', 'gepafin')}
/> : null}
-
-
+ {APP_HUB_ID !== 't7jh5wfg9QXylNaTZkPoE'
+ ?
+ : }
+ {APP_HUB_ID === 't7jh5wfg9QXylNaTZkPoE'
+ ? : null}
+ {APP_HUB_ID !== 't7jh5wfg9QXylNaTZkPoE' && data.applicationStatus === 'AWAITING_TECHNICAL_EVALUATION'
+ ?
+ : APP_HUB_ID !== 't7jh5wfg9QXylNaTZkPoE'
+ ? {
+ tecFinBtnRef.current.show(e);
+ }}
+ model={technicalEvalItems}/> : null}
{
|| ['APPROVED', 'REJECTED'].includes(data.applicationStatus)
|| evaluationBlockedForUser(data)
|| (APP_EVALUATION_FLOW_ID === '1' && !['TECHNICAL_EVALUATION'].includes(data.applicationStatus))
+ || connectedSoccorsoId !== 0
}
onClick={initiateApproving}
- label={__('Domanda deliberata', 'gepafin')}
+ label={__('Domanda in Graduatoria Definitiva', 'gepafin')}
icon="pi pi-check" iconPos="right"/> : null}
{data.id
? {
-
+
}
@@ -1286,7 +1435,7 @@ const DomandaEditPreInstructor = () => {
)}
| {__('Punteggio:', 'gepafin')} |
- {new Intl.NumberFormat("it-IT").format(
+ | {new Intl.NumberFormat('it-IT').format(
sum(data.criteria.map(o => o.score))
)} |
@@ -1378,7 +1527,7 @@ const DomandaEditPreInstructor = () => {
locale="it-IT"
minFractionDigits={2}
invalid={isEmpty(appointmentData.amount) || appointmentData.amount === 0}
- onChange={(e) => setFieldValue('amount', e.value)}/>
+ onChange={(e) => setAppointmentFieldValue('amount', e.value)}/>
+
+
: <>
diff --git a/src/pages/Domande/components/AllDomandeTable/index.js b/src/pages/Domande/components/AllDomandeTable/index.js
index 2adb952..7a99f18 100644
--- a/src/pages/Domande/components/AllDomandeTable/index.js
+++ b/src/pages/Domande/components/AllDomandeTable/index.js
@@ -37,7 +37,7 @@ const AllDomandeTable = ({ openDialogFn, updaterString = '' }) => {
ApplicationService.getApplications(getCallback, errGetCallbacks, [
['statuses', [
'SUBMIT', 'EVALUATION', 'SOCCORSO',
- 'APPOINTMENT', 'NDG', 'ADMISSIBLE', 'TECHNICAL_EVALUATION'
+ 'APPOINTMENT', 'NDG', 'ADMISSIBLE', 'AWAITING_TECHNICAL_EVALUATION', 'TECHNICAL_EVALUATION'
]]
]);
}, [updaterString]);
diff --git a/src/pages/Domande/components/AllDomandeTableAsync/index.js b/src/pages/Domande/components/AllDomandeTableAsync/index.js
index 38fdcad..fea327d 100644
--- a/src/pages/Domande/components/AllDomandeTableAsync/index.js
+++ b/src/pages/Domande/components/AllDomandeTableAsync/index.js
@@ -43,7 +43,7 @@ const AllDomandeTableAsync = ({ openDialogFn, updaterString = '' }) => {
status: { value: null, matchMode: 'equals' }
}
});
- const statuses = ['SUBMIT', 'EVALUATION', 'SOCCORSO', 'APPOINTMENT', 'NDG', 'ADMISSIBLE', 'TECHNICAL_EVALUATION'];
+ const statuses = ['SUBMIT', 'EVALUATION', 'SOCCORSO', 'APPOINTMENT', 'NDG', 'ADMISSIBLE', 'AWAITING_TECHNICAL_EVALUATION', 'TECHNICAL_EVALUATION'];
const getPaginationQuery = useCallback(() => getQueryParamsForPaginatedEndpoint(lazyState, statuses, 'id'), [lazyState]);
diff --git a/src/pages/DomandeBeneficiario/components/AllDomandeBeneficiarioTableAsync/index.js b/src/pages/DomandeBeneficiario/components/AllDomandeBeneficiarioTableAsync/index.js
index 54f3bf3..e1e5676 100644
--- a/src/pages/DomandeBeneficiario/components/AllDomandeBeneficiarioTableAsync/index.js
+++ b/src/pages/DomandeBeneficiario/components/AllDomandeBeneficiarioTableAsync/index.js
@@ -92,7 +92,7 @@ const AllDomandeBeneficiarioTableAsync = ({ statuses }) => {
const actionsBodyTemplate = (rowData) => {
return
- {rowData.status === 'SOCCORSO'
+ {['SOCCORSO', 'AWAITING_TECHNICAL_EVALUATION'].includes(rowData.status)
?
diff --git a/src/pages/DomandeBeneficiario/components/BeneficiarioDomandeTable/index.js b/src/pages/DomandeBeneficiario/components/BeneficiarioDomandeTable/index.js
index c513eb9..f306a99 100644
--- a/src/pages/DomandeBeneficiario/components/BeneficiarioDomandeTable/index.js
+++ b/src/pages/DomandeBeneficiario/components/BeneficiarioDomandeTable/index.js
@@ -42,7 +42,7 @@ const BeneficiarioDomandeTable = () => {
['companyId', chosenCompanyId],
['statuses', [
'SOCCORSO', 'APPROVED', 'REJECTED', 'EVALUATION', 'SUBMIT',
- 'APPOINTMENT', 'NDG', 'ADMISSIBLE', 'TECHNICAL_EVALUATION'
+ 'APPOINTMENT', 'NDG', 'ADMISSIBLE', 'AWAITING_TECHNICAL_EVALUATION', 'TECHNICAL_EVALUATION'
]
] // 'NDG', 'ADMISSIBLE', 'APPOINTMENT'
]);
diff --git a/src/pages/DomandeBeneficiario/index.js b/src/pages/DomandeBeneficiario/index.js
index 345f3f7..0146b86 100644
--- a/src/pages/DomandeBeneficiario/index.js
+++ b/src/pages/DomandeBeneficiario/index.js
@@ -24,7 +24,7 @@ const DomandeBeneficiario = () => {
+ 'APPOINTMENT', 'NDG', 'ADMISSIBLE', 'AWAITING_TECHNICAL_EVALUATION', 'TECHNICAL_EVALUATION']}/>
)
diff --git a/src/service/amendments-service.js b/src/service/amendments-service.js
index 9b9cc55..13a5a4d 100644
--- a/src/service/amendments-service.js
+++ b/src/service/amendments-service.js
@@ -42,6 +42,10 @@ export default class AmendmentsService {
]);
};
+ static createAmendmentSpecial = (body, callback, errCallback, queryParams) => {
+ NetworkService.post(`${API_BASE_URL}/amendments/special`, body, callback, errCallback, queryParams);
+ };
+
static sendReminderForSoccorso = (id, callback, errCallback, queryParams) => {
NetworkService.post(`${API_BASE_URL}/amendments/${id}/reminder`, {}, callback, errCallback, queryParams);
};
|