netgescon-master/docs/02-architettura-laravel/02-unita-immobiliari/ANALISI-UNITA-IMMOBILIARI.md
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

16 KiB

NETGESCON - ANALISI UNITÀ IMMOBILIARI

📋 OVERVIEW

Le unità immobiliari sono i singoli locali/appartamenti che compongono uno stabile. Ogni unità ha caratteristiche proprie e può avere diversi utilizzi e tipologie di proprietà/inquilinato.

🏠 STRUTTURA DATI UNITÀ IMMOBILIARE

Identificativi Base

  • ID Unità (Primary Key, Auto-increment)
  • Stabile ID (Foreign Key)
  • Codice Unità (es: "A-1-3-05" = Palazzina A, Scala 1, Piano 3, Interno 05)
  • Denominazione (es: "Appartamento 5 - Piano Terzo")

Posizione Fisica

  • Palazzina (A, B, C... o numerico 1, 2, 3...)
  • Scala (1, 2, 3... o A, B, C...)
  • Piano (-2, -1, 0, 1, 2, 3... dove 0=piano terra)
  • Interno (numero interno/appartamento)
  • Posizione Dettagliata (fronte strada, cortile interno, angolo, etc)

Dati Catastali Specifici

  • Sezione Urbana
  • Foglio
  • Particella
  • Subalterno (UNIVOCO per ogni unità)
  • Categoria Catastale (A/1, A/2, A/3, A/4, C/1, C/2, etc)
  • Classe
  • Consistenza (vani, mq, mc)
  • Rendita Catastale
  • Superficie Commerciale (mq)
  • Superficie Calpestabile (mq)

Tipologia e Utilizzo

  • Tipo Unità

    • Abitazione
    • Studio professionale
    • Attività commerciale
    • Magazzino/Deposito
    • Box/Garage
    • Cantina
    • Soffitta
    • Spazio Comune Redditizio (NOVITÀ)
    • Locale Tecnico (NOVITÀ)
    • Altro
  • Utilizzo Attuale

    • Abitazione principale
    • Abitazione secondaria
    • Studio medico
    • Studio legale
    • Struttura ricettiva (B&B, Airbnb)
    • Attività commerciale
    • Locale commerciale in affitto (NOVITÀ)
    • Sala eventi affittabile (NOVITÀ)
    • Parcheggio a pagamento (NOVITÀ)
    • Lavanderia comune (NOVITÀ)
    • Deposito attrezzature (NOVITÀ)
    • Ufficio
    • Magazzino
    • Non utilizzato

Autorizzazioni e Licenze

  • CIN (Codice Identificativo Nazionale - strutture ricettive)
  • Licenza Commerciale (se attività)
  • Autorizzazione Professionale (studi medici/legali)
  • Cambio Destinazione d'Uso (pratica comune)
  • Data Scadenza Autorizzazioni
  • Note Autorizzazioni

Caratteristiche Strutturali

  • Numero Locali
  • Numero Bagni
  • Numero Camere da Letto
  • Presenza Cucina (abitabile/cucinotto/angolo cottura)
  • Balconi/Terrazze (numero + mq totali)
  • Giardino Privato (SI/NO + mq)
  • Posto Auto (assegnato/proprietà/nessuno)
  • Cantina (assegnata/proprietà/nessuna)
  • Soffitta (assegnata/proprietà/nessuna)

Impianti

  • Riscaldamento (centralizzato/autonomo/assente)
  • Climatizzazione (presente/assente)
  • Impianto Elettrico (anno rifacimento/conformità)
  • Impianto Idraulico (anno rifacimento/stato)
  • Impianto Gas (presente/assente/certificazione)
  • Infissi (tipologia/anno sostituzione)

👥 GESTIONE PROPRIETÀ E INQUILINATO

Proprietari

  • Tipo Proprietà

    • Unico Proprietario
    • Comproprietà (più proprietari)
    • Nuda Proprietà + Usufrutto
    • Società/Ente
  • Quota Proprietà (%, se comproprietà)

  • Data Acquisto

  • Provenienza (acquisto, eredità, donazione, etc)

Inquilini/Conduttori

  • Presenza Inquilino (SI/NO)

  • Tipo Contratto

    • Abitazione (4+4 anni)
    • Abitazione transitorio
    • Commerciale (6+6 anni)
    • Turistico breve
    • Comodato gratuito
    • Altro
  • Data Inizio Contratto

  • Data Scadenza Contratto

  • Canone Mensile

  • Modalità Pagamento

  • Deposito Cauzionale

