'date', 'importo_versato' => 'decimal:2' ]; const TIPO_RITENUTA_ACCONTO = 'ritenuta_acconto'; const TIPO_IVA = 'iva'; const TIPO_INPS = 'inps'; const TIPO_INAIL = 'inail'; const TIPO_ALTRO = 'altro'; const MODALITA_F24 = 'f24'; const MODALITA_BONIFICO = 'bonifico'; const MODALITA_BOLLETTINO = 'bollettino'; public function amministratore(): BelongsTo { return $this->belongsTo(Administrator::class); } public function fattura(): BelongsTo { return $this->belongsTo(FatturaFornitore::class); } public function scopeByTipo($query, $tipo) { return $query->where('tipo_versamento', $tipo); } public function scopeByPeriodo($query, $dataInizio, $dataFine) { return $query->whereBetween('data_versamento', [$dataInizio, $dataFine]); } public function scopeByAnno($query, $anno) { return $query->whereYear('data_versamento', $anno); } public function scopeByModalita($query, $modalita) { return $query->where('modalita_versamento', $modalita); } public function getTipoVersamentoLabelAttribute() { $labels = [ self::TIPO_RITENUTA_ACCONTO => 'Ritenuta d\'Acconto', self::TIPO_IVA => 'IVA', self::TIPO_INPS => 'INPS', self::TIPO_INAIL => 'INAIL', self::TIPO_ALTRO => 'Altro' ]; return $labels[$this->tipo_versamento] ?? $this->tipo_versamento; } public function getModalitaVersamentoLabelAttribute() { $labels = [ self::MODALITA_F24 => 'F24', self::MODALITA_BONIFICO => 'Bonifico', self::MODALITA_BOLLETTINO => 'Bollettino' ]; return $labels[$this->modalita_versamento] ?? $this->modalita_versamento; } }