Commit Graph

788 Commits

Author SHA1 Message Date
BFLOWS Sandbox
2268fd98f5 feat(istruttoria UI): tabelle inline editabili, toggle check/reject, no-reload, allineamento ULA
Refactor completo della UI istruttore su pattern Excel-like dichiarato/verificato.

Editor schema bando (BandoRendicontazioneSchemaEdit):
- Nuovo dropdown 'Base di calcolo ammissibile' (imponibile/totale/regime-dependent)
- Nuovo Calendar 'Inizio periodo' accanto al period_start_rule esistente

IstruttoriaPratica — refactor totale:
- FATTURE: 1 sola DataTable con rowGroupMode='subheader' raggruppato per B1/B2/B3,
  header colorato per categoria con totali dichiarato/ammesso live
- Colonne inline editabili: 'Imponibile ammesso' con InputNumber + save onBlur.
  Stato auto-calcolato: = dichiarato -> AMMESSA; 0 < x < dichiarato -> PARZIALE;
  x == 0 -> RESPINTA
- Label dinamiche 'Imponibile' vs 'Totale' in base a use_taxable_only
- Riga espandibile (pi-chevron) con textarea note istruttore + dettaglio IVA/totale
- Toggle icon ✓: se AMMESSA -> PENDING; altrimenti -> AMMESSA
- Toggle icon ✗: se RESPINTA -> PENDING; altrimenti -> RESPINTA
- Tooltip dinamici 'Conferma' / 'Annulla conferma'
- Badge rosso automatico 'Data fuori periodo' su invoice_in_period=false

ULA: stesso pattern inline (FTE dichiarato vs FTE ammesso) con header-box
manuale SOPRA la DataTable (non rowGroupMode, un solo gruppo) e forzatura
tableStyle width:100% per allineamento perfetto con fatture.

Documenti: lista con toggle ✓ VALIDO ↔ PENDING, ✗ NON_VALIDO/SCADUTO via dialog.

Performance critica — NO FULL RELOAD su verify:
- saveInvoiceInline/saveUlaInline/quickVerifyDoc/saveDocNote ora fanno
  setBundle() con update locale della singola riga
- refreshGateOnly() ricarica solo il gate_check (totali) in background
- Eliminato il load() completo che faceva sfarfallare la pagina

Banner arancione automatico quando status=SUBMITTED: 'Pratica non presa in
carico' con CTA 'Prendi in carico'.

Bugfix:
- Rimossi import inutilizzati (InputText, isNil)
- Aggiunti import DataTable, Column

UX testata su NAPOLI SAS: 5 fatture 3 categorie, 2 ULA, 4 docs.
Totali si aggiornano live, toggle funzionanti, nessuno sfarfallio.
2026-04-18 12:27:10 +02:00
BFLOWS Sandbox
61cdfbd06b feat(istruttoria UI): verifica riga-per-riga con thumbs up/down/occhio/download/rettifica
Replica il workflow del foglio Excel originale dell'istruttoria Gepafin.
Pattern preso da DomandaEditPreInstructor/components/ListOfFiles.

Pagina IstruttoriaPratica riscritta (858 righe):

RIEPILOGO FINANZIARIO esteso:
- Totale dichiarato (dal beneficiario)
- Totale verificato (somma AMMESSA + PARZIALE istruttore)
- Cap remissione (min(50% erogato, 12500))
- Remissione da riconoscere (da verificato)
- Residuo da restituire (erogato - remissione)

VERIFICA FATTURE per categoria con appPageSection__list:
- Ogni fattura come row con numero, fornitore, date, descrizione, Tag stato
- Tag rosso 'Date fuori periodo' se invoice_in_period=false O payment_in_period=false
- Riga dichiarato + riga verificato (se presente)
- Note rettifica evidenziate con barra arancione
- 5 pulsanti icona: eye (anteprima PDF) + download + pencil (rettifica con dialog)
  + thumbs-up AMMESSA + thumbs-down RESPINTA
- Thumbs up/down = ammissione/rifiuto rapido senza rettifica
- Pencil = dialog con dichiarato readonly + verificato editabile + note obbligatorie -> PARZIALE

VERIFICA ULA:
- Stesso pattern: eye/download/pencil/up/down
- Rettifica FTE (0-1) con note

VERIFICA DOCUMENTI:
- eye/download/thumbs-up VALIDO
- clock SCADUTO (apre dialog con motivazione)
- thumbs-down NON_VALIDO (apre dialog con motivazione)

VERBALE ISTRUTTORIA finale (visibile in UNDER_REVIEW/AWAITING_AMENDMENT):
- 3 checkbox: documentazione completa, ULA>1, erogato in range
- Textarea note sintetiche con save onBlur

