198 lines
5.8 KiB
PHP
198 lines
5.8 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders\Base;
|
|
|
|
use App\Models\Administracao\Modulo;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class FuncionalidadeSub
|
|
{
|
|
public static function run()
|
|
{
|
|
DB::table('administracao_funcionalidade_funcionalidade_sub')->truncate();
|
|
|
|
self::administracao();
|
|
self::cadastro();
|
|
self::prontoAtendimento();
|
|
self::almoxarifado();
|
|
self::farmacia();
|
|
}
|
|
|
|
public static function administracao()
|
|
{
|
|
$modulo = 'administracao';
|
|
|
|
$funcionalidades = [
|
|
'permissao' => [
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'usuario',
|
|
],
|
|
],
|
|
];
|
|
|
|
self::add($modulo, $funcionalidades);
|
|
}
|
|
|
|
public static function cadastro()
|
|
{
|
|
$modulo = 'cadastro';
|
|
|
|
$funcionalidades = [
|
|
'unidade' => [
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'setor',
|
|
],
|
|
],
|
|
'logradouro' => [
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'bairro',
|
|
],
|
|
],
|
|
'paciente' => [
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'convenio-medico',
|
|
],
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'logradouro',
|
|
],
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'loteamento',
|
|
],
|
|
],
|
|
'usuario' => [
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'convenio-medico',
|
|
],
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'logradouro',
|
|
],
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'loteamento',
|
|
],
|
|
],
|
|
];
|
|
|
|
self::add($modulo, $funcionalidades);
|
|
}
|
|
|
|
public static function prontoAtendimento()
|
|
{
|
|
$modulo = 'pronto-atendimento';
|
|
|
|
$funcionalidades = [
|
|
'atendimento-medico' => [
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'alergia',
|
|
],
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'medicamento',
|
|
],
|
|
],
|
|
'atendimento-recepcao' => [
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'unidade-externa',
|
|
],
|
|
],
|
|
'atendimento-triagem' => [
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'alergia',
|
|
],
|
|
],
|
|
];
|
|
|
|
self::add($modulo, $funcionalidades);
|
|
}
|
|
|
|
public static function almoxarifado()
|
|
{
|
|
$modulo = 'almoxarifado';
|
|
|
|
$funcionalidades = [
|
|
'entrada' => [
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'fabricante',
|
|
],
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'fornecedor',
|
|
],
|
|
],
|
|
'entrada-inicial' => [
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'fabricante',
|
|
],
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'fornecedor',
|
|
],
|
|
],
|
|
];
|
|
|
|
self::add($modulo, $funcionalidades);
|
|
}
|
|
|
|
public static function farmacia()
|
|
{
|
|
$modulo = 'farmacia';
|
|
|
|
$funcionalidades = [
|
|
'dispensacao' => [
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'usuario',
|
|
],
|
|
],
|
|
'alto-custo-gerenciamento-processo' => [
|
|
[
|
|
'identificador_modulo' => 'cadastro',
|
|
'identificador_funcionalidade' => 'usuario',
|
|
],
|
|
],
|
|
];
|
|
|
|
self::add($modulo, $funcionalidades);
|
|
}
|
|
|
|
public static function add($modulo, $funcionalidades)
|
|
{
|
|
$modulo = Modulo::where('identificador', $modulo)->firstOrFail();
|
|
|
|
foreach ($funcionalidades as $identificadorFuncionalidade => $funcionalidadesSub) {
|
|
|
|
$funcionalidade = $modulo->funcionalidades()
|
|
->where('identificador', $identificadorFuncionalidade)
|
|
->firstOrFail();
|
|
|
|
$idsFuncionalidadesSub = [];
|
|
|
|
foreach ($funcionalidadesSub as $funcionalidadeSub) {
|
|
|
|
$moduloSub = Modulo::where('identificador', $funcionalidadeSub['identificador_modulo'])
|
|
->firstOrFail();
|
|
|
|
$idsFuncionalidadesSub[] = ($moduloSub->funcionalidades()
|
|
->where('identificador', $funcionalidadeSub['identificador_funcionalidade'])
|
|
->firstOrFail()
|
|
)->id;
|
|
}
|
|
|
|
$funcionalidade->funcionalidadesSub()->sync($idsFuncionalidadesSub);
|
|
}
|
|
}
|
|
}
|