102 lines
2.4 KiB
PHP
102 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace App\Models\Cadastro\Grupo;
|
|
|
|
use App\Models\Almoxarifado\ParametrizacaoControleEstoqueGrupo;
|
|
use App\Models\Almoxarifado\ParametrizacaoPortalDivulgacaoGrupo;
|
|
use App\Models\Almoxarifado\ParametrizacaoDispensacaoMateriais;
|
|
use App\Models\Cadastro\Material\Material;
|
|
use App\Models\Cadastro\Subgrupo\Subgrupo;
|
|
use App\Models\ExameImagem\Agendamento\Agendamento;
|
|
use App\Models\Model;
|
|
use App\Models\Regulacao\Tipo as RegulacaoTipo;
|
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
|
|
class Grupo extends Model
|
|
{
|
|
use SoftDeletes;
|
|
|
|
protected $table = 'cadastro_grupo';
|
|
|
|
protected $fillable = [
|
|
'nome',
|
|
'grupo_tipo_id',
|
|
'impressao_mapa_producao',
|
|
'regulacao_tipo_id',
|
|
];
|
|
|
|
protected $casts = [
|
|
'impressao_mapa_producao' => 'boolean',
|
|
];
|
|
|
|
protected $hidden = [
|
|
'created_at',
|
|
'created_lotacao_id',
|
|
'created_centro_custo_id',
|
|
'updated_at',
|
|
'updated_lotacao_id',
|
|
'updated_centro_custo_id',
|
|
'deleted_at',
|
|
'deleted_lotacao_id',
|
|
'deleted_centro_custo_id',
|
|
];
|
|
|
|
protected $appends = [
|
|
'is_regulado',
|
|
];
|
|
|
|
public function grupoTipo()
|
|
{
|
|
return $this->belongsTo(GrupoTipo::class);
|
|
}
|
|
|
|
public function regulacaoTipo()
|
|
{
|
|
return $this->belongsTo(RegulacaoTipo::class);
|
|
}
|
|
|
|
public function agendamentosExameImagem()
|
|
{
|
|
return $this->hasMany(Agendamento::class);
|
|
}
|
|
|
|
public function subgrupos()
|
|
{
|
|
return $this->hasMany(Subgrupo::class);
|
|
}
|
|
|
|
public function materiais()
|
|
{
|
|
return $this->hasMany(Material::class);
|
|
}
|
|
|
|
public function almoxarifadoParametrizacoesControleEstoqueGrupo()
|
|
{
|
|
return $this->hasMany(ParametrizacaoControleEstoqueGrupo::class);
|
|
}
|
|
|
|
public function almoxarifadoParametrizacoesPortalDivulgacaoGrupo()
|
|
{
|
|
return $this->hasMany(ParametrizacaoPortalDivulgacaoGrupo::class);
|
|
}
|
|
|
|
public function getIsReguladoAttribute()
|
|
{
|
|
return !is_null($this->regulacao_tipo_id);
|
|
}
|
|
|
|
public function almoxarifadoParametrizacoesDispensarMateriais()
|
|
{
|
|
return $this->hasMany(ParametrizacaoDispensacaoMateriais::class);
|
|
}
|
|
|
|
public function getIsAllowedToDeleteAttribute()
|
|
{
|
|
return $this->hasNoOne([
|
|
'subgrupos',
|
|
'materiais',
|
|
'almoxarifadoParametrizacoesControleEstoqueGrupo',
|
|
]);
|
|
}
|
|
}
|