'date', 'data_fine' => 'date', 'data_approvazione' => 'date', 'preventivo_approvato' => 'boolean', 'created_at' => 'datetime', 'updated_at' => 'datetime', 'deleted_at' => 'datetime', ]; /** * Relazione con Stabile */ public function stabile() { return $this->belongsTo(Stabile::class, 'stabile_id', 'id'); } /** * Relazione con Preventivi */ public function preventivi() { return $this->hasMany(Preventivo::class, 'gestione_id', 'id_gestione'); } /** * Relazione con Movimenti Contabili */ public function movimentiContabili() { return $this->hasMany(MovimentoContabile::class, 'gestione_id', 'id_gestione'); } /** * Relazione con Rate */ public function rate() { return $this->hasMany(Rata::class, 'gestione_id', 'id_gestione'); } /** * Scope per gestioni attive */ public function scopeAttive($query) { return $query->where('stato', 'attiva'); } /** * Scope per tipo gestione */ public function scopeTipo($query, $tipo) { return $query->where('tipo_gestione', $tipo); } /** * Accessor per il nome completo della gestione */ public function getNomeCompletoAttribute() { return $this->anno_gestione . ' - ' . ucfirst($this->tipo_gestione) . ($this->descrizione ? ' (' . $this->descrizione . ')' : ''); } }