Skip to content

Commit

Permalink
Merge pull request #14784 from prefeiturasp/pre-prod
Browse files Browse the repository at this point in the history
Pre prod
  • Loading branch information
Jailsvs authored Jul 31, 2024
2 parents e9fb7b1 + 3188183 commit 0f9f4d8
Show file tree
Hide file tree
Showing 18 changed files with 248 additions and 87 deletions.
64 changes: 64 additions & 0 deletions scripts/V726__AJUSTE_QUESTOES_ENCAMINHAMENTO_PLANO_AEE.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
do $$
declare
questionarioId bigint;
questaoId bigint;
questaoComplementarId bigint;
opcaoRespostaId bigint;
questaoIdExistente bigint;
begin
update questao set nome = 'Com base nas observações e no estudo de caso, por qual(is) motivo(s) a sua unidade educacional está encaminhando o estudante ao Atendimento Educacional Especializado (AEE)?'
where id in (select q2.id from questao q2
inner join questionario q on q.id = q2.questionario_id
where q.tipo = 1 and q.nome like '%Seção 2%'
and q2.id not in (select oqc.questao_complementar_id from opcao_questao_complementar oqc)
and q2.nome_componente = 'PORQUE'
order by q2.ordem);

questionarioId := (select id from questionario q
where q.tipo = 1 and q.nome like '%Etapa 3%');

questaoIdExistente := (select q.id
from questao q
where q.questionario_id = questionarioId and q.nome_componente = 'OUTRAS_BARREIRAS');
if (questaoIdExistente IS NULL) then
insert into questao(questionario_id, ordem, nome, observacao, obrigatorio, tipo, opcionais, criado_em, criado_por, criado_rf, nome_componente, dimensao)
values(questionarioId, 4, 'Outras/Nenhuma - Justifique', '', false, 2, '', NOW(), 'SISTEMA', '0', 'OUTRAS_BARREIRAS', 12)
RETURNING id INTO questaoComplementarId;

questaoId := (select q2.id from questao q2
where q2.questionario_id = questionarioId
and q2.nome_componente = 'BARREIRAS_IDENTIFICADAS');
insert into opcao_resposta (questao_id, ordem, nome, observacao, criado_em, criado_por, criado_rf)
values(questaoId, 4, 'Outras/Nenhuma', '', NOW(), 'SISTEMA', '0')
RETURNING id INTO opcaoRespostaId;

insert into opcao_questao_complementar (opcao_resposta_id, questao_complementar_id, criado_em, criado_por, criado_rf)
values (opcaoRespostaId, questaoComplementarId, NOW(), 'SISTEMA', '0');
end if;

questionarioId := (select id from questionario q
where q.tipo = 2 and q.nome like '%Plano AEE%');

update questao set nome = 'Possui assistência de AVE (Auxiliar de vida escolar)'
where id in (select q2.id from questao q2
where q2.questionario_id = questionarioId
and q2.id not in (select oqc.questao_complementar_id from opcao_questao_complementar oqc)
and q2.nome_componente = 'POSSUI_AVE'
order by q2.ordem);

update questao set nome = 'Possui assistência de estagiário na turma'
where id in (select q2.id from questao q2
where q2.questionario_id = questionarioId
and q2.id not in (select oqc.questao_complementar_id from opcao_questao_complementar oqc)
and q2.nome_componente = 'POSSUI_ESTAGIARIO_TURMA'
order by q2.ordem);

questaoIdExistente := (select q.id
from questao q
where q.questionario_id = questionarioId and q.nome_componente = 'AVALIACAO_REESTRUTURACAO_PLANO_BIMESTRE');
if (questaoIdExistente IS NULL) then
insert into questao(questionario_id, ordem, nome, observacao, obrigatorio, tipo, opcionais, criado_em, criado_por, criado_rf, nome_componente, dimensao)
values(questionarioId, 14, 'Registre aqui a avaliação e reestruturação do plano no bimestre', '', false, 2, '', NOW(), 'SISTEMA', '0', 'AVALIACAO_REESTRUTURACAO_PLANO_BIMESTRE', 12);
end if;
end $$;

Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ await ObterResponsavel(planoAEE.ResponsavelPaaiId.Value) :
}

