'boolean', 'attivo' => 'boolean', 'default_ripartizioni' => 'json', ]; /** * Relazioni */ public function righeContabili(): HasMany { return $this->hasMany(RigaContabile::class, 'codice_conto', 'codice_conto'); } /** * Scopes */ public function scopeAttivi($query) { return $query->where('attivo', true); } public function scopeByTipologia($query, $tipologia) { return $query->where('tipologia_conto', $tipologia); } public function scopeByCategoria($query, $categoria) { return $query->where('categoria_contabile', $categoria); } public function scopeRipartibili($query) { return $query->where('ripartibile', true); } /** * Metodi helper */ public static function getContiByCategoria($categoria) { return static::attivi()->byCategoria($categoria)->get(); } public static function getContiCosti() { return static::attivi()->byTipologia('costo')->get(); } public static function getContiRicavi() { return static::attivi()->byTipologia('ricavo')->get(); } public static function getContiPatrimoniali() { return static::attivi()->whereIn('tipologia_conto', ['attivo', 'passivo', 'patrimoniale'])->get(); } }