📋 AGGIUNTE PRINCIPALI: - Sistema contabile partita doppia con gestioni multiple - Documentazione implementazione completa - Models Laravel: GestioneContabile, MovimentoPartitaDoppia - Controller ContabilitaAvanzataController - Migration sistema contabile completo - Scripts automazione e trasferimento - Manuali utente e checklist implementazione 📊 FILES PRINCIPALI: - docs/10-IMPLEMENTAZIONE-CONTABILITA-PARTITA-DOPPIA-GESTIONI.md - SPECIFICHE-SISTEMA-CONTABILE-COMPLETO.md - netgescon-laravel/database/migrations/2025_07_20_100000_create_complete_accounting_system.php - netgescon-laravel/app/Models/GestioneContabile.php ✅ CHECKPOINT SICURO PER ROLLBACK
71 lines
1.5 KiB
PHP
71 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
|
|
/**
|
|
* Riga Contabile (Dare/Avere)
|
|
* Ogni movimento ha almeno due righe che si bilanciano
|
|
*/
|
|
class RigaContabile extends Model
|
|
{
|
|
use HasFactory;
|
|
|
|
protected $table = 'righe_contabili';
|
|
|
|
protected $fillable = [
|
|
'movimento_id',
|
|
'codice_conto',
|
|
'descrizione_riga',
|
|
'dare_avere',
|
|
'importo',
|
|
'unita_immobiliare_id',
|
|
'quota_millesimale',
|
|
'note_riga',
|
|
];
|
|
|
|
protected $casts = [
|
|
'importo' => 'decimal:2',
|
|
'quota_millesimale' => 'decimal:4',
|
|
];
|
|
|
|
/**
|
|
* Relazioni
|
|
*/
|
|
public function movimento(): BelongsTo
|
|
{
|
|
return $this->belongsTo(MovimentoPartitaDoppia::class, 'movimento_id');
|
|
}
|
|
|
|
public function pianoConti(): BelongsTo
|
|
{
|
|
return $this->belongsTo(PianoContiMasterplan::class, 'codice_conto', 'codice_conto');
|
|
}
|
|
|
|
public function unitaImmobiliare(): BelongsTo
|
|
{
|
|
return $this->belongsTo(UnitaImmobiliare::class, 'unita_immobiliare_id');
|
|
}
|
|
|
|
/**
|
|
* Scopes
|
|
*/
|
|
public function scopeDare($query)
|
|
{
|
|
return $query->where('dare_avere', 'dare');
|
|
}
|
|
|
|
public function scopeAvere($query)
|
|
{
|
|
return $query->where('dare_avere', 'avere');
|
|
}
|
|
|
|
public function scopeByConto($query, $codice_conto)
|
|
{
|
|
return $query->where('codice_conto', $codice_conto);
|
|
}
|
|
}
|