86 lines
1.8 KiB
PHP
Executable File
86 lines
1.8 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
|
|
class RipartizioneSpesa extends Model
|
|
{
|
|
use HasFactory;
|
|
|
|
protected $table = 'ripartizioni_spese';
|
|
|
|
protected $fillable = [
|
|
'unita_immobiliare_id',
|
|
'voce_spesa_id',
|
|
'gestione_id',
|
|
'importo_spettante',
|
|
'millesimi_applicati',
|
|
'tipo_calcolo',
|
|
'anno_competenza'
|
|
];
|
|
|
|
protected $casts = [
|
|
'importo_spettante' => 'decimal:2',
|
|
'millesimi_applicati' => 'decimal:3'
|
|
];
|
|
|
|
/**
|
|
* Relazione con unità immobiliare
|
|
*/
|
|
public function unitaImmobiliare(): BelongsTo
|
|
{
|
|
return $this->belongsTo(UnitaImmobiliare::class, 'unita_immobiliare_id');
|
|
}
|
|
|
|
/**
|
|
* Relazione con voce di spesa
|
|
*/
|
|
public function voceSpesa(): BelongsTo
|
|
{
|
|
return $this->belongsTo(VoceSpesaMillesimale::class, 'voce_spesa_id');
|
|
}
|
|
|
|
/**
|
|
* Relazione con gestione
|
|
*/
|
|
public function gestione(): BelongsTo
|
|
{
|
|
return $this->belongsTo(GestioneCondominiale::class, 'gestione_id');
|
|
}
|
|
|
|
/**
|
|
* Scope per unità
|
|
*/
|
|
public function scopeByUnita($query, $unitaId)
|
|
{
|
|
return $query->where('unita_immobiliare_id', $unitaId);
|
|
}
|
|
|
|
/**
|
|
* Scope per anno
|
|
*/
|
|
public function scopeByAnno($query, $anno)
|
|
{
|
|
return $query->where('anno_competenza', $anno);
|
|
}
|
|
|
|
/**
|
|
* Scope per gestione
|
|
*/
|
|
public function scopeByGestione($query, $gestioneId)
|
|
{
|
|
return $query->where('gestione_id', $gestioneId);
|
|
}
|
|
|
|
/**
|
|
* Scope per tipo calcolo
|
|
*/
|
|
public function scopeByTipoCalcolo($query, $tipo)
|
|
{
|
|
return $query->where('tipo_calcolo', $tipo);
|
|
}
|
|
}
|