netgescon-master/_BACKUP_OLD_netgescon-laravel_INACTIVE/app/Console/Seeders/MovimentiContabiliSeeder.php

122 lines
4.6 KiB
PHP

<?php
namespace App\Console\Seeders;
use App\Models\MovimentoContabile;
use App\Models\Stabile;
use App\Models\User;
use Illuminate\Database\Seeder;
use Carbon\Carbon;
class MovimentiContabiliSeeder extends Seeder
{
public function run()
{
// Recupera uno stabile e un utente per i test
$stabile = Stabile::first();
$user = User::first();
if (!$stabile || !$user) {
$this->command->error('Mancano Stabili o Utenti. Esegui prima gli altri seeder.');
return;
}
$this->command->info('Creazione movimenti contabili di test...');
// Movimenti in Prima Nota
$movimentiPrimaNota = [
[
'stabile_id' => $stabile->id, // Usa 'id' invece di 'id_stabile'
'data_registrazione' => now()->subDays(5),
'descrizione' => 'Fattura elettrica Enel - Gen 2025',
'tipo_movimento' => 'uscita',
'categoria_movimento' => 'ordinario',
'importo_totale' => 156.78,
'iva' => 33.92,
'importo_netto' => 122.86,
'stato_movimento' => 'prima_nota',
'numero_documento' => 'ENEL2025001',
'protocollo' => 'PROT001/2025',
'creato_da' => $user->id,
],
[
'stabile_id' => $stabile->id, // Usa 'id' invece di 'id_stabile'
'data_registrazione' => now()->subDays(3),
'descrizione' => 'Fattura gas Eni - Gen 2025',
'tipo_movimento' => 'uscita',
'categoria_movimento' => 'ordinario',
'importo_totale' => 89.45,
'iva' => 19.48,
'importo_netto' => 69.97,
'stato_movimento' => 'prima_nota',
'numero_documento' => 'ENI2025001',
'protocollo' => 'PROT002/2025',
'creato_da' => $user->id,
],
[
'stabile_id' => $stabile->id, // Usa 'id' invece di 'id_stabile'
'data_registrazione' => now()->subDays(2),
'descrizione' => 'Rata condominiale Gennaio 2025',
'tipo_movimento' => 'entrata',
'categoria_movimento' => 'ordinario',
'importo_totale' => 2340.00,
'iva' => 0.00,
'importo_netto' => 2340.00,
'stato_movimento' => 'prima_nota',
'protocollo' => 'PROT003/2025',
'creato_da' => $user->id,
]
];
// Movimenti già Confermati
$movimentiConfermati = [
[
'stabile_id' => $stabile->id, // Usa 'id' invece di 'id_stabile'
'data_registrazione' => now()->subDays(10),
'descrizione' => 'Pulizia scale - Dicembre 2024',
'tipo_movimento' => 'uscita',
'categoria_movimento' => 'ordinario',
'importo_totale' => 250.00,
'iva' => 55.00,
'importo_netto' => 195.00,
'stato_movimento' => 'confermato',
'data_conferma' => now()->subDays(8),
'confermato_da' => $user->id,
'numero_documento' => 'PULIZIE001',
'protocollo' => 'PROT020/2024',
'creato_da' => $user->id,
],
[
'stabile_id' => $stabile->id, // Usa 'id' invece di 'id_stabile'
'data_registrazione' => now()->subDays(15),
'descrizione' => 'Riparazione ascensore',
'tipo_movimento' => 'uscita',
'categoria_movimento' => 'straordinario',
'importo_totale' => 850.00,
'iva' => 187.00,
'importo_netto' => 663.00,
'stato_movimento' => 'confermato',
'data_conferma' => now()->subDays(12),
'confermato_da' => $user->id,
'numero_documento' => 'ASC2024001',
'protocollo' => 'PROT019/2024',
'creato_da' => $user->id,
]
];
// Crea movimenti in prima nota
foreach ($movimentiPrimaNota as $movimento) {
MovimentoContabile::create($movimento);
}
// Crea movimenti confermati
foreach ($movimentiConfermati as $movimento) {
MovimentoContabile::create($movimento);
}
$this->command->info('Creati ' . count($movimentiPrimaNota) . ' movimenti in Prima Nota');
$this->command->info('Creati ' . count($movimentiConfermati) . ' movimenti Confermati');
$this->command->info('Seeder MovimentiContabili completato!');
}
}