Approva disabilitato finché tutte le righe hanno status != PENDING.
Anteprima PDF: dialog con placeholder sandbox (file reale sarà in prod).
Download: toast stub (in prod scarica dal storage).
2026-04-18 11:03:15 +02:00
BFLOWS Sandbox
115f31bdef feat(rendicontazione): lato istruttore - queue + review + soccorso istruttorio
Backend (rendicontazione-api):
- 4 nuove colonne su remission_practice: assigned_instructor_id, reviewed_at,
  reviewed_by, rejection_reason, approved_remission
- Nuova tabella remission_amendment_request (id, practice_id, request_text,
  scope jsonb, deadline, status AWAITING/RESPONSE_RECEIVED/CLOSED/EXPIRED,
  response_text, audit cols)
- Router instructor.py con 8 endpoint:
  GET /instructor/queue (SUBMITTED pool + UNDER_REVIEW/AWAITING_AMENDMENT assigned,
  o tutto se manager/superadmin)
  GET /instructor/{id} (practice + gate_check + amendments)
  POST /instructor/{id}/claim (SUBMITTED -> UNDER_REVIEW)
  POST /instructor/{id}/approve (approved_remission opz, default = remission_due calcolato)
  POST /instructor/{id}/reject (rejection_reason min 10 char)
  POST /instructor/{id}/amendment (crea soccorso: request_text + deadline)
  POST /instructor/{id}/amendment/{aid}/close (chiude soccorso, pratica torna UNDER_REVIEW)
  POST /instructor/{id}/amendment/{aid}/respond-beneficiary (benef risponde)
- GET /{id} ora ritorna anche amendments (per beneficiario)

Frontend:
- Pagina IstruttoriaQueue (125 righe): coda pratiche con stato, istruttore
  assegnato, erogato, remission_due calcolata, azioni contestuali
- Pagina IstruttoriaPratica (483 righe): dettaglio pratica readonly per istruttore,
  riepilogo esteso, amendments panel con chiudi, gate check, fatture/ULA/docs,
  3 Dialog per approva/respingi/soccorso
- PraticaRendicontazioneEdit esteso con sezione 'Richieste di soccorso istruttorio'
  visibile al beneficiario + Dialog rispondi con request_text dell'istruttore
- Sidebar: voce 'Istruttoria rendicontazioni' per EVALUATE_APPLICATIONS
  (pre_instructor + instructor_manager)
- Routes /istruttoria e /istruttoria/:id con gate sui tre ruoli

Test end-to-end OK: benef crea+submit, istruttore claim+amendment, benef risponde,
istruttore chiude+approva -> APPROVED remission 8500 EUR su NAPOLI SAS (erogato 17000).

Utenti sandbox creati:
- istruttore@sandbox.local / istruttore123 (ROLE_PRE_INSTRUCTOR)
- manager@sandbox.local / manager123 (ROLE_INSTRUCTOR_MANAGER)
2026-04-18 10:15:22 +02:00
BFLOWS Sandbox
9c483ade34 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
2026-04-18 09:50:53 +02:00
BFLOWS Sandbox
8888e0326d feat(rendicontazione): editor schema con form strutturato + dashboard + integrazione microservizio
- Aggiunta voce 'Rendicontazione' in AppSidebar (id 21, icon pi-receipt)
- Nuova pagina RendicontazioneHome: dashboard con tabella bandi + stato schema
  (Non creato / Bozza / Pubblicato) + azioni Crea/Modifica per ciascuno
- Nuova pagina BandoRendicontazioneSchemaEdit: form strutturato 6 sezioni
  (importi/periodo, IVA, categorie, ULA, documenti, regole gate) con
  salva bozza + pubblica, read-only dopo pubblicazione
- Nuovo service modules/rendicontazione/service/rendicontazioneService.js
  (client fetch verso rendicontazione-api, JWT dallo store Zustand)
- 2 nuove route /rendicontazione e /bandi/:id/rendicontazione-schema
  (gate su ROLE_SUPER_ADMIN)
- Bottone 'Schema rendicontazione' aggiunto in BandoEdit come shortcut
- Patch NotificationsSidebar per disabilitare WSS se REACT_APP_ENABLE_WEBSOCKET=0
  (evita errori CORS in sandbox senza RabbitMQ)

