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 = () => {
/>