diff --git a/src/pages/DomandaEditInstructorManager/index.js b/src/pages/DomandaEditInstructorManager/index.js
index 83313ac..4316457 100644
--- a/src/pages/DomandaEditInstructorManager/index.js
+++ b/src/pages/DomandaEditInstructorManager/index.js
@@ -88,7 +88,9 @@ const DomandaEditInstructorManager = () => {
const [isVisiblePreTecEvalDialog, setIsVisiblePreTecEvalDialog] = useState(false);
const [preTecEvalData, setPreTecEvalData] = useState({
amendmentDocumentType: '',
- amount: 0
+ amount: 0,
+ blueTongueField1: 0,
+ blueTongueField2: 0
});
const [allFilesRated, setAllFilesRated] = useState(false);
const [atLeastOneChecked, setAtLeastOneChecked] = useState(false);
@@ -851,6 +853,14 @@ const DomandaEditInstructorManager = () => {
setPreTecEvalData(newData);
}
+ const setBlueTongueFieldValue = (name, value) => {
+ const numVal = value ?? 0;
+ const updated = wrap(preTecEvalData).set(name, numVal).value();
+ const field1 = name === 'blueTongueField1' ? numVal : (updated.blueTongueField1 ?? 0);
+ const field2 = name === 'blueTongueField2' ? numVal : (updated.blueTongueField2 ?? 0);
+ setPreTecEvalData(wrap(updated).set('amount', field1 + field2).value());
+ };
+
const headerPreTecEvalDialog = () => {
return {__('Valutazione Tecnico-Finanziaria', 'gepafin')};
}
@@ -859,17 +869,28 @@ const DomandaEditInstructorManager = () => {
setIsVisiblePreTecEvalDialog(false);
setPreTecEvalData({
amendmentDocumentType: '',
- amount: 0
+ amount: 0,
+ blueTongueField1: 0,
+ blueTongueField2: 0
});
}
const footerPreTecEvalDialog = useCallback(() => {
const amount = pathOr(null, ['amount'], preTecEvalData);
+ const isBlueTongue = preTecEvalData.amendmentDocumentType === 'BLUE_TONGUE';
+ const field1 = pathOr(null, ['blueTongueField1'], preTecEvalData);
+ const field2 = pathOr(null, ['blueTongueField2'], preTecEvalData);
+ const isBlueTongueInvalid = isBlueTongue && (
+ isNil(field1) || isNaN(parseFloat(field1)) ||
+ isNil(field2) || isNaN(parseFloat(field2)) ||
+ parseFloat(field1) + parseFloat(field2) <= 0
+ );
+ const isAmountInvalid = isNil(amount) || isNaN(parseFloat(amount)) || parseFloat(amount) <= 0;
return
}, [preTecEvalData]);
@@ -946,7 +967,12 @@ const DomandaEditInstructorManager = () => {
const getAmendmentSpecialCallback = (data) => {
if (data.status === 'SUCCESS') {
- setData(getFormattedData(data.data));
+ setConnectedSoccorsoId(data.data.id);
+ setData(prev => ({
+ ...prev,
+ applicationStatus: 'AWAITING_TECHNICAL_EVALUATION',
+ status: 'SOCCORSO'
+ }));
if (toast.current && data.message) {
toast.current.show({
severity: 'success',
@@ -958,7 +984,9 @@ const DomandaEditInstructorManager = () => {
setIsVisiblePreTecEvalDialog(false);
setPreTecEvalData({
amendmentDocumentType: '',
- amount: 0
+ amount: 0,
+ blueTongueField1: 0,
+ blueTongueField2: 0
});
storeSet('unsetAsyncRequest');
}
@@ -974,7 +1002,9 @@ const DomandaEditInstructorManager = () => {
setIsVisiblePreTecEvalDialog(false);
setPreTecEvalData({
amendmentDocumentType: '',
- amount: 0
+ amount: 0,
+ blueTongueField1: 0,
+ blueTongueField2: 0
});
set404FromErrorResponse(data);
storeSet('unsetAsyncRequest');
@@ -2035,21 +2065,65 @@ const DomandaEditInstructorManager = () => {
footer={footerPreTecEvalDialog}
style={{ maxWidth: '600px', width: '100%' }}
onHide={hidePreTecEvalDialog}>
-
-
- setPreTecEvalFieldValue('amount', e.value)}/>
-
+ {preTecEvalData.amendmentDocumentType === 'BLUE_TONGUE'
+ ? <>
+
+
+ setBlueTongueFieldValue('blueTongueField1', e.value)}/>
+
+
+
+ setBlueTongueFieldValue('blueTongueField2', e.value)}/>
+
+
+
+
+
+ >
+ :
+
+ setPreTecEvalFieldValue('amount', e.value)}/>
+
+ }
{/*
diff --git a/src/pages/DomandaEditPreInstructor/index.js b/src/pages/DomandaEditPreInstructor/index.js
index 0468f07..008bca7 100644
--- a/src/pages/DomandaEditPreInstructor/index.js
+++ b/src/pages/DomandaEditPreInstructor/index.js
@@ -88,7 +88,9 @@ const DomandaEditPreInstructor = () => {
const [isVisiblePreTecEvalDialog, setIsVisiblePreTecEvalDialog] = useState(false);
const [preTecEvalData, setPreTecEvalData] = useState({
amendmentDocumentType: '',
- amount: 0
+ amount: 0,
+ blueTongueField1: 0,
+ blueTongueField2: 0
});
const [allFilesRated, setAllFilesRated] = useState(false);
const [atLeastOneChecked, setAtLeastOneChecked] = useState(false);
@@ -332,6 +334,14 @@ const DomandaEditPreInstructor = () => {
setPreTecEvalData(prev => ({ ...prev, amendmentDocumentType: 'ALTRE_GARANZIE' }));
setIsVisiblePreTecEvalDialog(true);
}
+ },
+ {
+ label: __('Blue Tongue', 'gepafin'),
+ icon: 'pi pi-pen-to-square',
+ command: () => {
+ setPreTecEvalData(prev => ({ ...prev, amendmentDocumentType: 'BLUE_TONGUE' }));
+ setIsVisiblePreTecEvalDialog(true);
+ }
}
]
@@ -851,6 +861,14 @@ const DomandaEditPreInstructor = () => {
setPreTecEvalData(newData);
}
+ const setBlueTongueFieldValue = (name, value) => {
+ const numVal = value ?? 0;
+ const updated = wrap(preTecEvalData).set(name, numVal).value();
+ const field1 = name === 'blueTongueField1' ? numVal : (updated.blueTongueField1 ?? 0);
+ const field2 = name === 'blueTongueField2' ? numVal : (updated.blueTongueField2 ?? 0);
+ setPreTecEvalData(wrap(updated).set('amount', field1 + field2).value());
+ };
+
const headerPreTecEvalDialog = () => {
return {__('Valutazione Tecnico-Finanziaria', 'gepafin')};
}
@@ -859,17 +877,28 @@ const DomandaEditPreInstructor = () => {
setIsVisiblePreTecEvalDialog(false);
setPreTecEvalData({
amendmentDocumentType: '',
- amount: 0
+ amount: 0,
+ blueTongueField1: 0,
+ blueTongueField2: 0
});
}
const footerPreTecEvalDialog = useCallback(() => {
const amount = pathOr(null, ['amount'], preTecEvalData);
+ const isBlueTongue = preTecEvalData.amendmentDocumentType === 'BLUE_TONGUE';
+ const field1 = pathOr(null, ['blueTongueField1'], preTecEvalData);
+ const field2 = pathOr(null, ['blueTongueField2'], preTecEvalData);
+ const isBlueTongueInvalid = isBlueTongue && (
+ isNil(field1) || isNaN(parseFloat(field1)) ||
+ isNil(field2) || isNaN(parseFloat(field2)) ||
+ parseFloat(field1) + parseFloat(field2) <= 0
+ );
+ const isAmountInvalid = isNil(amount) || isNaN(parseFloat(amount)) || parseFloat(amount) <= 0;
return
}, [preTecEvalData]);
@@ -946,7 +975,12 @@ const DomandaEditPreInstructor = () => {
const getAmendmentSpecialCallback = (data) => {
if (data.status === 'SUCCESS') {
- setData(getFormattedData(data.data));
+ setConnectedSoccorsoId(data.data.id);
+ setData(prev => ({
+ ...prev,
+ applicationStatus: 'AWAITING_TECHNICAL_EVALUATION',
+ status: 'SOCCORSO'
+ }));
if (toast.current && data.message) {
toast.current.show({
severity: 'success',
@@ -958,7 +992,9 @@ const DomandaEditPreInstructor = () => {
setIsVisiblePreTecEvalDialog(false);
setPreTecEvalData({
amendmentDocumentType: '',
- amount: 0
+ amount: 0,
+ blueTongueField1: 0,
+ blueTongueField2: 0
});
storeSet('unsetAsyncRequest');
}
@@ -974,7 +1010,9 @@ const DomandaEditPreInstructor = () => {
setIsVisiblePreTecEvalDialog(false);
setPreTecEvalData({
amendmentDocumentType: '',
- amount: 0
+ amount: 0,
+ blueTongueField1: 0,
+ blueTongueField2: 0
});
set404FromErrorResponse(data);
storeSet('unsetAsyncRequest');
@@ -1015,99 +1053,6 @@ const DomandaEditPreInstructor = () => {
setData(newData);
}, [data]);
- /*const openSendContractForm = () => {
- setIsVisibleContractForm(true);
- }
- const headerContractDialog = () => {
- return {__('Invia il contratto', 'gepafin')};
- }
- const hideContractDialog = () => {
- setIsVisibleContractForm(false);
- setContractFormData({
- subject: '',
- text: ''
- });
- }
- const footerContractDialog = useCallback(() => {
- let isDisabled = !contractFormData.subject || isEmpty(contractFormData.subject)
- || !contractFormData.text || isEmpty(contractFormData.text)
- || !contractFormData.files || isEmpty(contractFormData.files) || isAsyncRequest;
-
- return
-
-
- }, [contractFormData]);
- const updateContractFormData = (value, path) => {
- const newData = wrap(contractFormData).set(path.split('.'), value).value();
- setContractFormData(newData);
- };
- const doSendContract = useCallback(() => {
- if (
- contractFormData.subject && !isEmpty(contractFormData.subject)
- && contractFormData.text && !isEmpty(contractFormData.text)
- && contractFormData.files && !isEmpty(contractFormData.files)
- ) {
- const formDataToSend = new FormData();
- const contractFormDataTemp = {
- ...contractFormData
- };
- delete contractFormDataTemp.files;
- const jsonBlob = new Blob([JSON.stringify(contractFormDataTemp)], {
- type: 'application/json'
- });
- formDataToSend.append('applicationContractRequest', jsonBlob);
-
- if (contractFormData.files && contractFormData.files.length > 0) {
- contractFormData.files.forEach((file) => {
- formDataToSend.append('contractDocuments', file);
- });
- }
-
- storeSet('setAsyncRequest');
-
- ApplicationContractService.uploadApplicationContract(
- data.applicationId,
- formDataToSend,
- getUploadApplicationContractCallback,
- errGetUploadApplicationContractCallback
- );
- }
- }, [contractFormData]);
- const getUploadApplicationContractCallback = (data) => {
- if (data.status === 'SUCCESS') {
- setData((prev) => ({
- ...prev,
- applicationStatus: 'AWAITING_CONTRACT',
- contract: data.data
- }));
- if (toast.current && data.message) {
- toast.current.show({
- severity: 'success',
- summary: '',
- detail: data.message
- });
- }
- }
- hideContractDialog();
- storeSet('unsetAsyncRequest');
- }
- const errGetUploadApplicationContractCallback = (data) => {
- if (toast.current && data.message) {
- toast.current.show({
- severity: data.status === 'SUCCESS' ? 'info' : 'error',
- summary: '',
- detail: data.message
- });
- }
- hideContractDialog();
- set404FromErrorResponse(data);
- storeSet('unsetAsyncRequest');
- }*/
-
const actionBtns = () => {
return
{(['SOCCORSO', 'CLOSE', 'EVALUATION', 'NDG', 'APPOINTMENT', 'ADMISSIBLE',
@@ -2034,122 +1979,66 @@ const DomandaEditPreInstructor = () => {
footer={footerPreTecEvalDialog}
style={{ maxWidth: '600px', width: '100%' }}
onHide={hidePreTecEvalDialog}>
-
-
- setPreTecEvalFieldValue('amount', e.value)}/>
-
-
-
- {/*
- This functionality has been moved
- */}
- {/*