diff --git a/src/helpers/getBandoLabel.js b/src/helpers/getBandoLabel.js index 9a13e36..e379402 100644 --- a/src/helpers/getBandoLabel.js +++ b/src/helpers/getBandoLabel.js @@ -32,6 +32,9 @@ const getBandoLabel = (status) => { case 'ADMISSIBLE': return __('Ammisibile', 'gepafin'); + case 'TECHNICAL_EVALUATION': + return __('Valutazione technico-finanziaria', 'gepafin'); + case 'DUE': return __('In scadenza', 'gepafin'); diff --git a/src/helpers/getBandoSeverity.js b/src/helpers/getBandoSeverity.js index cd74015..115ab3b 100644 --- a/src/helpers/getBandoSeverity.js +++ b/src/helpers/getBandoSeverity.js @@ -30,6 +30,9 @@ const getBandoSeverity = (status) => { case 'ADMISSIBLE': return 'info'; + case 'TECHNICAL_EVALUATION': + return 'info'; + case 'DUE': return 'warning'; diff --git a/src/pages/Dashboard/components/LatestBandiTableAsync/index.js b/src/pages/Dashboard/components/LatestBandiTableAsync/index.js index 71421ff..72f0e5e 100644 --- a/src/pages/Dashboard/components/LatestBandiTableAsync/index.js +++ b/src/pages/Dashboard/components/LatestBandiTableAsync/index.js @@ -47,12 +47,12 @@ const LatestBandiTableAsync = () => { } } return { - "globalFilters": { - "page": lazyState.page ? lazyState.page + 1 : 1, - "limit": lazyState.rows, - sortBy, - status: statuses - } + globalFilters: { + page: lazyState.page ? lazyState.page + 1 : 1, + limit: lazyState.rows, + sortBy + }, + status: statuses } }, [lazyState]); diff --git a/src/pages/DomandaEditInstructorManager/index.js b/src/pages/DomandaEditInstructorManager/index.js index f706531..7e5919d 100644 --- a/src/pages/DomandaEditInstructorManager/index.js +++ b/src/pages/DomandaEditInstructorManager/index.js @@ -71,6 +71,7 @@ const DomandaEditInstructorManager = () => { const [isVisibleCompleteDialog, setIsVisibleCompleteDialog] = useState(false); const [operationType, setOperationType] = useState(''); const [motivation, setMotivation] = useState(''); + const [amountAccepted, setAmountAccepted] = useState(0); const [isVisibleAppointmentDialog, setIsVisibleAppointmentDialog] = useState(false); const [allFilesRated, setAllFilesRated] = useState(false); const [atLeastOneChecked, setAtLeastOneChecked] = useState(false); @@ -167,10 +168,14 @@ const DomandaEditInstructorManager = () => { if (connectedSoccorsoId !== 0) { navigate(`/mie-domande/${id}/soccorso/${connectedSoccorsoId}`); } else { - doSaveDraft(`/mie-domande/${id}/aggiungi-soccorso/`) + doSaveDraft(navigateToNewSoccorso) } } + const navigateToNewSoccorso = () => { + navigate(`/mie-domande/${id}/aggiungi-soccorso/`); + } + const getVersion = (resp) => { if (resp.status === 'SUCCESS') { if (resp.data.evaluationVersion === 'V1') { @@ -306,7 +311,7 @@ const DomandaEditInstructorManager = () => { }, []); } - const doSaveDraft = useCallback((doRedirect = '') => { + const doSaveDraft = useCallback((afterUpdateCallback = null, cfgModifier = {}) => { if (data.evaluationVersion === 'V1') { const submitData = { criteria: klona(data.criteria), @@ -318,13 +323,14 @@ const DomandaEditInstructorManager = () => { }) )), amendmentDetails: klona(data.amendmentDetails), - note: data.note + note: data.note, + ...cfgModifier }; ApplicationEvaluationService.updateEvaluation( data.assignedApplicationId, submitData, - (data) => updateCallback(data, doRedirect), + (data) => updateCallback(data, afterUpdateCallback), errUpdateCallback ); } else if (data.evaluationVersion === 'V2') { @@ -338,20 +344,26 @@ const DomandaEditInstructorManager = () => { }) )), amendmentDetails: klona(data.amendmentDetails), - note: data.note + note: data.note, + ...cfgModifier } ApplicationEvaluationService.updateEvaluationV2( data.assignedApplicationId, formId, submitData, - (data) => updateCallback(data, doRedirect), + (data) => updateCallback(data, afterUpdateCallback), errUpdateCallback ); } }, [data]); - const updateCallback = (data, doRedirect = '') => { + /** + * + * @param data {object} + * @param afterUpdateCallback {function} + */ + const updateCallback = (data, afterUpdateCallback = null) => { if (data.status === 'SUCCESS') { setData(getFormattedData(data.data)); if (toast.current) { @@ -361,8 +373,8 @@ const DomandaEditInstructorManager = () => { detail: data.message }); } - if (!isEmpty(doRedirect)) { - navigate(doRedirect); + if (afterUpdateCallback) { + afterUpdateCallback(); } } storeSet.main.unsetAsyncRequest(); @@ -388,7 +400,8 @@ const DomandaEditInstructorManager = () => { checklist: klona(data.checklist), files: klona(data.files), note: data.note, - motivation + motivation, + amountAccepted } setLoading(true); @@ -396,8 +409,8 @@ const DomandaEditInstructorManager = () => { ApplicationEvaluationService.updateEvaluation( data.assignedApplicationId, submitData, - updateStatusCallback, - errUpdateStatusCallback + approveRejectCallback, + errApproveRejectCallback ); } else if (data.evaluationVersion === 'V2') { const newFormValues = getTransformedSubmitData(); @@ -411,7 +424,8 @@ const DomandaEditInstructorManager = () => { )), amendmentDetails: klona(data.amendmentDetails), note: data.note, - motivation + motivation, + amountAccepted } setLoading(true); @@ -420,8 +434,8 @@ const DomandaEditInstructorManager = () => { data.assignedApplicationId, formId, submitData, - updateStatusCallback, - errUpdateStatusCallback + approveRejectCallback, + errApproveRejectCallback ); } } @@ -442,8 +456,8 @@ const DomandaEditInstructorManager = () => { ApplicationEvaluationService.updateEvaluation( data.assignedApplicationId, submitData, - updateStatusCallback, - errUpdateStatusCallback + approveRejectCallback, + errApproveRejectCallback ); } else if (data.evaluationVersion === 'V2') { const newFormValues = getTransformedSubmitData(); @@ -466,13 +480,13 @@ const DomandaEditInstructorManager = () => { data.assignedApplicationId, formId, submitData, - updateStatusCallback, - errUpdateStatusCallback + approveRejectCallback, + errApproveRejectCallback ); } } - const updateStatusCallback = (data) => { + const approveRejectCallback = (data) => { if (data.status === 'SUCCESS') { setData(getFormattedData(data.data)); if (toast.current) { @@ -486,7 +500,7 @@ const DomandaEditInstructorManager = () => { setLoading(false); } - const errUpdateStatusCallback = (data) => { + const errApproveRejectCallback = (data) => { if (toast.current && data.message) { toast.current.show({ severity: 'error', @@ -575,10 +589,10 @@ const DomandaEditInstructorManager = () => { set404FromErrorResponse(data); } - const shouldDisableField = (fieldName) => { - return !['EVALUATION'].includes(data.applicationStatus) + const shouldDisableField = useCallback((fieldName) => { + return !['EVALUATION', 'ADMISSIBLE'].includes(data.applicationStatus) || (['ADMISSIBLE'].includes(data.applicationStatus) && fieldName !== 'criteria') - } + }, [data.applicationStatus]); const headerCompleteDialog = () => { return 'approve' === operationType @@ -592,15 +606,15 @@ const DomandaEditInstructorManager = () => { setMotivation(''); } - const footerCompleteDialog = () => { + const footerCompleteDialog = useCallback(() => { return
- } + }, [amountAccepted]) const initiateApproving = () => { setOperationType('approve'); @@ -614,11 +628,12 @@ const DomandaEditInstructorManager = () => { } const doCheckNDG = () => { + doSaveDraft(doGetNDGRequest); + } + + const doGetNDGRequest = () => { storeSet.main.setAsyncRequest(); - doSaveDraft(); - setTimeout(() => { - AppointmentService.getNdg(id, getNdgCallback, errGetNdgCallback); - }, 100); + AppointmentService.getNdg(id, getNdgCallback, errGetNdgCallback); } const getNdgCallback = (data) => { @@ -733,9 +748,19 @@ const DomandaEditInstructorManager = () => { } const doMakeAdmisible = () => { - // TODO + doSaveDraft(null, { + applicationStatus: 'ADMISSIBLE' + }); } + const doPassTechnicalEvaluation = useCallback(() => { + if (isAdmissible) { + doSaveDraft(null, { + applicationStatus: 'TECHNICAL_EVALUATION' + }); + } + }, [isAdmissible]); + const evaluationBlockedForUser = (data = {}) => { const userData = storeGet.main.userData(); return isAsyncRequest || userData.id !== data.assignedUserId; @@ -807,9 +832,13 @@ const DomandaEditInstructorManager = () => { />