init commit
All checks were successful
build-api-image / build (push) Successful in 51s

This commit is contained in:
Antonio Lopes dos Santos
2026-08-04 16:52:02 -03:00
commit afec302c3e
11594 changed files with 1636728 additions and 0 deletions

View File

@@ -0,0 +1,179 @@
<?php
use App\Enums\Administracao\Modulo;
use App\Models\Administracao\Papel;
use App\Models\Cadastro\SujeitoAtencao\Lotacao;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class TransferPermissionsFromAmbulatorioAcolhimentoToAtendimentoEnfermagem_20250429150152 extends Seeder
{
public function run()
{
DB::transaction(function () {
$this->transferPermissions();
$this->deletePreAtendimento();
});
}
private function transferPermissions()
{
$permissoesAtendimentoEnfermagem = DB::table('administracao_permissao AS permissao')
->join('administracao_funcionalidade AS funcionalidade', 'funcionalidade.id', 'permissao.funcionalidade_id')
->join('administracao_modulo AS modulo', 'modulo.id', 'funcionalidade.modulo_id')
->where('modulo.identificador', Modulo::AMBULATORIO)
->where('funcionalidade.identificador', 'atendimento-enfermagem')
->select(
'permissao.id',
'permissao.crud_acao_id'
)
->get();
DB::table('administracao_papel AS papel')
->join('administracao_papel_permissao AS papel_permissao', 'papel_permissao.papel_id', 'papel.id')
->join('administracao_permissao AS permissao', 'permissao.id', 'papel_permissao.permissao_id')
->join('administracao_funcionalidade AS funcionalidade', 'funcionalidade.id', 'permissao.funcionalidade_id')
->join('administracao_modulo AS modulo', 'modulo.id', 'funcionalidade.modulo_id')
->where('modulo.identificador', Modulo::AMBULATORIO)
->where('funcionalidade.identificador', 'pre-atendimento')
->select(
'papel.id',
'papel.nome',
'permissao.crud_acao_id'
)
->orderBy('papel.id')
->orderBy('permissao.crud_acao_id')
->get()
->each(function ($papel) use ($permissoesAtendimentoEnfermagem) {
$papelModel = Papel::findOrFail($papel->id);
$permissaoAtendimentoEnfermagem = $permissoesAtendimentoEnfermagem->where('crud_acao_id', $papel->crud_acao_id)->first();
if (!$papelModel->permissoes()->where('id', $permissaoAtendimentoEnfermagem->id)->exists()) {
$papelModel->permissoes()->attach($permissaoAtendimentoEnfermagem->id);
}
});
DB::table('cadastro_lotacao AS lotacao')
->join('cadastro_usuario AS usuario', 'usuario.id', 'lotacao.usuario_id')
->join('cadastro_cidadao AS cidadao', 'cidadao.id', 'usuario.cidadao_id')
->join('sigtap.ocupacao AS ocupacao', 'ocupacao.id', 'lotacao.ocupacao_id')
->join('cadastro_infraestrutura AS infraestrutura', 'infraestrutura.id', 'lotacao.infraestrutura_id')
->join('cadastro_unidade AS unidade', 'unidade.id', 'infraestrutura.unidade_id')
->join('administracao_lotacao_permissao AS lotacao_permissao', 'lotacao_permissao.lotacao_id', 'lotacao.id')
->join('administracao_permissao AS permissao', 'permissao.id', 'lotacao_permissao.permissao_id')
->join('administracao_funcionalidade AS funcionalidade', 'funcionalidade.id', 'permissao.funcionalidade_id')
->join('administracao_modulo AS modulo', 'modulo.id', 'funcionalidade.modulo_id')
->where('modulo.identificador', Modulo::AMBULATORIO)
->where('funcionalidade.identificador', 'pre-atendimento')
->select(
'lotacao.id',
'unidade.nome_fantasia AS unidade',
'infraestrutura.nome AS infraestrutura',
'cidadao.nome AS usuario',
'ocupacao.nome',
'permissao.crud_acao_id'
)
->orderBy('lotacao.id')
->orderBy('permissao.crud_acao_id')
->get()
->each(function ($lotacao) use ($permissoesAtendimentoEnfermagem) {
$lotacaoModel = Lotacao::findOrFail($lotacao->id);
$permissaoAtendimentoEnfermagem = $permissoesAtendimentoEnfermagem->where('crud_acao_id', $lotacao->crud_acao_id)->first();
if (!$lotacaoModel->permissoes()->where('id', $permissaoAtendimentoEnfermagem->id)->exists()) {
$lotacaoModel->permissoes()->attach($permissaoAtendimentoEnfermagem->id);
}
});
}
private function deletePreAtendimento()
{
$modulo = 'ambulatorio';
$funcionalidade = 'pre-atendimento';
DB::table('administracao_lotacao_permissao_historico')
->whereExists(function($query) use ($modulo, $funcionalidade) {
$query->select(DB::raw(1))
->from('administracao_permissao')
->join('administracao_funcionalidade', 'administracao_funcionalidade.id', 'administracao_permissao.funcionalidade_id')
->join('administracao_modulo', 'administracao_modulo.id', 'administracao_funcionalidade.modulo_id')
->where('administracao_modulo.identificador', $modulo)
->where('administracao_funcionalidade.identificador', $funcionalidade)
->whereColumn('administracao_permissao.id', 'administracao_lotacao_permissao_historico.permissao_id');
})
->delete();
DB::table('administracao_papel_permissao_historico')
->whereExists(function($query) use ($modulo, $funcionalidade) {
$query->select(DB::raw(1))
->from('administracao_permissao')
->join('administracao_funcionalidade', 'administracao_funcionalidade.id', 'administracao_permissao.funcionalidade_id')
->join('administracao_modulo', 'administracao_modulo.id', 'administracao_funcionalidade.modulo_id')
->where('administracao_modulo.identificador', $modulo)
->where('administracao_funcionalidade.identificador', $funcionalidade)
->whereColumn('administracao_permissao.id', 'administracao_papel_permissao_historico.permissao_id');
})
->delete();
DB::table('administracao_lotacao_permissao')
->whereExists(function($query) use ($modulo, $funcionalidade) {
$query->select(DB::raw(1))
->from('administracao_permissao')
->join('administracao_funcionalidade', 'administracao_funcionalidade.id', 'administracao_permissao.funcionalidade_id')
->join('administracao_modulo', 'administracao_modulo.id', 'administracao_funcionalidade.modulo_id')
->where('administracao_modulo.identificador', $modulo)
->where('administracao_funcionalidade.identificador', $funcionalidade)
->whereColumn('administracao_permissao.id', 'administracao_lotacao_permissao.permissao_id');
})
->delete();
DB::table('administracao_papel_permissao')
->whereExists(function($query) use ($modulo, $funcionalidade) {
$query->select(DB::raw(1))
->from('administracao_permissao')
->join('administracao_funcionalidade', 'administracao_funcionalidade.id', 'administracao_permissao.funcionalidade_id')
->join('administracao_modulo', 'administracao_modulo.id', 'administracao_funcionalidade.modulo_id')
->where('administracao_modulo.identificador', $modulo)
->where('administracao_funcionalidade.identificador', $funcionalidade)
->whereColumn('administracao_permissao.id', 'administracao_papel_permissao.permissao_id');
})
->delete();
DB::table('administracao_permissao')
->whereExists(function($query) use ($modulo, $funcionalidade) {
$query->select(DB::raw(1))
->from('administracao_funcionalidade')
->join('administracao_modulo', 'administracao_modulo.id', 'administracao_funcionalidade.modulo_id')
->where('administracao_modulo.identificador', $modulo)
->where('administracao_funcionalidade.identificador', $funcionalidade)
->whereColumn('administracao_funcionalidade.id', 'administracao_permissao.funcionalidade_id');
})
->delete();
DB::table('administracao_menu')
->whereExists(function($query) use ($modulo, $funcionalidade) {
$query->select(DB::raw(1))
->from('administracao_funcionalidade')
->join('administracao_modulo', 'administracao_modulo.id', 'administracao_funcionalidade.modulo_id')
->where('administracao_modulo.identificador', $modulo)
->where('administracao_funcionalidade.identificador', $funcionalidade)
->whereColumn('administracao_funcionalidade.id', 'administracao_menu.funcionalidade_id');
})
->delete();
DB::table('administracao_funcionalidade')
->whereExists(function($query) use ($modulo) {
$query->select(DB::raw(1))
->from('administracao_modulo')
->where('administracao_modulo.identificador', $modulo)
->whereColumn('administracao_modulo.id', 'administracao_funcionalidade.modulo_id');
})
->where('administracao_funcionalidade.identificador', $funcionalidade)
->delete();
}
}

View File

@@ -0,0 +1,15 @@
<?php
use App\Enums\WebService\Laboratorio\Cliente\PedidoStatus;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class SetWebServiceLaboratorioClientePedidoStatusIdOnExameLaboratorialAgendamento_20250606092649 extends Seeder
{
public function run()
{
DB::table('exame_laboratorial_agendamento')->update([
'web_service_laboratorio_cliente_pedido_status_id' => PedidoStatus::AGUARDANDO_PROCESSAMENTO
]);
}
}