belongsTo(Competencia::class); } public function ocupacoes() { return $this->belongsToMany(Ocupacao::class, 'procedimento_ocupacao'); } public function registros() { return $this->belongsToMany(Registro::class, 'procedimento_registro'); } public function detalhes() { return $this->belongsToMany(Detalhe::class, 'procedimento_detalhe'); } public function cids() { return $this->belongsToMany(Cid::class, 'procedimento_cid') ->as('procedimentoCid') ->withPivot('principal', 'competencia_id') ->withTimestamps(); } public function cidsPrincipais() { return $this->cids()->where('principal', 'S'); } public function cidsSecundarios() { return $this->cids()->where('principal', 'N'); } public function parametrizacaoProcedimento() { return $this->setConnection(app('config')->get('database.default')) ->hasOne(ParametrizacaoProcedimento::class, 'procedimento_codigo', 'codigo'); } public function getHasCidPrincipalAttribute() { return $this->cidsPrincipais()->get()->isNotEmpty(); } public function getHasCidSecundarioAttribute() { return $this->cidsSecundarios()->get()->isNotEmpty(); } }