. */ namespace Modules\Anagrafiche; use Common\SimpleModelTrait; use Illuminate\Database\Eloquent\Model; class Sede extends Model { use SimpleModelTrait; protected $table = 'an_sedi'; /** * The attributes that aren't mass assignable. * * @var array */ protected $guarded = []; /** * Crea una nuova sede. * * @return self */ public static function build(?Anagrafica $anagrafica = null, $is_sede_legale = false) { $model = parent::make(); if (!empty($is_sede_legale)) { $model->nomesede = 'Sede legale'; } $model->anagrafica()->associate($anagrafica); $model->save(); return $model; } public function anagrafica() { return $this->belongsTo(Anagrafica::class, 'idanagrafica'); } public function nazione() { return $this->belongsTo(Nazione::class, 'id_nazione'); } public function save(array $options = []) { $this->fixRappresentanteFiscale(); return parent::save($options); } protected function fixRappresentanteFiscale() { $rappresentante_fiscale = post('is_rappresentante_fiscale'); if (!empty($rappresentante_fiscale)) { self::where('idanagrafica', $this->idanagrafica) ->where('id', '!=', $this->id) ->update([ 'is_rappresentante_fiscale' => 0, ]); $this->attributes['is_rappresentante_fiscale'] = $rappresentante_fiscale; } } }