diff --git a/src/modules/rendicontazione/pages/PraticaRendicontazioneEdit.js b/src/modules/rendicontazione/pages/PraticaRendicontazioneEdit.js index 24b539b..d82d554 100644 --- a/src/modules/rendicontazione/pages/PraticaRendicontazioneEdit.js +++ b/src/modules/rendicontazione/pages/PraticaRendicontazioneEdit.js @@ -360,10 +360,33 @@ const PraticaRendicontazioneEdit = () => { toast.current?.show({ severity: 'warn', summary: __('Risposta troppo corta', 'gepafin') }); return; } + const fileToUpload = amendDialog.response_file; + const amendmentId = amendDialog.amendment.id; + RendicontazioneService.respondAmendmentBeneficiary( - practiceId, amendDialog.amendment.id, amendDialog.responseText, - (resp) => { setAmendDialog({ visible: false, amendment: null, responseText: '' }); - afterMutation(__('Risposta inviata all\'istruttore', 'gepafin'))(resp); }, + practiceId, amendmentId, amendDialog.responseText, + (resp) => { + if (fileToUpload) { + RendicontazioneService.uploadResponseDocument(practiceId, amendmentId, fileToUpload, + () => { + setAmendDialog({ visible: false, amendment: null, responseText: '', response_file: null }); + afterMutation(__('Risposta trasmessa con allegato', 'gepafin'))(resp); + }, + (err) => { + // testo salvato ma upload fallito — avviso e ricarico + setAmendDialog({ visible: false, amendment: null, responseText: '', response_file: null }); + toast.current?.show({ + severity: 'warn', + summary: __('Risposta salvata, upload allegato fallito', 'gepafin'), + detail: err?.message || '' + }); + afterMutation(null)(resp); + }); + } else { + setAmendDialog({ visible: false, amendment: null, responseText: '', response_file: null }); + afterMutation(__('Risposta inviata all\'istruttore', 'gepafin'))(resp); + } + }, onMutationError); }; @@ -465,8 +488,8 @@ const PraticaRendicontazioneEdit = () => { )} - {/* SOCCORSO ISTRUTTORIO (se presente) */} - {practice.amendments && practice.amendments.length > 0 && (<> + {/* SOCCORSO ISTRUTTORIO (se presente — esclude DRAFT, visibile solo quando PEC partita) */} + {practice.amendments && practice.amendments.filter(a => a.status !== 'DRAFT').length > 0 && (<>