netgescon-master/docs/02-architettura-laravel/specifiche/gestione DATABASE E FUNZIONALITA.txt
Pikappa2 480e7eafbd 🎯 NETGESCON - Setup iniziale repository completo
📋 Commit iniziale con:
-  Documentazione unificata in docs/
-  Codice Laravel in netgescon-laravel/
-  Script automazione in scripts/
-  Configurazione sync rsync
-  Struttura organizzata e pulita

🔄 Versione: 2025.07.19-1644
🎯 Sistema pronto per Git distribuito
2025-07-19 16:44:47 +02:00

120 lines
6.9 KiB
Plaintext

GESTIONE DATABASE E FUNZIONALITA'
Documento per il Team di Sviluppo: Schema Database e Roadmap Funzionalità
1. Schema Database Attuale (Verificato e Consolidato)
Di seguito la struttura delle tabelle principali come risulta dai modelli, dalle migration e dai seeder.
Tabella: amministratori Scopo: Contiene i dati anagrafici e professionali degli amministratori di studio.
Nome Campo Tipo Dati Chiave/Indice Note
id_amministratore BIGINT PK Chiave primaria auto-incrementante.
user_id BIGINT FK (users) Collega all'utente Laravel.
nome VARCHAR(255) Nome di battesimo dell'amministratore.
cognome VARCHAR(255) Cognome dell'amministratore.
denominazione_studio VARCHAR(255) Nome dello studio di amministrazione.
partita_iva VARCHAR(20) UNIQUE Partita IVA dello studio.
codice_fiscale_studio VARCHAR(20) Codice Fiscale dello studio.
...altri campi studio VARCHAR Indirizzo, CAP, città, email, pec, etc.
created_at, updated_at TIMESTAMP Timestamps standard di Laravel.
Tabella: stabili Scopo: Anagrafica principale degli immobili gestiti.
Nome Campo Tipo Dati Chiave/Indice Note
id_stabile BIGINT PK Chiave primaria.
amministratore_id BIGINT FK (amministratori) Chi gestisce lo stabile.
denominazione VARCHAR(255) Nome dello stabile (es. "Condominio Le Rose").
...altri campi anagrafici VARCHAR Indirizzo, CAP, città, provincia, CF.
rate_ordinarie_mesi JSON Array di mesi (es. [1, 4, 7, 10]).
rate_riscaldamento_mesi JSON Array di mesi per il riscaldamento.
descrizione_rate TEXT Descrizione che apparirà sulle rate.
stato ENUM 'attivo', 'inattivo'.
created_at, updated_at, deleted_at TIMESTAMP Timestamps con Soft Deletes.
Tabella: unita_immobiliari Scopo: Dettaglio delle singole unità all'interno di uno stabile.
Nome Campo Tipo Dati Chiave/Indice Note
id_unita BIGINT PK Chiave primaria.
id_stabile BIGINT FK (stabili) A quale stabile appartiene.
fabbricato VARCHAR(255) Es. "Palazzina A", "Corpo Centrale".
scala VARCHAR(255) Es. "A", "B".
interno VARCHAR(255) Es. "5", "12/B".
piano VARCHAR(255) Es. "1", "Attico".
...altri campi catastali DECIMAL, VARCHAR Superficie, vani, categoria, etc.
created_at, updated_at, deleted_at TIMESTAMP Timestamps con Soft Deletes.
Tabella: soggetti Scopo: Anagrafica unica per tutte le persone fisiche e giuridiche (proprietari, inquilini, usufruttuari).
Nome Campo Tipo Dati Chiave/Indice Note
id_soggetto BIGINT PK Chiave primaria.
nome, cognome VARCHAR(255) Per persone fisiche.
ragione_sociale VARCHAR(255) Per persone giuridiche.
...altri campi VARCHAR UNIQUE (email) CF, P.IVA, email, telefono, indirizzo...
tipo VARCHAR(255) Campo descrittivo (es. 'proprietario').
created_at, updated_at TIMESTAMP Timestamps standard.
Tabella: proprieta (Tabella Pivot) Scopo: Collega un Soggetto a una UnitaImmobiliare con uno specifico diritto.
Nome Campo Tipo Dati Chiave/Indice Note
id BIGINT PK Chiave primaria.
unita_immobiliare_id BIGINT FK (unita_immobiliari) L'unità immobiliare.
soggetto_id BIGINT FK (soggetti) La persona/azienda.
tipo_diritto ENUM 'proprietario', 'inquilino', 'usufruttuario'...
percentuale_possesso DECIMAL(5,2) Es. 100.00, 50.00.
data_inizio, data_fine DATE Validità del diritto (es. contratto affitto).
created_at, updated_at TIMESTAMP Timestamps standard.
Tabelle Contabilità (Struttura Base)
gestioni: Anno di gestione (es. 2024 Ordinaria).
preventivi: Preventivo approvato per una gestione.
voci_preventivo: Singole voci di spesa del preventivo.
piano_conti_condominio: Piano dei conti specifico per uno stabile.
tabelle_millesimali: Anagrafica delle tabelle (es. "Tabella A - Proprietà").
dettagli_tabelle_millesimali: Valori millesimali per ogni unità in una tabella.
2. Proposte di Miglioramento e Aggiunta Campi/Tabelle
Per rendere l'applicazione più completa, propongo di aggiungere le seguenti tabelle e campi.
NUOVA Tabella: documenti Scopo: Gestire l'upload di qualsiasi file (fatture, verbali, contratti) e collegarlo a diverse entità.
Nome Campo Tipo Dati Chiave/Indice Note
id BIGINT PK Chiave primaria.
documentable_id BIGINT INDEX ID del modello a cui è collegato (es. id_stabile, id_fornitore).
documentable_type VARCHAR(255) INDEX Classe del modello (es. App\Models\Stabile). Relazione Polimorfica.
nome_file VARCHAR(255) Nome originale del file caricato.
path_file VARCHAR(255) Percorso del file nello storage.
tipo_documento VARCHAR(255) Categoria del documento (es. 'Fattura', 'Verbale', 'Contratto').
descrizione TEXT Note opzionali sul documento.
created_at, updated_at TIMESTAMP Timestamps standard.
NUOVA Tabella: rate Scopo: Tracciare ogni singola rata generata per ogni unità immobiliare.
Nome Campo Tipo Dati Chiave/Indice Note
id BIGINT PK Chiave primaria.
id_gestione BIGINT FK (gestioni) A quale gestione si riferisce.
unita_immobiliare_id BIGINT FK (unita_immobiliari) A quale unità è addebitata.
descrizione VARCHAR(255) Es. "Rata 1 di 4 - Ordinarie", "Acconto Riscaldamento".
importo DECIMAL(10,2) Importo della rata.
data_scadenza DATE Data di scadenza del pagamento.
data_pagamento DATE NULLABLE Data in cui è stata pagata.
stato ENUM 'da_pagare', 'pagata', 'insoluta'.
created_at, updated_at TIMESTAMP Timestamps standard.
Campi da Aggiungere:
Tabella fornitori: Aggiungere iban (VARCHAR, nullable, unique) per i pagamenti.
Tabella stabili: Aggiungere iban_conto_corrente (VARCHAR, nullable) per il conto principale dello stabile.
3. Roadmap Funzionalità e Dashboard
Con questa struttura dati, possiamo definire le prossime funzionalità da implementare.
Dashboard Amministratore (admin.dashboard) Deve diventare il centro di controllo con widget riassuntivi:
Ticket Aperti: Un contatore con link alla lista dei ticket con stato "Aperto".
Scadenze Prossime: Lista delle prossime 5 rate in scadenza (usando la nuova tabella rate).
Ultimi Documenti: Lista degli ultimi 5 file caricati (usando la nuova tabella documenti).
Link Rapidi: Pulsanti per "Nuovo Stabile", "Nuovo Ticket", "Nuovo Fornitore".
Pagina Dettaglio Stabile (stabili.show) Questa pagina deve essere organizzata a TAB per non essere troppo affollata:
Tab "Dati Generali": Le informazioni anagrafiche attuali.
Tab "Unità e Proprietà": Le due tabelle che abbiamo già popolato.
Tab "Contabilità": Con sotto-sezioni per Gestione, Preventivo, Piano dei Conti.
Tab "Documenti": Una vista per caricare e visualizzare i documenti relativi allo stabile (usando la nuova tabella documenti).
Tab "Gestione Rate": Un'interfaccia per generare le rate per tutte le unità (usando la nuova tabella rate) e visualizzare lo stato dei pagamenti.
Prossimi Sviluppi Chiave:
Implementare le migration per le nuove tabelle (documenti, rate) e i nuovi campi.
Sviluppare il DocumentoController con la logica per l'upload e la visualizzazione dei file.
Sviluppare il RateController con la logica per la generazione massiva delle rate basata sui preventivi e le tabelle millesimali.
Potenziare la pagina stabili.show con la struttura a TAB.