BFLOWS 59c254a9c3 feat(docs-picker): dedup per categoria + distinzione admin/azienda + riga doc 3-stati
Dopo test browser ampio con Carlo sono emersi 3 cose importanti:

1. LOGICA: il BE Spring Gepafin non implementa sostituzione automatica
   dei documenti stessa categoria — uploadFileForCompany fa saveAll puro,
   nessun softdelete del precedente, nessun UNIQUE constraint su
   (company_id, document_category_id). In sandbox risultavano 2 DURC
   VALID attivi simultaneamente. Mitigazione picker: dedup client-side
   per categoria, preferenza VALID > DUE, a parita id desc.

2. CATEGORIE: il BE ha 3 macro-tipi (CompanyDocumentTypeEnum):
   COMPANY_DOCUMENT (azienda — DURC/Visura/Bilancio),
   PERSONAL_DOCUMENT (amministratore/legale rappresentante — CI/CF/antiric),
   APPLICATION_DOCUMENT (legato a specifica application).
   Carlo aveva intuito giusto: admin vs azienda e la divisione personal vs
   company. Il picker ora fa 2 chiamate al BE (default retituisce
   COMPANY+APPLICATION, poi filter esplicito documentType=PERSONAL_DOCUMENT)
   e unisce i risultati con dedup.

3. UX RIGA DOCUMENTO: il layout che avevo fatto (FileUploadCell + Tag
   esterno + icon button) rompeva il flex causa nesting, tag e refresh
   andavano a capo. Separati 3 casi semantici puliti:
   - CASO A repository: riga custom con [icona pdf] filename [tag stato]
     [button Cambia] [button Rimuovi] — tutto orizzontale
   - CASO B upload PC: FileUploadCell standard (preview/download/refresh/delete)
   - CASO C vuoto: 2 pulsanti Carica dal PC / Scegli dal repository

CAMBIAMENTI CompanyDocumentPicker.js (+197 -52):
- dedupByCategory(docs) con ranking STATUS+id
- doppia chiamata getCompanyDocuments (default + PERSONAL)
- nuova colonna Origine con badge colorato (blu=Azienda, viola=Admin)
- 3 pulsanti manuali per tab Origine (SelectButton PrimeReact aveva
  issues styling col tema Gepafin: label bianche invisibili sui non-selected)
- ORIGIN_CFG con 3 varianti per COMPANY/PERSONAL/APPLICATION

CAMBIAMENTI PraticaRendicontazioneEdit.js (+55 -17):
- riga doc riscritta con 3 branch distinti per stato
- pulsanti outlined con label esplicite 'Cambia' / 'Rimuovi' (icon-only
  text button avevano scopribilita bassa)
- handler Rimuovi collegato a deleteEntityFile esistente + toast feedback

Test browser verificato con Carlo: dedup ok (2 DURC in DB → 1 nel
picker), tabs Azienda/Amministratore leggibili, label pulsanti chiare,
flusso Cambia/Rimuovi funziona.
2026-04-20 20:30:11 +02:00
2024-10-31 10:08:59 +01:00
2024-08-09 10:41:54 +02:00
2026-03-23 14:57:01 +01:00
2026-01-21 11:01:11 +01:00
2026-03-27 12:14:28 +01:00
2026-03-27 12:14:28 +01:00
2024-08-09 08:51:20 +02:00
2026-03-27 12:48:05 +01:00
:
2024-12-23 11:37:10 +01:00

GEPAFIN-FE

Gepafin Front End

Commands

npm run start - start development server npm run build:dev - make build based on 'dev' env variables npm run build:prod - make build based on 'prod' env variables

HUB IDs

p4lk3bcx1RStqTaIVVbXs - gepafin t7jh5wfg9QXylNaTZkPoE - sviluppumbria

Description
BFLOWS — bflows-bandi-fe
Readme 3.7 MiB
Languages
JavaScript 85.9%
SCSS 14.1%