📋 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
643 lines
21 KiB
Markdown
643 lines
21 KiB
Markdown
# NETGESCON - ANALISI GESTIONE FINANZIARIA AVANZATA
|
|
|
|
## 📋 OVERVIEW
|
|
La gestione finanziaria avanzata di NetGesCon gestisce tutti gli aspetti economici del condominio, dai fondi tradizionali alle nuove opportunità di rendita derivanti da spazi comuni e servizi innovativi.
|
|
|
|
## 💰 SISTEMA FONDI MULTIPLI
|
|
|
|
### Struttura Gerarchica Fondi
|
|
|
|
#### Fondi Primari (Obbligatori per Legge)
|
|
```
|
|
1. FONDO ORDINARIO
|
|
├── Spese di gestione corrente
|
|
├── Manutenzioni ordinarie
|
|
├── Utenze parti comuni
|
|
└── Servizi base (portineria, pulizie)
|
|
|
|
2. FONDO DI RISERVA
|
|
├── Accantonamento legale (minimo)
|
|
├── Manutenzioni straordinarie
|
|
├── Emergenze impreviste
|
|
└── Riserva sicurezza
|
|
```
|
|
|
|
#### Fondi Secondari (Specifici per Servizio)
|
|
```
|
|
3. FONDI SPECIFICI
|
|
├── Fondo Ascensore
|
|
│ ├── Manutenzione ordinaria
|
|
│ ├── Guasti e riparazioni
|
|
│ └── Sostituzione completa
|
|
├── Fondo Riscaldamento
|
|
│ ├── Combustibile/energia
|
|
│ ├── Manutenzione caldaia
|
|
│ └── Efficientamento energetico
|
|
├── Fondo Facciata/Tetto
|
|
│ ├── Manutenzione preventiva
|
|
│ ├── Riparazioni localizzate
|
|
│ └── Rifacimento completo
|
|
└── Fondi Personalizzati
|
|
├── Fondo verde/giardini
|
|
├── Fondo sicurezza/videosorveglianza
|
|
└── Fondo innovazione tecnologica
|
|
```
|
|
|
|
#### Fondi Terziari (Investimenti e Rendite)
|
|
```
|
|
4. FONDI RENDITA
|
|
├── Fondo Investimenti Spazi Comuni
|
|
│ ├── Miglioramenti locali commerciali
|
|
│ ├── Attrezzature sala eventi
|
|
│ └── Tecnologie innovative
|
|
├── Fondo Redistribuzione Rendite
|
|
│ ├── Accumulo ricavi affitti
|
|
│ ├── Detrazione spese gestione
|
|
│ └── Distribuzione proporzionale
|
|
└── Fondo Sviluppo Futuro
|
|
├── Nuovi progetti reddituali
|
|
├── Efficientamento energetico
|
|
└── Smart building technologies
|
|
```
|
|
|
|
## 🏦 GESTIONE DEPOSITI E CAUZIONI
|
|
|
|
### Depositi Cauzionali Inquilini
|
|
|
|
#### Struttura Dati Deposito
|
|
```sql
|
|
CREATE TABLE depositi_cauzionali (
|
|
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
|
unita_immobiliare_id BIGINT NOT NULL,
|
|
inquilino_id BIGINT NOT NULL,
|
|
|
|
-- Dati deposito
|
|
importo_deposito DECIMAL(10,2) NOT NULL,
|
|
numero_mensilita DECIMAL(3,1) DEFAULT 2.0,
|
|
valuta CHAR(3) DEFAULT 'EUR',
|
|
|
|
-- Date
|
|
data_versamento DATE NOT NULL,
|
|
data_scadenza_contratto DATE,
|
|
data_svincolo DATE NULL,
|
|
|
|
-- Interessi
|
|
tasso_interesse DECIMAL(5,4) DEFAULT 0.0000,
|
|
interessi_maturati DECIMAL(8,2) DEFAULT 0.00,
|
|
|
|
-- Stato
|
|
stato ENUM('attivo', 'svincolato', 'parzialmente_utilizzato', 'contenziosi') DEFAULT 'attivo',
|
|
|
|
-- Garanzie aggiuntive
|
|
fideiussione_bancaria BOOLEAN DEFAULT FALSE,
|
|
polizza_assicurativa BOOLEAN DEFAULT FALSE,
|
|
garante_persona_fisica BOOLEAN DEFAULT FALSE,
|
|
|
|
-- Note e dettagli
|
|
modalita_versamento VARCHAR(100),
|
|
note_particolari TEXT,
|
|
|
|
FOREIGN KEY (unita_immobiliare_id) REFERENCES unita_immobiliari(id),
|
|
FOREIGN KEY (inquilino_id) REFERENCES persone(id)
|
|
);
|
|
```
|
|
|
|
#### Calcolo Automatico Interessi
|
|
```php
|
|
class DepositoCauzioneService {
|
|
|
|
/**
|
|
* Calcola interessi maturati su deposito cauzionale
|
|
* Tasso BCE + spread o tasso fisso contrattuale
|
|
*/
|
|
public function calcolaInteressi($depositoId, $dataCalcolo = null) {
|
|
$deposito = DepositoCauzionale::find($depositoId);
|
|
$dataCalcolo = $dataCalcolo ?? now();
|
|
|
|
$giorniMaturazione = $deposito->data_versamento->diffInDays($dataCalcolo);
|
|
$tassoGiornaliero = $deposito->tasso_interesse / 365;
|
|
|
|
return $deposito->importo_deposito * $tassoGiornaliero * $giorniMaturazione;
|
|
}
|
|
|
|
/**
|
|
* Svincolo automatico a fine contratto
|
|
*/
|
|
public function svincoloAutomatico($depositoId) {
|
|
$deposito = DepositoCauzionale::find($depositoId);
|
|
|
|
if ($deposito->data_scadenza_contratto <= now()) {
|
|
$interessiFinali = $this->calcolaInteressi($depositoId);
|
|
$importoTotale = $deposito->importo_deposito + $interessiFinali;
|
|
|
|
// Genera movimento contabile automatico
|
|
$this->creaMovimentoSvincolo($deposito, $importoTotale);
|
|
|
|
$deposito->update([
|
|
'stato' => 'svincolato',
|
|
'data_svincolo' => now(),
|
|
'interessi_maturati' => $interessiFinali
|
|
]);
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Depositi Ditte e Fornitori
|
|
|
|
#### Cauzioni Lavori
|
|
- **Percentuale standard**: 10% valore lavori
|
|
- **Durata**: Fino a collaudo + 12 mesi garanzia
|
|
- **Tipologie accettate**:
|
|
- Fideiussione bancaria
|
|
- Polizza assicurativa
|
|
- Deposito contanti
|
|
- Trattenuta su acconti
|
|
|
|
#### Gestione Automatica
|
|
```php
|
|
class CauzioneLavoriService {
|
|
|
|
/**
|
|
* Calcola cauzione automatica in base a preventivo
|
|
*/
|
|
public function calcolaCauzione($importoLavori, $percentuale = 10) {
|
|
return $importoLavori * ($percentuale / 100);
|
|
}
|
|
|
|
/**
|
|
* Svincolo graduale cauzione
|
|
*/
|
|
public function svincoloGraduale($lavoroId) {
|
|
$lavoro = Lavoro::find($lavoroId);
|
|
|
|
switch($lavoro->stato) {
|
|
case 'completato':
|
|
return $this->svincolaPercentuale($lavoro, 50); // 50% a lavori completati
|
|
case 'collaudato':
|
|
return $this->svincolaPercentuale($lavoro, 40); // 40% a collaudo
|
|
case 'garanzia_scaduta':
|
|
return $this->svincolaPercentuale($lavoro, 10); // 10% finale
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## 💼 GESTIONE TFR E COMPENSI
|
|
|
|
### TFR Dipendenti (Portiere, Custode, etc.)
|
|
|
|
#### Calcolo Automatico TFR
|
|
```php
|
|
class TFRService {
|
|
|
|
/**
|
|
* Calcola accantonamento TFR mensile
|
|
* Formula: (Retribuzione Lorda Annua / 13.5) rivalutata
|
|
*/
|
|
public function calcolaAccantonamentoMensile($dipendenteId, $anno, $mese) {
|
|
$dipendente = Dipendente::find($dipendenteId);
|
|
$retribuzioneLordaAnnua = $this->getRetribuzioneLordaAnnua($dipendente, $anno);
|
|
|
|
$accantonamentoBase = $retribuzioneLordaAnnua / 13.5 / 12;
|
|
$rivalutazioneISTAT = $this->getRivalutazioneISTAT($anno, $mese);
|
|
|
|
return $accantonamentoBase * (1 + $rivalutazioneISTAT);
|
|
}
|
|
|
|
/**
|
|
* Rivalutazione ISTAT automatica
|
|
*/
|
|
public function getRivalutazioneISTAT($anno, $mese) {
|
|
// Collegamento automatico con API ISTAT o tabelle aggiornate
|
|
return ISTATService::getIndiceRivalutazione($anno, $mese);
|
|
}
|
|
|
|
/**
|
|
* Calcolo TFR finale con tassazione sostitutiva
|
|
*/
|
|
public function calcolaTFRFinale($dipendenteId, $dataLicenziamento) {
|
|
$accantonamenti = AccantonamentoTFR::where('dipendente_id', $dipendenteId)
|
|
->where('data_accantonamento', '<=', $dataLicenziamento)
|
|
->sum('importo_rivalutato');
|
|
|
|
$tassazioneSostitutiva = $this->calcolaTassazioneSostitutiva($accantonamenti);
|
|
|
|
return $accantonamenti - $tassazioneSostitutiva;
|
|
}
|
|
}
|
|
```
|
|
|
|
### Compensi Amministratore
|
|
|
|
#### Fatturazione Automatica
|
|
```php
|
|
class CompensoProfessionaleService {
|
|
|
|
/**
|
|
* Genera fattura periodica amministratore
|
|
*/
|
|
public function generaFatturaPeriodica($stabileId, $periodo) {
|
|
$stabile = Stabile::find($stabileId);
|
|
$amministratore = $stabile->amministratore;
|
|
|
|
$compensoBase = $this->calcolaCompensoBase($stabile);
|
|
$compensiAggiuntivi = $this->getCompensiAggiuntivi($stabile, $periodo);
|
|
$rimborsiSpese = $this->getRimborsiSpese($amministratore, $periodo);
|
|
|
|
$fatturaData = [
|
|
'numero' => $this->generaNumeroFattura(),
|
|
'data_emissione' => now(),
|
|
'importo_imponibile' => $compensoBase + $compensiAggiuntivi + $rimborsiSpese,
|
|
'iva' => $this->calcolaIVA($compensoBase + $compensiAggiuntivi),
|
|
'ritenuta_acconto' => $this->calcolaRitenutaAcconto($compensoBase + $compensiAggiuntivi),
|
|
'importo_totale' => $this->calcolaImportoFinale()
|
|
];
|
|
|
|
return FatturaProfessionale::create($fatturaData);
|
|
}
|
|
}
|
|
```
|
|
|
|
## 🏘️ RENDITE DA SPAZI COMUNI
|
|
|
|
### Sistema di Ripartizione Innovativo
|
|
|
|
#### Algoritmo Distribuzione Ricavi
|
|
```php
|
|
class RenaitaSpazioComune {
|
|
|
|
/**
|
|
* Algoritmo distribuzione ricavi spazi comuni
|
|
*/
|
|
public function distribuisciRicavi($spazioId, $importoRicavo, $periodo) {
|
|
$spazio = SpazioComune::find($spazioId);
|
|
$stabile = $spazio->stabile;
|
|
|
|
// 1. Detrazione spese di gestione
|
|
$speseGestione = $this->calcolaSpeseGestione($spazio, $periodo);
|
|
$ricavoNetto = $importoRicavo - $speseGestione;
|
|
|
|
// 2. Accantonamento manutenzione (configurabile)
|
|
$percentualeAccantonamento = $spazio->percentuale_accantonamento ?? 20;
|
|
$accantonamentoManutenzione = $ricavoNetto * ($percentualeAccantonamento / 100);
|
|
|
|
// 3. Importo distribuibile
|
|
$importoDistribuibile = $ricavoNetto - $accantonamentoManutenzione;
|
|
|
|
// 4. Distribuzione per millesimi (o algoritmo personalizzato)
|
|
$this->distribuisciPerMillesimi($stabile, $importoDistribuibile);
|
|
|
|
// 5. Registrazione movimenti contabili
|
|
$this->registraMovimentiContabili($spazio, $importoRicavo, $speseGestione, $accantonamentoManutenzione, $importoDistribuibile);
|
|
}
|
|
|
|
/**
|
|
* Distribuzione personalizzabile
|
|
*/
|
|
public function distribuisciPerMillesimi($stabile, $importoDistribuibile) {
|
|
$unitaImmobiliari = $stabile->unitaImmobiliari;
|
|
$millesimitTotali = $unitaImmobiliari->sum('millesimi_generali');
|
|
|
|
foreach($unitaImmobiliari as $unita) {
|
|
$quotaSpettante = ($unita->millesimi_generali / $millesimitTotali) * $importoDistribuibile;
|
|
|
|
// Accredita su conto rate o bonifico diretto
|
|
$this->accreditaQuota($unita, $quotaSpettante);
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Contratti e Tariffari Dinamici
|
|
|
|
#### Gestione Contratti Locazione
|
|
```sql
|
|
CREATE TABLE contratti_spazi_comuni (
|
|
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
|
spazio_comune_id BIGINT NOT NULL,
|
|
inquilino_id BIGINT NOT NULL,
|
|
|
|
-- Dati contratto
|
|
numero_contratto VARCHAR(50) UNIQUE,
|
|
data_inizio DATE NOT NULL,
|
|
data_fine DATE NOT NULL,
|
|
durata_mesi INT NOT NULL,
|
|
|
|
-- Condizioni economiche
|
|
canone_mensile DECIMAL(8,2) NOT NULL,
|
|
incremento_istat BOOLEAN DEFAULT TRUE,
|
|
percentuale_incremento_annuo DECIMAL(5,2) DEFAULT 0.00,
|
|
|
|
-- Spese accessorie
|
|
spese_condominiali_a_carico_inquilino BOOLEAN DEFAULT TRUE,
|
|
utenze_separate BOOLEAN DEFAULT FALSE,
|
|
|
|
-- Garanzie
|
|
deposito_cauzionale DECIMAL(10,2),
|
|
fideiussione_bancaria BOOLEAN DEFAULT FALSE,
|
|
|
|
-- Clausole speciali
|
|
diritto_riscatto BOOLEAN DEFAULT FALSE,
|
|
clausola_recesso_anticipato BOOLEAN DEFAULT FALSE,
|
|
preavviso_recesso_giorni INT DEFAULT 60,
|
|
|
|
-- Stato
|
|
stato ENUM('attivo', 'scaduto', 'disdetto', 'rinnovato') DEFAULT 'attivo',
|
|
|
|
FOREIGN KEY (spazio_comune_id) REFERENCES spazi_comuni(id),
|
|
FOREIGN KEY (inquilino_id) REFERENCES persone(id)
|
|
);
|
|
```
|
|
|
|
#### Tariffari Servizi a Consumo
|
|
```sql
|
|
CREATE TABLE tariffari_servizi (
|
|
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
|
spazio_comune_id BIGINT NOT NULL,
|
|
|
|
-- Tipologia tariffazione
|
|
tipo_tariffazione ENUM('oraria', 'giornaliera', 'a_consumo', 'forfettaria'),
|
|
|
|
-- Tariffe base
|
|
tariffa_base DECIMAL(6,2) NOT NULL,
|
|
tariffa_condomini DECIMAL(6,2), -- Sconto per condomini
|
|
tariffa_festivi DECIMAL(6,2), -- Maggiorazione festivi
|
|
|
|
-- Pacchetti e scontistiche
|
|
sconto_abbonamento_mensile DECIMAL(5,2) DEFAULT 0.00,
|
|
sconto_lungo_periodo DECIMAL(5,2) DEFAULT 0.00,
|
|
|
|
-- Penali e cauzione
|
|
penale_danni DECIMAL(8,2) DEFAULT 0.00,
|
|
cauzione_utilizzo DECIMAL(8,2) DEFAULT 0.00,
|
|
|
|
-- Validità
|
|
data_validita_inizio DATE NOT NULL,
|
|
data_validita_fine DATE,
|
|
|
|
FOREIGN KEY (spazio_comune_id) REFERENCES spazi_comuni(id)
|
|
);
|
|
```
|
|
|
|
## 📊 REPORTING E DASHBOARD FINANZIARIA
|
|
|
|
### Dashboard Real-Time
|
|
- **Saldo fondi in tempo reale**
|
|
- **Previsioni flussi di cassa**
|
|
- **Rendimenti spazi comuni**
|
|
- **Scadenze depositi cauzionali**
|
|
- **Alerting automatico**
|
|
|
|
### Report Automatici
|
|
- **Bilancio mensile dettagliato**
|
|
- **Estratto conto per condomino**
|
|
- **Report rendite spazi comuni**
|
|
- **Analisi costi-benefici servizi**
|
|
- **Proiezioni finanziarie**
|
|
|
|
### Integrazione Fiscale
|
|
- **Export dati per commercialista**
|
|
- **Pre-compilazione 770**
|
|
- **Gestione ritenute**
|
|
- **IVA su prestazioni**
|
|
- **Certificazioni uniche automatiche**
|
|
|
|
## 🎯 ROADMAP IMPLEMENTAZIONE
|
|
|
|
### Fase 1: Fondamenta (2-3 settimane)
|
|
- ✅ Struttura database fondi multipli
|
|
- ✅ Sistema base depositi cauzionali
|
|
- ✅ Calcolo TFR automatico
|
|
|
|
### Fase 2: Spazi Comuni (3-4 settimane)
|
|
- ✅ Gestione contratti affitto
|
|
- ✅ Algoritmi distribuzione ricavi
|
|
- ✅ Tariffari dinamici
|
|
|
|
### Fase 3: Automazioni (2-3 settimane)
|
|
- ✅ Fatturazione automatica
|
|
- ✅ Svincoli programmati
|
|
- ✅ Reporting avanzato
|
|
|
|
### Fase 4: Integrazione (1-2 settimane)
|
|
- ✅ Dashboard finanziaria
|
|
- ✅ Export fiscali
|
|
- ✅ API bancarie (PSD2)
|
|
|
|
## 💡 RENDITE INNOVATIVE DA PROPRIETÀ CONDOMINIALI ⭐ NUOVE IDEE
|
|
|
|
### Affitti Spazi Tecnologici
|
|
- **Antenne Telefonia Mobile**
|
|
- Contratti pluriennali con operatori (TIM, Vodafone, WindTre)
|
|
- Canoni annuali €5.000-€15.000 per antenna
|
|
- Clausole di adeguamento automatico
|
|
- Cessione gratuita energia elettrica
|
|
- Manutenzione a carico gestore
|
|
- Polizze assicurative dedicate
|
|
|
|
```sql
|
|
CREATE TABLE contratti_antenne (
|
|
id BIGINT PRIMARY KEY AUTO_INCREMENT,
|
|
stabile_id BIGINT NOT NULL,
|
|
spazio_comune_id BIGINT NOT NULL,
|
|
|
|
-- Dati operatore
|
|
operatore_telefonico ENUM('tim', 'vodafone', 'windtre', 'iliad', 'altro'),
|
|
ragione_sociale VARCHAR(200),
|
|
partita_iva VARCHAR(11),
|
|
|
|
-- Contratto
|
|
numero_contratto VARCHAR(50),
|
|
data_inizio DATE NOT NULL,
|
|
data_scadenza DATE NOT NULL,
|
|
durata_anni INT DEFAULT 9,
|
|
rinnovo_automatico BOOLEAN DEFAULT TRUE,
|
|
preavviso_disdetta_mesi INT DEFAULT 12,
|
|
|
|
-- Condizioni economiche
|
|
canone_annuo DECIMAL(10,2) NOT NULL,
|
|
incremento_istat BOOLEAN DEFAULT TRUE,
|
|
incremento_percentuale_annuo DECIMAL(4,2) DEFAULT 0.00,
|
|
deposito_cauzionale DECIMAL(10,2),
|
|
|
|
-- Spese accessorie
|
|
energia_elettrica_a_carico_gestore BOOLEAN DEFAULT TRUE,
|
|
manutenzione_ordinaria_a_carico_gestore BOOLEAN DEFAULT TRUE,
|
|
assicurazione_a_carico_gestore BOOLEAN DEFAULT TRUE,
|
|
|
|
-- Specifiche tecniche
|
|
tipologia_antenna ENUM('gsm', 'umts', 'lte', '5g', 'mista'),
|
|
numero_apparati INT DEFAULT 1,
|
|
potenza_massima_watt DECIMAL(8,2),
|
|
superficie_occupata_mq DECIMAL(6,2),
|
|
|
|
-- Autorizzazioni
|
|
autorizzazione_comunale BOOLEAN DEFAULT FALSE,
|
|
data_autorizzazione_comunale DATE NULL,
|
|
numero_pratica_comunale VARCHAR(50),
|
|
|
|
-- Documenti collegati
|
|
documento_contratto_id BIGINT NULL,
|
|
documento_autorizzazione_id BIGINT NULL,
|
|
documento_collaudo_id BIGINT NULL,
|
|
|
|
FOREIGN KEY (stabile_id) REFERENCES stabili(id),
|
|
FOREIGN KEY (spazio_comune_id) REFERENCES spazi_comuni(id),
|
|
FOREIGN KEY (documento_contratto_id) REFERENCES documenti_archivio(id)
|
|
);
|
|
```
|
|
|
|
### Servizi a Pagamento Innovativi
|
|
- **Posti Biciclette Premium**
|
|
- Box chiusi e videosorvegliati
|
|
- Tariffazione mensile/annuale
|
|
- Servizi aggiuntivi (riparazione, pulizia)
|
|
- App gestione prenotazioni
|
|
|
|
- **Servizi Condominiali Digitali**
|
|
- WiFi condominiale a pagamento
|
|
- Armadietti Amazon/Poste
|
|
- Stazioni ricarica auto elettriche
|
|
- Servizi delivery dedicati
|
|
|
|
### Gestione Rendite Speciali
|
|
```php
|
|
class RenditeSpecialiService {
|
|
|
|
/**
|
|
* Calcola rendite annuali da contratti speciali
|
|
*/
|
|
public function calcolaRenditeAnnuali($stabileId, $anno) {
|
|
$rendite = [];
|
|
|
|
// Antenne telefonia
|
|
$renditeAntenne = $this->calcolaRenditeAntenne($stabileId, $anno);
|
|
$rendite['antenne'] = $renditeAntenne;
|
|
|
|
// Posti bici premium
|
|
$renditeBici = $this->calcolaRenditeBici($stabileId, $anno);
|
|
$rendite['bici'] = $renditeBici;
|
|
|
|
// Altri servizi
|
|
$renditeServizi = $this->calcolaRenditeServizi($stabileId, $anno);
|
|
$rendite['servizi'] = $renditeServizi;
|
|
|
|
// Totale rendite
|
|
$totaleRendite = array_sum(array_column($rendite, 'totale'));
|
|
|
|
// Calcola distribuzione per condomini
|
|
$distribuzione = $this->calcolaDistribuzioneRendite($stabileId, $totaleRendite);
|
|
|
|
return [
|
|
'rendite_dettaglio' => $rendite,
|
|
'totale_annuo' => $totaleRendite,
|
|
'distribuzione_condomini' => $distribuzione,
|
|
'spese_gestione' => $this->calcolaSpeseGestione($stabileId, $totaleRendite),
|
|
'netto_distribuibile' => $totaleRendite * 0.9 // 10% spese gestione
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Distribuzione automatica rendite
|
|
*/
|
|
public function distribuisciRenditeAutomaticamente($stabileId, $importoTotale, $periodo) {
|
|
$stabile = Stabile::find($stabileId);
|
|
$unitaImmobiliari = $stabile->unitaImmobiliari;
|
|
|
|
// Calcola quote per millesimi
|
|
$millesimitTotali = $unitaImmobiliari->sum('millesimi_generali');
|
|
|
|
foreach ($unitaImmobiliari as $unita) {
|
|
$quotaSpettante = ($unita->millesimi_generali / $millesimitTotali) * $importoTotale;
|
|
|
|
// Crea movimento contabile
|
|
MovimentoContabile::create([
|
|
'stabile_id' => $stabileId,
|
|
'unita_immobiliare_id' => $unita->id,
|
|
'persona_id' => $unita->proprietario_principale_id,
|
|
'tipo_movimento' => 'entrata',
|
|
'categoria' => 'rendite_condominiali',
|
|
'descrizione' => "Quota rendite condominiali {$periodo}",
|
|
'importo' => $quotaSpettante,
|
|
'data_movimento' => now(),
|
|
'modalita_pagamento' => 'accredito_conto_rate'
|
|
]);
|
|
|
|
// Accredita su conto rate condomino
|
|
$this->accreditaSuContoRate($unita->id, $quotaSpettante);
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## 4. GESTIONE FONDI CONDOMINIALI SPECIFICI
|
|
|
|
### 4.1 Depositi Cauzionali
|
|
- **Gestione Depositi per Locali Affittati**
|
|
- Registrazione depositi cauzionali
|
|
- Tracking utilizzo e restituzione
|
|
- Interessi maturati sui depositi
|
|
- Gestione garanzie fideiussorie
|
|
|
|
### 4.2 TFR e Gestione Personale
|
|
- **TFR Portiere/Personale**
|
|
- Calcolo automatico TFR
|
|
- Accantonamenti mensili
|
|
- Gestione liquidazioni
|
|
- Archivio contratti e buste paga
|
|
|
|
### 4.3 Accantonamenti per Uso Proprietà Comuni
|
|
- **Quote Uso Spazi Comuni**
|
|
- Terrazzo condominiale
|
|
- Locali tecnici
|
|
- Spazi pubblicitari
|
|
- Aree di sosta/parcheggio
|
|
|
|
### 4.4 Rendite da Proprietà Condominiali
|
|
- **Affitti Antenne Telefonia Mobile**
|
|
- Contratti operatori telefonici
|
|
- Canoni mensili/annuali
|
|
- Gestione rinnovi automatici
|
|
- Ripartizione ricavi tra condomini
|
|
|
|
- **Posti Bici e Mobilità**
|
|
- Affitto posti bici
|
|
- Colonnine ricarica elettrica
|
|
- Car sharing condominiale
|
|
- Gestione accessi e prenotazioni
|
|
|
|
- **Altri Servizi Innovativi**
|
|
- Distributori automatici
|
|
- Armadietti Amazon Locker
|
|
- Spazi co-working temporanei
|
|
- Servizi di pulizia premium
|
|
|
|
### 4.5 Gestione Centralizzata Fondi
|
|
```sql
|
|
-- Tabella fondi_condominio
|
|
CREATE TABLE fondi_condominio (
|
|
id INT PRIMARY KEY,
|
|
stabile_id INT,
|
|
tipo_fondo ENUM('deposito_cauzionale', 'tfr', 'accantonamento', 'rendita'),
|
|
descrizione VARCHAR(255),
|
|
importo_iniziale DECIMAL(10,2),
|
|
saldo_attuale DECIMAL(10,2),
|
|
data_creazione DATE,
|
|
data_scadenza DATE,
|
|
stato ENUM('attivo', 'chiuso', 'sospeso'),
|
|
note TEXT
|
|
);
|
|
|
|
-- Tabella movimenti_fondi
|
|
CREATE TABLE movimenti_fondi (
|
|
id INT PRIMARY KEY,
|
|
fondo_id INT,
|
|
tipo_movimento ENUM('entrata', 'uscita', 'trasferimento'),
|
|
importo DECIMAL(10,2),
|
|
descrizione TEXT,
|
|
data_movimento DATE,
|
|
documento_riferimento VARCHAR(100)
|
|
);
|
|
```
|