59c254a9c3e4df87272e171c4c9ab825810a71a3
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.
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
Languages
JavaScript
85.9%
SCSS
14.1%