📋 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
120 lines
6.9 KiB
Plaintext
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. |