feat(rendicontazione): lato beneficiario - lista pratiche + compilazione + submit

- Nuova pagina RendicontazioniMie: dashboard beneficiario con pratiche esistenti
  + applications CONTRACT_SIGNED ready_to_start in tabella unificata
- Nuova pagina PraticaRendicontazioneEdit: form compilazione completo
  + riepilogo finanziario live (erogato, totale, cap, remissione spettante)
  + requisiti per invio con semafori live (gate check refresh on mount)
  + sezione regime IVA con update inline
  + fatture per categoria con dialog add + tabella + delete (per B1/B2/B3)
  + dipendenti ULA con dialog add (CF, contratto, FTE, periodo, allegato)
  + documenti richiesti con upload simulato (prompt nome file)
  + submit con confermazione, disabilitato finche' gate non passa
- Nuova pagina DevSwitchUser: impersonate sandbox-only per superadmin
- Voce sidebar "Le mie rendicontazioni" per ROLE_BENEFICIARY
- Voce sidebar "Dev: cambia utente" per ROLE_SUPER_ADMIN
- Service esteso con 12 metodi pratiche + impersonate
This commit is contained in:
BFLOWS Sandbox
2026-04-18 09:50:53 +02:00
parent 8888e0326d
commit 9c483ade34
6 changed files with 983 additions and 0 deletions

View File

@@ -34,6 +34,13 @@ const AppSidebar = () => {
id: 21,
enable: intersection(permissions, ['MANAGE_TENDERS']).length
},
{
label: __('Dev: cambia utente', 'gepafin'),
icon: 'pi pi-user-edit',
href: '/dev-switch-user',
id: 99,
enable: intersection(permissions, ['MANAGE_USERS']).length
},
{
label: __('Domande in lavorazione', 'gepafin'),
icon: 'pi pi-file',
@@ -90,6 +97,13 @@ const AppSidebar = () => {
id: 10,
enable: intersection(permissions, ['APPLY_CALLS', 'APPLY_CONFIDI_CALLS']).length
},
{
label: __('Le mie rendicontazioni', 'gepafin'),
icon: 'pi pi-receipt',
href: '/rendicontazioni',
id: 11,
enable: intersection(permissions, ['APPLY_CALLS', 'APPLY_CONFIDI_CALLS']).length
},
{
label: __('Archivio domande', 'gepafin'),
icon: 'pi pi-briefcase',