UI coerente col codebase: appPage/appPageSection/appForm/appForm__cols/
fieldsRepeater, p-fluid per width input, h1+p in header con border-left
2026-04-18 09:37:08 +02:00
Vitalii Kiiko
563b6190ab - updated prod env variables; 2026-04-14 11:57:05 +02:00
Vitalii Kiiko
3a023df7ea - removed technical evaluation status from change status tool; 2026-04-14 11:16:02 +02:00
Vitalii Kiiko
9d9c8ad723 - form field label setting is reuqired when at least one validation setting is defined for a form field; 2026-04-13 15:31:31 +02:00
Vitalii Kiiko
dae8fea9f7 - fixed freezing form; 2026-04-13 12:30:28 +02:00
Vitalii Kiiko
ba16a67776 Merge branch 'master' into develop 2026-04-10 16:48:17 +02:00
Vitalii Kiiko
84d87d3e33 - #6423 - Show applications APPROVED, REJECTED in table 'change status'; 2026-04-10 16:47:56 +02:00
Vitalii Kiiko
9b630ff9be Merge branch 'master' into develop 2026-04-09 15:04:06 +02:00
Vitalii Kiiko
eadbb913d5 - removed button for sviluppumria; 2026-04-09 14:57:09 +02:00
Vitalii Kiiko
19dba4202d - re enabled spreadsheet field; 2026-04-09 10:28:26 +02:00
Vitalii Kiiko
b10004a1fe - updated copies and filtered out spreadsheet for reg forms; 2026-04-09 09:45:56 +02:00
Vitalii Kiiko
84d24bfb07 - fixed min/max decimals setting; 2026-04-08 16:13:55 +02:00
Vitalii Kiiko
3ea1dbe25e - udpated spreadsheet form field functionality; 2026-04-08 16:08:29 +02:00
Vitalii Kiiko
c52d0c8fd9 - added import individual sheets;
- fixed bugs reated to init of univerjs;
2026-04-08 10:57:16 +02:00
Vitalii Kiiko
2c4886323f - enabled tables for spreadsheet; 2026-04-07 14:49:35 +02:00
Vitalii Kiiko
4cbd28d58d - fixed blue cell color after removing dynamic tag; 2026-04-07 10:50:52 +02:00
Vitalii Kiiko
2804dd897a - fixed dynamic tags aggregation #6342; 2026-04-02 10:17:49 +02:00
Vitalii Kiiko
0b432c6cdf - tmp commented out email templates manager; 2026-04-01 16:30:27 +02:00
Vitalii Kiiko
69e869cce1 - fixed issue with saving spreadsheet #6341; 2026-04-01 16:29:54 +02:00
Vitalii Kiiko
0e258febe2 - added UI for management of email templates; 2026-04-01 11:06:22 +02:00
Vitalii Kiiko
0b8be811f5 Merge branch 'master' into develop 2026-03-30 15:39:48 +02:00
Vitalii Kiiko
1769cd4f49 - fixed displaying form builder fields; 2026-03-30 15:39:22 +02:00
Vitalii Kiiko
f17b0edfa9 - implemented uplaod company docs; 2026-03-30 14:58:48 +02:00
Vitalii Kiiko
41376794ad - updated company file import to evaluation; 2026-03-27 17:01:17 +01:00
Vitalii Kiiko
58a676c425 - removed console log; 2026-03-27 14:28:51 +01:00
Vitalii Kiiko
8b510dfa65 Merge branch 'develop' 2026-03-27 14:28:15 +01:00
Vitalii Kiiko
496da1c41c - updated build config; 2026-03-27 12:48:05 +01:00
Vitalii Kiiko
2e53bf4536 - updated univerjs import; 2026-03-27 12:32:48 +01:00
Vitalii Kiiko
f1c3cac97b - split build int ophases; 2026-03-27 12:14:28 +01:00
Vitalii Kiiko
f3b290dc1a - updated build configs; 2026-03-27 12:09:25 +01:00
Vitalii Kiiko
d043356411 - updated build config; 2026-03-27 11:57:27 +01:00
Vitalii Kiiko
8e968e19db - updated node heapsize for build; 2026-03-27 11:42:47 +01:00
Vitalii Kiiko
3aa909b688 - fixed error in spreadsheet form element;
- added UI for company documents in evaluation;
2026-03-27 10:26:56 +01:00
Vitalii Kiiko
f7c58b6d1b - added company docs; 2026-03-26 16:55:10 +01:00
Vitalii Kiiko
8f8f565117 - fixed displaying dynamic tags; 2026-03-26 14:27:38 +01:00
Vitalii Kiiko
b05c3b9379 - updated texts; 2026-03-26 11:23:47 +01:00
Vitalii Kiiko
40430ef94d - fixed error in excel field; 2026-03-26 10:27:27 +01:00
Vitalii Kiiko
16eb0b3f78 - updated login flow; 2026-03-26 09:44:59 +01:00
Vitalii Kiiko
f809d224e1 Merge branch 'spreadsheet' into develop 2026-03-25 14:23:52 +01:00
Vitalii Kiiko
cc847b5e48 - implemented root manager functionality; 2026-03-25 14:21:31 +01:00
Vitalii Kiiko
61e03f304b - added spreadsheet form element; 2026-03-25 12:28:34 +01:00
Vitalii Kiiko
6eea331530 - added new root manage UIs; 2026-03-24 16:51:14 +01:00
Vitalii Kiiko
ddd036b070 - added CSV download fo instructor manager; 2026-03-24 11:57:38 +01:00
Vitalii Kiiko
6fea625d0b - added 4 root admin components; 2026-03-23 14:57:01 +01:00
Vitalii Kiiko
431f628217 - added v1 of admin page; 2026-03-20 16:57:16 +01:00
Vitalii Kiiko
d36f73a068 - updated; 2026-03-18 16:58:14 +01:00