private async Task<bool> PodeAtribuirResponsavel(PlanoAEE planoAEE, Usuario usuario, Turma turma)
=> (planoAEE.Situacao == SituacaoPlanoAEE.AtribuicaoPAAI || planoAEE.Situacao == SituacaoPlanoAEE.ParecerPAAI)
&& await EhCoordenadorCEFAI(usuario, turma);
=> planoAEE.Situacao.EhUmDosValores(SituacaoPlanoAEE.AtribuicaoPAAI, SituacaoPlanoAEE.ParecerPAAI, SituacaoPlanoAEE.Validado, SituacaoPlanoAEE.Expirado)
&& await EhCoordenadorCEFAI(usuario, turma);

private async Task<bool> EhCoordenadorCEFAI(Usuario usuarioLogado, Turma turma)
{
Expand All @@ -74,7 +74,7 @@ private async Task<bool> UsuarioTemFuncaoCEFAINaDRE(Usuario usuarioLogado, strin
}

private bool PodeEditarParecerPAAI(PlanoAEE planoAEE, Usuario usuario)
=> planoAEE.Situacao == SituacaoPlanoAEE.ParecerPAAI
=> planoAEE.Situacao.EhUmDosValores(SituacaoPlanoAEE.ParecerPAAI, SituacaoPlanoAEE.Validado, SituacaoPlanoAEE.Expirado)
&& (planoAEE.ResponsavelPaaiId.GetValueOrDefault() == usuario.Id);

private async Task<bool> PodeEditarParecerCP(PlanoAEE planoAEE, Usuario usuario, Turma turma)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using MediatR;
using Microsoft.Extensions.Configuration;
using SME.SGP.Dominio;
using SME.SGP.Dominio.Constantes;
using SME.SGP.Dominio.Enumerados;
using SME.SGP.Infra;
using System;
Expand Down Expand Up @@ -85,7 +86,7 @@ private string ObterSiglaNomeComponente(string codigo, bool sigla = false)
private async Task<IEnumerable<ComponenteCurricularDto>> VerificaComponentesUe(Ue ue)
{
var componentesUe = await mediator.Send(new ObterComponentesCurricularesEOLPorTurmaECodigoUeQuery(null, ue.CodigoUe));
var componentesNotificacao = new[] { "1060", "1061", "1322" };
var componentesNotificacao = new[] { "1060", "1061", ComponentesCurricularesConstants.CODIGO_PAP_RECUPERACAO_APRENDIZAGENS.ToString() };

return componentesUe.Where(a => componentesNotificacao.Contains(a.Codigo.ToString()));
}
Expand Down Expand Up @@ -113,7 +114,7 @@ private async Task<Guid> SolicitarRelatorioBimestral(int bimestre, Ue ue)
Modalidade = Modalidade.Fundamental,
CodigoDre = ue.Dre.CodigoDre,
CodigoUe = ue.CodigoUe,
ComponentesCurriculares = new List<string>() { "1060", "1061", "1322" },
ComponentesCurriculares = new List<string>() { "1060", "1061", ComponentesCurricularesConstants.CODIGO_PAP_RECUPERACAO_APRENDIZAGENS.ToString() },
TipoRelatorio = TipoRelatorioFaltasFrequencia.Ano,
Condicao = CondicoesRelatorioFaltasFrequencia.TodosEstudantes,
TipoFormatoRelatorio = TipoFormatoRelatorio.Pdf,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public AtribuirResponsavelPlanoAEECommandHandler(IMediator mediator, IRepositori

public async Task<bool> Handle(AtribuirResponsavelPlanoAEECommand request, CancellationToken cancellationToken)
{
request.PlanoAEE.Situacao = Dominio.Enumerados.SituacaoPlanoAEE.ParecerPAAI;
request.PlanoAEE.Situacao = request.PlanoAEE.ObterSituacaoAoAtribuirResponsavelPAAI();
request.PlanoAEE.ResponsavelPaaiId = await mediator.Send(new ObterUsuarioIdPorRfOuCriaQuery(request.ResponsavelRF));

return await SalvarGerarPendenciaPaai(request, request.PlanoAEE);
Expand Down Expand Up @@ -54,6 +54,9 @@ private async Task<bool> SalvarGerarPendenciaPaai(AtribuirResponsavelPlanoAEECom

private async Task VerificaGeracaoPendenciaPAAI(PlanoAEE planoAEE, Turma turma)
{
if (planoAEE.EhSituacaoExpiradoValidado())
return;

await ExcluirPendenciaCEFAI(planoAEE);

if (!await ParametroGeracaoPendenciaAtivo() || await AtribuidoAoMesmoUsuario(planoAEE))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,24 +34,16 @@ public async Task<bool> Handle(RemoverResponsavelPlanoAEECommand request, Cancel
if (turma.EhNulo())
throw new NegocioException(MensagemNegocioTurma.TURMA_NAO_ENCONTRADA);

planoAee.Situacao = Dominio.Enumerados.SituacaoPlanoAEE.AtribuicaoPAAI;
planoAee.Situacao = planoAee.ObterSituacaoAoRemoverResponsavelPAAI();

planoAee.ResponsavelPaaiId = null;

var pendenciaPlanoAEE = await mediator.Send(new ObterUltimaPendenciaPlanoAEEQuery(planoAee.Id));


unitOfWork.IniciarTransacao();

try
{
await repositorioPlanoAee.SalvarAsync(planoAee);

if (pendenciaPlanoAEE.NaoEhNulo())
await mediator.Send(new ExcluirPendenciaPlanoAEECommand(planoAee.Id));

if (await ParametroGeracaoPendenciaAtivo())
await mediator.Send(new GerarPendenciaValidacaoPlanoAEECommand(planoAee.Id, PerfilUsuario.CEFAI));

await VerificaGeracaoPendenciaCEFAI(planoAee);
unitOfWork.PersistirTransacao();
}
catch
Expand All @@ -62,7 +54,21 @@ public async Task<bool> Handle(RemoverResponsavelPlanoAEECommand request, Cancel

return planoAee.Id != 0;
}


private async Task VerificaGeracaoPendenciaCEFAI(PlanoAEE planoAEE)
{
if (planoAEE.EhSituacaoExpiradoValidado())
return;

var pendenciaPlanoAEE = await mediator.Send(new ObterUltimaPendenciaPlanoAEEQuery(planoAEE.Id));
if (pendenciaPlanoAEE.NaoEhNulo())
await mediator.Send(new ExcluirPendenciaPlanoAEECommand(planoAEE.Id));

if (await ParametroGeracaoPendenciaAtivo())
await mediator.Send(new GerarPendenciaValidacaoPlanoAEECommand(planoAEE.Id, PerfilUsuario.CEFAI));
}


private async Task<bool> ParametroGeracaoPendenciaAtivo()
{
var parametro = await mediator.Send(new ObterParametroSistemaPorTipoEAnoQuery(TipoParametroSistema.GerarPendenciasPlanoAEE, DateTime.Today.Year));
Expand Down
6 changes: 2 additions & 4 deletions src/SME.SGP.Aplicacao/Consultas/ConsultasDisciplina.cs
Original file line number Diff line number Diff line change
Expand Up @@ -215,10 +215,8 @@ private bool PossuiObjetivos(
ComponenteCurricularEol componenteEOL,
IEnumerable<ComponenteCurricularJurema> componentesCurricularesJurema)
{
const long PAP_RECUPERACAO_APRENDIZAGENS = 1322;
const long PAP_PROJETO_COLABORATIVO = 1770;

var componentesPAPs = new long[] { PAP_RECUPERACAO_APRENDIZAGENS, PAP_PROJETO_COLABORATIVO };

var componentesPAPs = ComponentesCurricularesConstants.IDS_COMPONENTES_CURRICULARES_PAP_NOVO.Select(i => (long)i).ToArray();

return turma.AnoLetivo >= anoInicioSgp
&& (turma.TipoTurma != TipoTurma.Programa || componentesPAPs.Contains(componenteEOL.Codigo))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public class ObterInstrucoesModalQueryHandler : IRequestHandler<ObterInstrucoesM
{
public Task<string> Handle(ObterInstrucoesModalQuery request, CancellationToken cancellationToken)
{
var instruoesModal = @"<b>O preenchimento deste encaminhamento é exclusivo para o público da Educação Especial. Segundo as normativas do município, o Atendimento Educação Especializado (AEE) é um serviço a ser ofertado exclusivamente para Estudantes/Crianças nos seguintes casos:</b> <br/><br/><p>
var instruoesModal = @"<b>O preenchimento deste encaminhamento deve ocorrer a partir da observação do estudante e do estudo de caso. Este documento trata exclusivamente do público da Educação Especial. Segundo as normativas do município, o Atendimento Educação Especializado (AEE) é um serviço a ser ofertado exclusivamente para Estudantes/Crianças nos seguintes casos:</b> <br/><br/><p>
1 - Com Deficiência <br/>
2 - Com Transtornos Globais do Desenvolvimento (TGD) <br/>
3 - Com Altas Habilidades / Superdotação</p>";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Intrinsics.X86;
using System.Threading;
using System.Threading.Tasks;

Expand All @@ -22,7 +23,7 @@ public class ObterCodigosAlunosSinalizadosPrioridadeMapeamentoEstudanteQueryHand
private readonly IMediator mediator;
private readonly IRepositorioMapeamentoEstudante repositorioMapeamento;

private const string HIPOTESE_ESCRITA_ALFABETICO = "A";
private readonly string[] HIPOTESES_ESCRITA_NAO_ALFABETICAS = new string[] { "PS", "SSV", "SCV", "SA" };
private const string RESULTADO_ABAIXO_BASICO_PROVA_SP = "Abaixo do básico";

public ObterCodigosAlunosSinalizadosPrioridadeMapeamentoEstudanteQueryHandler(IRepositorioPlanoAEE repositorioPlanoAEE,
Expand Down Expand Up @@ -56,8 +57,7 @@ public async Task<AlunoSinalizadoPrioridadeMapeamentoEstudanteDto[]> Handle(Obte
{
var sondagem = await mediator.Send(new ObterSondagemLPAlunoQuery(turma.CodigoTurma, aluno.CodigoAluno));
var avaliacoesExternasProvaSP = await mediator.Send(new ObterAvaliacoesExternasProvaSPAlunoQuery(aluno.CodigoAluno, turma.AnoLetivo-1));
if (sondagem.ObterHipoteseEscrita(request.Bimestre) != HIPOTESE_ESCRITA_ALFABETICO
&& !string.IsNullOrEmpty(sondagem.ObterHipoteseEscrita(request.Bimestre)))
if (HIPOTESES_ESCRITA_NAO_ALFABETICAS.Contains(sondagem.ObterHipoteseEscrita(request.Bimestre)))
alunosSondagemInsuficiente.Add(aluno.CodigoAluno);
if (avaliacoesExternasProvaSP.Any(psp => psp.Nivel.ToUpper() == RESULTADO_ABAIXO_BASICO_PROVA_SP.ToUpper()))
alunosProvaSPInsuficiente.Add(aluno.CodigoAluno);
Expand Down
Loading

0 comments on commit 0f9f4d8

Please sign in to comment.