info('πŸš€ Creazione dati di esempio NetGescon...'); // 1. Verifica/Crea Stabile con tutti i dati completi $stabileCount = Stabile::count(); $stabile = null; if ($stabileCount == 0) { $this->info('πŸ“‹ Creazione primo stabile di esempio...'); $stabile = Stabile::create([ 'codice_stabile' => 'ROM001', 'denominazione' => 'Condominio Via Roma 123', 'indirizzo' => 'Via Roma 123', 'citta' => 'Roma', 'cap' => '00100', 'provincia' => 'RM', 'amministratore_id' => 2, // admin@example.com 'stato' => 'attivo' ]); $this->info("βœ… Stabile creato: {$stabile->denominazione}"); } else { // Usa l'ultimo stabile per creare i dati associati $stabile = Stabile::latest()->first(); $this->info("πŸ“‹ Uso stabile esistente: {$stabile->denominazione}"); } // 2. Crea Tabella Millesimale se non esiste $tabella = $stabile->tabelleMillesimali()->first(); if (!$tabella) { $this->info('πŸ“Š Creazione tabella millesimale...'); $tabella = $stabile->tabelleMillesimali()->create([ 'nome_tabella' => 'Spese Generali', 'codice_tabella' => 'TAB.A', 'denominazione' => 'Spese Generali', 'tipo_tabella' => 'proprieta', 'stato_tabella' => 'attiva', 'totale_millesimi' => 0, 'creato_da' => 1 ]); $this->info("βœ… Tabella creata: {$tabella->codice_tabella}"); } else { $this->info("πŸ“Š Tabella esistente: {$tabella->codice_tabella}"); } // 3. Crea dettagli millesimali se non esistono $dettagliCount = $tabella->dettagli()->count(); if ($dettagliCount == 0) { $this->info('🏠 Creazione dettagli millesimali...'); // Prima verifica se ci sono unitΓ  immobiliari $unitaImmobiliari = $stabile->unitaImmobiliari()->take(5)->get(); if ($unitaImmobiliari->count() == 0) { $this->info('⚠️ Nessuna unitΓ  immobiliare trovata nello stabile.'); $this->info('πŸ“‹ Creazione unitΓ  immobiliari di esempio...'); // Crea alcune unitΓ  immobiliari di esempio $unitaData = [ ['interno' => '1', 'scala' => 'A', 'piano' => '0', 'superficie' => 85.00], ['interno' => '2', 'scala' => 'A', 'piano' => '1', 'superficie' => 92.00], ['interno' => '3', 'scala' => 'A', 'piano' => '2', 'superficie' => 95.00], ['interno' => '4', 'scala' => 'A', 'piano' => '3', 'superficie' => 120.00], ['interno' => '5', 'scala' => 'B', 'piano' => '0', 'superficie' => 80.00] ]; foreach ($unitaData as $unita) { $unitaImmobiliari[] = $stabile->unitaImmobiliari()->create([ 'interno' => $unita['interno'], 'scala' => $unita['scala'], 'piano' => $unita['piano'], 'superficie' => $unita['superficie'], 'stato' => 'attiva', 'created_by' => 1 ]); } $this->info("βœ… Create " . count($unitaData) . " unitΓ  immobiliari"); } // Ora crea i dettagli millesimali $millesimi = [89.5000, 92.3000, 95.1000, 120.5000, 80.0000]; $totaleMillesimi = 0; foreach ($unitaImmobiliari as $index => $unita) { $millesimiValue = $millesimi[$index] ?? (80.0 + ($index * 5.0)); DettaglioMillesimale::create([ 'tabella_id' => $tabella->id, 'unita_immobiliare_id' => $unita->id, 'millesimi' => $millesimiValue, 'creato_da' => 1 ]); $totaleMillesimi += $millesimiValue; } // Aggiorna il totale della tabella $tabella->update(['totale_millesimi' => $totaleMillesimi]); $this->info("βœ… Creati " . $unitaImmobiliari->count() . " dettagli millesimali"); $this->info("πŸ“Š Totale millesimi: {$totaleMillesimi}"); } else { $this->info("🏠 Dettagli esistenti: {$dettagliCount}"); } // 4. Crea contatti rubrica universale $banche = RubricaUniversale::categoria('banca')->count(); if ($banche == 0) { $this->info('🏦 Creazione contatti banche...'); $bancheData = [ [ 'ragione_sociale' => 'Banca Intesa SanPaolo S.p.A.', 'tipo_contatto' => 'persona_giuridica', 'categoria' => 'banca', 'partita_iva' => '06854851004', 'indirizzo' => 'Piazza San Carlo 156', 'citta' => 'Torino', 'cap' => '10121', 'provincia' => 'TO', 'telefono_ufficio' => '+39 011 555 1111', 'email' => 'condomini@intesasanpaolo.it', 'stato' => 'attivo' ], [ 'ragione_sociale' => 'UniCredit S.p.A.', 'tipo_contatto' => 'persona_giuridica', 'categoria' => 'banca', 'partita_iva' => '02008110222', 'indirizzo' => 'Piazza Gae Aulenti 3', 'citta' => 'Milano', 'cap' => '20154', 'provincia' => 'MI', 'telefono_ufficio' => '+39 02 888 2222', 'email' => 'condomini@unicredit.it', 'stato' => 'attivo' ] ]; foreach ($bancheData as $banca) { RubricaUniversale::create($banca + ['creato_da' => 1]); } $this->info("βœ… Creati " . count($bancheData) . " contatti banca"); } else { $this->info("🏦 Banche esistenti: {$banche}"); } // 5. Crea dati bancari se non esistono $contiBancari = $stabile->datiBancari()->count(); if ($contiBancari == 0) { $this->info('πŸ’³ Creazione dati bancari...'); $banca = RubricaUniversale::categoria('banca')->first(); if ($banca) { DatiBancari::create([ 'stabile_id' => $stabile->id, 'contatto_id' => $banca->id, 'tipo_conto' => 'corrente', 'denominazione_banca' => $banca->ragione_sociale, 'iban' => 'IT60 X054 2811 1010 0000 0123 456', 'intestazione_conto' => 'Condominio ' . $stabile->denominazione, 'data_saldo_iniziale' => '2025-01-01', 'saldo_iniziale' => 15000.00, 'valuta' => 'EUR', 'stato_conto' => 'attivo', 'creato_da' => 1 ]); $this->info("βœ… Conto bancario creato presso {$banca->ragione_sociale}"); } } else { $this->info("πŸ’³ Conti bancari esistenti: {$contiBancari}"); } $this->info(''); $this->info('πŸŽ‰ Dati di esempio creati con successo!'); $this->info('πŸ“‹ Ora puoi testare le nuove interfacce:'); $this->info(' β€’ Tabelle Millesimali (vista Excel)'); $this->info(' β€’ Dati Bancari (con rubrica universale)'); $this->info(' β€’ Documenti Collegati (con protocolli)'); return 0; } }