Deleghe e Rappresentanze

  • Delega Amministratore (chi può parlare per l'unità)
  • Delega Assemblea (chi vota in assemblea)
  • Referente Principale (persona di contatto)
  • Amministratore di Sostegno (se presente)

💰 GESTIONE ECONOMICA UNITÀ

Millesimi di Proprietà

  • Millesimi Generali (quota su 1000 totali)
  • Millesimi Riscaldamento (se centralizzato)
  • Millesimi Acqua (se centralizzata)
  • Millesimi Ascensore (se presente e utilizzabile)
  • Millesimi Scale (per manutenzione scale specifiche)
  • Altri Millesimi Particolari

Divisione Spese

REGOLA BASE: Ogni voce di spesa può essere divisa diversamente tra Proprietario e Inquilino

Spese Ordinarie

  • Pulizia Scale: 100% Proprietario / 0% Inquilino (default)
  • Energia Elettrica: 100% Proprietario / 0% Inquilino
  • Manutenzione Ascensore: 100% Proprietario / 0% Inquilino
  • Amministratore: 100% Proprietario / 0% Inquilino
  • Assicurazione: 100% Proprietario / 0% Inquilino

Spese Straordinarie

  • Rifacimento Tetto: 100% Proprietario / 0% Inquilino
  • Rifacimento Facciate: 100% Proprietario / 0% Inquilino
  • Sostituzione Ascensore: 100% Proprietario / 0% Inquilino

Spese Miste (configurabili)

  • Portineria: 70% Proprietario / 30% Inquilino (esempio)
  • Giardinaggio: 80% Proprietario / 20% Inquilino (esempio)

Spese Particolari per Utilizzo

Strutture Ricettive (B&B, Airbnb):

  • Maggiorazione del 50% su tutte le spese ordinarie
  • Deposito cauzionale maggiorato
  • Controlli periodici conformità

Attività Commerciali:

  • Calcolo in base a orari apertura
  • Maggiorazioni per utilizzo intensivo
  • Spese pubblicitarie condominiali

Rendite e Entrate

  • Canoni Pubblicità (su tetto/facciate): 100% Proprietario
  • Affitti Antenne/Ripetitori: 100% Proprietario
  • Rimborsi Assicurazioni: ripartiti secondo evento
  • Bonus/Detrazioni Fiscali: 100% Proprietario (salvo accordi)

🏗️ SCHEMA DATABASE (Preliminare)

-- Tabella principale unità immobiliari
CREATE TABLE unita_immobiliari (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    stabile_id BIGINT NOT NULL,
    codice_unita VARCHAR(20) NOT NULL,
    denominazione VARCHAR(255),
    
    -- Posizione fisica
    palazzina VARCHAR(10),
    scala VARCHAR(10), 
    piano TINYINT,
    interno VARCHAR(10),
    posizione_dettagliata VARCHAR(255),
    
    -- Dati catastali
    sezione_urbana VARCHAR(10),
    foglio VARCHAR(20),
    particella VARCHAR(20), 
    subalterno VARCHAR(20) UNIQUE NOT NULL,
    categoria_catastale VARCHAR(10),
    classe VARCHAR(10),
    consistenza DECIMAL(8,2),
    rendita_catastale DECIMAL(10,2),
    
    -- Superfici
    superficie_commerciale DECIMAL(8,2),
    superficie_calpestabile DECIMAL(8,2),
    
    -- Tipologia
    tipo_unita ENUM('abitazione','studio','commerciale','magazzino','box','cantina','soffitta','altro'),
    utilizzo_attuale VARCHAR(255),
    
    -- Caratteristiche
    numero_locali TINYINT,
    numero_bagni TINYINT,
    numero_camere TINYINT,
    ha_balcone BOOLEAN DEFAULT FALSE,
    mq_balconi DECIMAL(6,2),
    ha_giardino BOOLEAN DEFAULT FALSE,
    mq_giardino DECIMAL(8,2),
    
    -- Millesimi
    millesimi_generali DECIMAL(6,3) NOT NULL,
    millesimi_riscaldamento DECIMAL(6,3),
    millesimi_acqua DECIMAL(6,3),
    millesimi_ascensore DECIMAL(6,3),
    
    -- Impianti e stato
    riscaldamento ENUM('centralizzato','autonomo','assente'),
    anno_ristrutturazione YEAR,
    stato_conservazione ENUM('ottimo','buono','discreto','da_ristrutturare'),
    
    -- Audit
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    created_by INT,
    updated_by INT,
    
    -- Vincoli e indici
    FOREIGN KEY (stabile_id) REFERENCES stabili(id) ON DELETE CASCADE,
    INDEX idx_stabile (stabile_id),
    INDEX idx_subalterno (subalterno),
    INDEX idx_posizione (stabile_id, palazzina, scala, piano, interno),
    UNIQUE KEY unique_unita (stabile_id, palazzina, scala, piano, interno)
);

-- Tabella proprietari unità
CREATE TABLE proprieta_unita (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    unita_id BIGINT NOT NULL,
    persona_id BIGINT NOT NULL, -- FK a anagrafica
    tipo_proprieta ENUM('unico','comproprietario','nudo_proprietario','usufruttuario','societa'),
    quota_proprieta DECIMAL(5,2) DEFAULT 100.00, -- % di proprietà
    data_acquisizione DATE,
    modalita_acquisizione ENUM('acquisto','eredita','donazione','altro'),
    note TEXT,
    attivo BOOLEAN DEFAULT TRUE,
    
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    FOREIGN KEY (unita_id) REFERENCES unita_immobiliari(id) ON DELETE CASCADE,
    INDEX idx_unita (unita_id),
    INDEX idx_persona (persona_id)
);

-- Tabella inquilini/conduttori
CREATE TABLE contratti_locazione (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    unita_id BIGINT NOT NULL,
    persona_id BIGINT NOT NULL, -- FK a anagrafica  
    tipo_contratto ENUM('abitazione_ordinario','abitazione_transitorio','commerciale','turistico','comodato','altro'),
    data_inizio DATE NOT NULL,
    data_scadenza DATE,
    canone_mensile DECIMAL(8,2),
    deposito_cauzionale DECIMAL(8,2),
    modalita_pagamento VARCHAR(255),
    attivo BOOLEAN DEFAULT TRUE,
    note TEXT,
    
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    FOREIGN KEY (unita_id) REFERENCES unita_immobiliari(id) ON DELETE CASCADE,
    INDEX idx_unita (unita_id),
    INDEX idx_inquilino (persona_id),
    INDEX idx_scadenza (data_scadenza)
);

-- Tabella divisione spese per unità
CREATE TABLE divisione_spese_unita (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    unita_id BIGINT NOT NULL,
    tipo_spesa VARCHAR(100) NOT NULL, -- 'ordinaria_pulizia', 'straordinaria_tetto', etc
    percentuale_proprietario DECIMAL(5,2) DEFAULT 100.00,
    percentuale_inquilino DECIMAL(5,2) DEFAULT 0.00,
    note VARCHAR(255),
    
    FOREIGN KEY (unita_id) REFERENCES unita_immobiliari(id) ON DELETE CASCADE,
    UNIQUE KEY unique_spesa_unita (unita_id, tipo_spesa),
    INDEX idx_unita (unita_id)
);

-- Tabella autorizzazioni/licenze unità
CREATE TABLE autorizzazioni_unita (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    unita_id BIGINT NOT NULL,
    tipo_autorizzazione ENUM('cin','licenza_commerciale','autorizzazione_sanitaria','cambio_destinazione','altro'),
    codice_autorizzazione VARCHAR(100),
    data_rilascio DATE,
    data_scadenza DATE,
    ente_rilascio VARCHAR(255),
    stato ENUM('attiva','scaduta','sospesa','revocata'),
    note TEXT,
    
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    FOREIGN KEY (unita_id) REFERENCES unita_immobiliari(id) ON DELETE CASCADE,
    INDEX idx_unita (unita_id),
    INDEX idx_scadenza (data_scadenza),
    INDEX idx_tipo (tipo_autorizzazione)
);

🔄 AUTOMATISMI E FUNZIONALITÀ

Generazione Automatica da Stabile

Quando si crea uno stabile, per ogni unità generata automaticamente:

  1. Calcolo Codice Unità: {Palazzina}-{Scala}-{Piano}-{Interno}
  2. Eredità Dati Catastali: Sezione, Foglio, Particella dallo stabile
  3. Generazione Subalterno: Progressivo o manuale
  4. Calcolo Millesimi: Automatico se tutti uguali, manuale se diversi
  5. Posizionamento Fisico: Coordinate nella struttura del building

Calcoli Automatici Millesimi

// Se tutti appartamenti uguali
$millesimi_per_unita = 1000 / $numero_totale_unita;

// Se in base a superficie
$millesimi_unita = ($superficie_unita / $superficie_totale_stabile) * 1000;

// Verifica totale = 1000
$controllo_somma = array_sum($millesimi_tutte_unita); // DEVE essere 1000

Gestione Vicini per Problemi

// Algoritmo identificazione unità sovrastante
function getUnitaSovrastante($unita) {
    return UnitaImmobiliare::where('stabile_id', $unita->stabile_id)
        ->where('palazzina', $unita->palazzina)
        ->where('scala', $unita->scala)  
        ->where('piano', $unita->piano + 1)
        ->where('interno', $unita->interno)
        ->first();
}

// Unità laterali stesso piano
function getUnitaLaterali($unita) {
    return UnitaImmobiliare::where('stabile_id', $unita->stabile_id)
        ->where('palazzina', $unita->palazzina)
        ->where('scala', $unita->scala)
        ->where('piano', $unita->piano)
        ->where('interno', '!=', $unita->interno)
        ->get();
}

📊 REPORTISTICA E ANALISI

Dashboard Unità

  • Occupazione: % unità occupate vs libere
  • Tipologie Utilizzo: grafico torta
  • Morosità: unità con rate non pagate
  • Scadenze Contratti: prossime 6 mesi
  • Autorizzazioni in Scadenza: alert automatici

Verifiche Conformità

  • Check Millesimi: somma = 1000
  • Verifica Codici Catastali: univocità subalterni
  • Controllo Quote Proprietà: somma = 100% per unità
  • Audit Modifiche: log di tutte le variazioni

🚀 FUNZIONALITÀ AVANZATE

Integrazione con Catasto

  • Verifica automatica dati catastali online
  • Aggiornamento rendite catastali
  • Download visure automatiche
  • Alert variazioni catastali

Gestione Smart

  • QR Code per unità: accesso rapido a dati
  • App mobile proprietari: controllo dati propri
  • Notifiche push: scadenze, comunicazioni
  • Chat condominiale: comunicazione tra unità

Analytics Avanzate

  • Analisi consumi: per tipologia utilizzo
  • Predizione morosità: machine learning
  • Ottimizzazione spese: suggerimenti automatici
  • Benchmark mercato: confronto valori immobiliari

🏛️ SPAZI COMUNI COME UNITÀ IMMOBILIARI NOVITÀ

Concetto Innovativo

Gli spazi comuni redditizi vengono gestiti come vere e proprie unità immobiliari per:

  • Tracciamento separato dei ricavi
  • Gestione fiscale specifica
  • Ripartizione trasparente delle rendite
  • Manutenzione dedicata
  • Contratti d'affitto regolari

Tipologie Spazi Comuni Redditizi

Locali Commerciali di Proprietà Condominiale

  • Negozi piano terra
    • Superficie commerciale
    • Vetrine su strada
    • Accesso indipendente
    • Utenze separate
  • Uffici/Studi
    • Superficie ufficio
    • Accessi dedicati
    • Impianti autonomi

Spazi Eventi e Servizi

  • Sala Condominiale
    • Capienza persone
    • Attrezzature incluse
    • Tariffazione oraria/giornaliera
    • Regolamento utilizzo
  • Terrazza/Giardino Comune
    • Superficie utilizzabile
    • Capienza eventi
    • Attrezzature fisse
    • Limitazioni orarie

Servizi a Pagamento

  • Lavanderia Comune
    • Numero postazioni
    • Attrezzature (lavatrici, asciugatrici)
    • Tariffazione per utilizzo
    • Manutenzione programmata
  • Parcheggi Visitatori Premium
    • Posti auto numerati
    • Tariffazione oraria/giornaliera
    • Sistema di controllo accessi
    • Videosorveglianza

Gestione Economica Spazi Comuni

Ricavi e Contratti

  • Contratti di Locazione
    • Durata contratto
    • Canone mensile
    • Clausole di adeguamento ISTAT
    • Spese accessorie a carico inquilino
  • Tariffari Servizi
    • Costi orari/giornalieri
    • Sconti per condomini
    • Pacchetti promozionali
    • Penali per danni

Divisione Spese e Ricavi

  • Algoritmo Ripartizione Ricavi
    • Detrazione spese di gestione
    • Accantonamento manutenzione (%)
    • Distribuzione residuo per millesimi
    • Opzione reinvestimento miglioramenti
  • Spese Specifiche
    • Manutenzione dedicata
    • Utenze separate (quando possibile)
    • Assicurazioni specifiche
    • Tasse e imposte

Reporting Fiscale

  • Dichiarazioni Redditi
    • Redditi da locazione
    • Cedolare secca (se applicabile)
    • Detrazioni spese manutenzione
  • IVA su Servizi
    • Regime forfettario
    • Fatturazione elettronica
    • Registri IVA

Locali Tecnici Come Unità Speciali

Categorizzazione

  • Centrale Termica
    • Superficie e volume
    • Potenza impianti
    • Certificazioni sicurezza
    • Schedule manutenzione
  • Locale Contatori
    • Numero utenze gestite
    • Tipologie (gas, acqua, elettrico)
    • Accessibilità enti
  • Locale Pompe/Autoclave
    • Potenza impianti
    • Certificazioni
    • Manutenzione programmata

Gestione Accessi e Sicurezza

  • Chiavi e Autorizzazioni
    • Amministratore (accesso completo)
    • Ditte manutenzione (accesso programmato)
    • Condomini (accesso limitato e accompagnato)
    • Vigili del Fuoco (accesso emergenza)
  • Registro Accessi
    • Data e ora accesso
    • Persona autorizzata
    • Motivo intervento
    • Durata permanenza
    • Note anomalie

Data Analisi: 14/07/2025
Stato: BOZZA - In Definizione
Prossimo Step: Integrazione con Anagrafica + Design API