first commit

This commit is contained in:
fabio
2026-02-18 21:04:57 +01:00
parent 3f675be1c3
commit ce1fb7b23f
141 changed files with 24621 additions and 2 deletions

BIN
app/docs/.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -0,0 +1,72 @@
# Manuale utente (BRUNO Frontend)
## Panoramica
Questa applicazione guida lutente nella compilazione di un questionario a step (passi). Ogni step raccoglie dati e, dove previsto, permette di allegare documenti.
## Navigazione
- Nel menu laterale sinistro trovi la lista degli step.
- In alto a destra (negli step che lo prevedono) trovi i pulsanti **Indietro** / **Avanti** per muoverti nel flusso.
- Alcuni step non hanno ancora una schermata dedicata: in quel caso viene mostrato un contenuto “placeholder”.
## Validazione dei campi
- I campi obbligatori vengono validati tramite il pulsante **Avanti**.
- Se un campo è obbligatorio e mancante, viene mostrato un messaggio di errore.
## Allegati (componenti “CommentAttachment”)
In alcune sezioni puoi inserire:
- un campo **Commenti**
- una lista di **Allegati**
Funzionalità disponibili:
- Selezione file tramite pulsante (picker).
- Upload con **barra di progresso**.
- Possibilità di **annullare** lupload in corso.
- Lista degli allegati già caricati.
- Eliminazione di un allegato con **conferma**.
Formati file ammessi:
- `.pdf`, `.docx`, `.txt`, `.md`
Nota: gli allegati vengono associati a una “sessione” (lo step/contesto in cui stai caricando) e a un identificativo utente interno.
## Step disponibili
### 1) Benvenuto
- Mostra unintroduzione e consente di proseguire allo step successivo.
### 2) Dati contribuente e dichiarazione precedente
- Toggle: **Preparata da noi?**
- Sezione **Dichiarazione precedente** (allegati + commenti) quando disponibile.
- Dati anagrafici del contribuente:
- Nome, Cognome, Data di nascita
- Indirizzo (tramite editor indirizzo)
### 3) Stato civile
- Selezione stato civile.
- Campi relativi al coniuge/partner quando applicabili.
- Gestione indirizzo del coniuge/partner tramite editor indirizzo.
### 4) Figli
- Toggle: **Hai figli?**
- Gestione lista figli (massimo 5):
- Aggiunta/modifica tramite finestra (dialog)
- Eliminazione dalla lista
- Dati figlio:
- Nome, Cognome, Data di nascita
- Toggle **Stesso nucleo familiare**
- Se NON nello stesso nucleo: possibilità di indicare alimenti e inserire un indirizzo dedicato
- Campo **Scuola**
- Toggle **Spese di cura**: se attivo, si sblocca la sezione allegati/commenti per le spese di cura
- Pulsante rapido (icona) per **copiare il cognome** dal contribuente nel dialog del figlio.
- Se raggiungi 5 figli, compare una nota testuale per indicare “più di cinque figli”.
## Salvataggio dati
I dati inseriti vengono mantenuti localmente (persistenza) per evitare perdite durante la compilazione.
## Risoluzione problemi
- **Non riesco a caricare allegati**: verifica che il server di upload sia attivo e raggiungibile (es. ambiente locale). Se lupload resta bloccato, annulla e riprova.
- **Messaggi di validazione**: completa i campi richiesti e riprova con **Avanti**.
---
Se vuoi, posso anche generare una versione “stampabile” (più sintetica, 12 pagine) oppure una versione “operatore” con esempi di documenti da allegare per ogni step.

BIN
app/docs/Manuale_Utente.pdf Normal file

Binary file not shown.

View File

@@ -0,0 +1,43 @@
# Report — 2026-01-11
Breve riepilogo delle modifiche svolte ieri:
- Dati e lookup
- Importato dataset CAP Svizzera in `src/data/countryCodes.ts` e esposti helper: `findPostalCodes`, `findPostalCodeDetails`, `ALL_CH_POSTAL_CODES`.
- Componenti e UX indirizzi
- Ripristinato e rifattorizzato `src/components/AddressModal.vue` (SFC pulita).
- Aggiunta prop `allowForeign?: boolean` (default true); quando `allowForeign === false` il toggle `foreign` è nascosto e forzato a `false`.
- ZIP input sanitizzato (solo cifre, maxlength 4); con 4 cifre per CAP CH la città viene autocompletata.
- `ChildrenStep` ora salva oggetti `address?: Address | null` (non più la stringa composta); `formatAddressForString` usato solo per rendering.
- `TaxpayerStep` e `MaritalStep` integrati con `AddressModal` (in `TaxpayerStep` `:allowForeign="false"`).
- Store e tipi
- `src/types/schema.ts`: estesi `MaritalData` con `spousePreviousDivorces` e `spouseAlimentiVersati`.
- `src/stores/taxstore.ts`: aggiornato `defaultMarital` per includere i nuovi campi a `false`.
- `src/stores/children.ts`: persistenza aggiornata per `alimentiVersati` (se applicabile).
- UI e layout
- Spostati i pulsanti `Prev`/`Next` sulla stessa riga del titolo in tutti gli step (`src/components/steps/*`): titolo in `div.col`, bottoni in `div.col-auto` dentro `div.row`.
- Aggiunti `q-separator` dopo i titoli.
- In `ChildrenStep` spostato anche il layout del modal (titolo + bottoni coerenti).
- Campi e regole specifiche
- `ChildrenStep` modal: aggiunta toggle `alimentiVersati` (visibile solo se `sameHousehold === false`), e messaggio di validazione `validation.insertAddress` se manca l'indirizzo.
- `MaritalStep`: sostituiti campi `spouse.address/zip/city` con `AddressModal`; aggiunti toggle `spouse.previousDivorces` e `spouse.alimentiVersati` e persistenza nel payload.
- i18n
- Aggiunte traduzioni: `enum.maritalStatus.SEPARATED`, `marital.previousDivorces`, `marital.spouse.previousDivorces`, e `validation.insertAddress` in `it-IT`, `en-US`, `de-DE`, `fr-FR`.
- Pulizia e correzioni
- Risolti errori TypeScript/ESLint derivanti da SFC corrotta; rimossi helper inutilizzati e sistemati cast e tipi.
- Linter e `vue-tsc` eseguiti più volte; stato attuale: lint e type-check OK (solo avviso deprecazione `.eslintignore`).
Note e prossimi passi suggeriti
- Valutare se persistere l'`Address` strutturato anche per il `Taxpayer` (ora usa campi piatti `address/zip/city`).
- Commit e review dei cambi (ci sono molte modifiche locali non ancora committate?).
- QA manuale in browser per verificare: modal indirizzo, autocompletamento CAP CH, visualizzazione dei messaggi di validazione e comportamento dei toggle `allowForeign`.
---
Generato automaticamente dal worklog in repo. Se vuoi, aggiorno anche il `CHANGELOG.md` o aggiungo il report in un formato diverso.