. */ namespace Plugins\AssicurazioneCrediti; use Common\SimpleModelTrait; use Illuminate\Database\Eloquent\Model; use Modules\Anagrafiche\Anagrafica; use Modules\Scadenzario\Scadenza; /* * Classe per la gestione delle assicurazioni crediti. * * @since 2.4.11 */ class AssicurazioneCrediti extends Model { use SimpleModelTrait; protected $table = 'an_assicurazione_crediti'; /** * Registra una nuova assicurazione crediti. * * @return self */ public static function build(?Anagrafica $anagrafica = null, $fido_assicurato = null, $data_inizio = null, $data_fine = null) { $model = new static(); $model->anagrafica()->associate($anagrafica); $model->data_inizio = $data_inizio; $model->data_fine = $data_fine; $model->fido_assicurato = $fido_assicurato; $model->save(); return $model; } /** * Metodo per ricalcolare il totale utlizzato della dichiarazione. */ public function fixTotale() { $scadenze = Scadenza::where('idanagrafica', $this->id_anagrafica)->where('scadenza', '>=', $this->data_inizio)->where('scadenza', '<=', $this->data_fine)->get(); $totale = 0; foreach ($scadenze as $scadenza) { $totale += $scadenza->da_pagare - $scadenza->pagato; } $this->totale = $totale; } // Relazioni Eloquent public function anagrafica() { return $this->belongsTo(Anagrafica::class, 'id_anagrafica'); } }