Skip to content

Commit

Permalink
Adicionar a opção semipresencial do campo tipo de mediação didático p…
Browse files Browse the repository at this point in the history
…edagógico do cadastro da turma
  • Loading branch information
robertfsousa committed Apr 11, 2024
1 parent 0a0721d commit 2f03628
Show file tree
Hide file tree
Showing 8 changed files with 53 additions and 10 deletions.
4 changes: 2 additions & 2 deletions app/Models/Educacenso/Registro20.php
Original file line number Diff line number Diff line change
Expand Up @@ -283,15 +283,15 @@ public function getTipoMediacaoValidaParaModalidadeCurso()

break;
case ModalidadeCurso::EDUCACAO_ESPECIAL:
return "{$tiposMediacao[App_Model_TipoMediacaoDidaticoPedagogico::PRESENCIAL]}";
return "{$tiposMediacao[App_Model_TipoMediacaoDidaticoPedagogico::PRESENCIAL]} ou {$tiposMediacao[App_Model_TipoMediacaoDidaticoPedagogico::SEMIPRESENCIAL]}";

break;
case ModalidadeCurso::EJA:
return "{$tiposMediacao[App_Model_TipoMediacaoDidaticoPedagogico::PRESENCIAL]} ou {$tiposMediacao[App_Model_TipoMediacaoDidaticoPedagogico::EDUCACAO_A_DISTANCIA]}";

break;
case ModalidadeCurso::EDUCACAO_PROFISSIONAL:
return "{$tiposMediacao[App_Model_TipoMediacaoDidaticoPedagogico::PRESENCIAL]} ou {$tiposMediacao[App_Model_TipoMediacaoDidaticoPedagogico::EDUCACAO_A_DISTANCIA]}";
return "{$tiposMediacao[App_Model_TipoMediacaoDidaticoPedagogico::PRESENCIAL]}, {$tiposMediacao[App_Model_TipoMediacaoDidaticoPedagogico::SEMIPRESENCIAL]} ou {$tiposMediacao[App_Model_TipoMediacaoDidaticoPedagogico::EDUCACAO_A_DISTANCIA]}";

break;
}
Expand Down
1 change: 1 addition & 0 deletions app/Models/Educacenso/Registro60.php
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,7 @@ public function transportePublicoRequired()
{
$tiposMediacaoPresencial = [
TipoMediacaoDidaticoPedagogico::PRESENCIAL,
TipoMediacaoDidaticoPedagogico::SEMIPRESENCIAL,
];

return $this->tipoAtendimentoTurma == TipoAtendimentoTurma::ESCOLARIZACAO
Expand Down
19 changes: 19 additions & 0 deletions app/Rules/CheckMandatoryCensoFields.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
use App\Models\LegacySchool;
use App_Model_LocalFuncionamentoDiferenciado;
use App_Model_TipoMediacaoDidaticoPedagogico;
use iEducar\Modules\Educacenso\Model\EstruturaCurricular;
use iEducar\Modules\Educacenso\Model\FormaOrganizacaoTurma;
use iEducar\Modules\Educacenso\Model\ModalidadeCurso;
use iEducar\Modules\Educacenso\Model\TipoAtendimentoTurma;
Expand Down Expand Up @@ -216,6 +217,14 @@ private function validaEtapaEducacenso($params)
return false;
}

if ($params->tipo_mediacao_didatico_pedagogico == App_Model_TipoMediacaoDidaticoPedagogico::SEMIPRESENCIAL &&
isset($params->etapa_educacenso) &&
!in_array($params->etapa_educacenso, [69, 70, 71, 72])) {
$this->message = 'Quando o campo: Tipo de mediação didático-pedagógica é: Semipresencial, o campo: Etapa de ensino deve ser uma das seguintes opções: 69, 70, 71 ou 72.';

return false;
}

if ($params->tipo_mediacao_didatico_pedagogico == App_Model_TipoMediacaoDidaticoPedagogico::EDUCACAO_A_DISTANCIA &&
isset($params->etapa_educacenso) &&
!in_array((int) $params->etapa_educacenso, [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 64, 70, 71, 73, 74, 67, 68], true)) {
Expand Down Expand Up @@ -339,6 +348,16 @@ public function validaCampoEstruturaCurricular(mixed $params)
return false;
}

if (
is_array($estruturaCurricular) &&
!in_array(EstruturaCurricular::FORMACAO_GERAL_BASICA, $estruturaCurricular, true) &&
$params->tipo_mediacao_didatico_pedagogico == App_Model_TipoMediacaoDidaticoPedagogico::SEMIPRESENCIAL
) {
$this->message = 'Quando o campo: <b>Tipo de mediação didático-pedagógica</b> é: <b>Semipresencial</b>, o campo: <b>Estrutura curricular</b> deve ter a opção <b>Formação geral básica</b> informada.';

return false;
}

$etapaEnsinoCanNotContainsWithFormacaoGeralBasica = [1, 2, 3, 39, 40, 64, 68];
if (is_array($estruturaCurricular) &&
in_array(1, $estruturaCurricular, true) &&
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@
class App_Model_TipoMediacaoDidaticoPedagogico extends CoreExt_Enum
{
const PRESENCIAL = 1;

const SEMIPRESENCIAL = 2;
const EDUCACAO_A_DISTANCIA = 3;

protected $_data = [
self::PRESENCIAL => 'Presencial',
self::SEMIPRESENCIAL => 'Semipresencial',
self::EDUCACAO_A_DISTANCIA => 'Educação a distância',
];

Expand Down
31 changes: 26 additions & 5 deletions ieducar/modules/Api/Views/EducacensoAnaliseController.php
Original file line number Diff line number Diff line change
Expand Up @@ -892,7 +892,7 @@ protected function analisaEducacensoRegistro20()
if (is_null($turma->classeComLinguaBrasileiraSinais)) {
$mensagem[] = [
'text' => "Dados para formular o registro 20 da escola {$turma->nomeEscola} não encontrados. Informe se a turma {$nomeTurma} é de ensino desenvolvido com a Língua Brasileira de Sinais.",
'path' => '(Escola > Cadastros > Turmas > Editar > Aba: Dados adicionais > Campo: Classe com ensino desenvolvido com a Língua Brasileira de Sinais – Libras como primeira língua e a língua portuguesa de forma escrita como segunda língua (bilingue para surdos))',
'path' => '(Escola > Cadastros > Turmas > Editar > Aba: Dados adicionais > Campo: Classe bilíngue de surdos tendo a Libras (Língua Brasileira de Sinais) como língua de instrução, ensino, comunicação e interação e a língua portuguesa escrita como segunda língua)',
'linkPath' => "/intranet/educar_turma_cad.php?cod_turma={$turma->codTurma}",
'fail' => true,
];
Expand Down Expand Up @@ -932,7 +932,7 @@ protected function analisaEducacensoRegistro20()
];
}

if ($turma->tipoAtendimento != 0 && in_array($turma->tipoMediacaoDidaticoPedagogico, [App_Model_TipoMediacaoDidaticoPedagogico::EDUCACAO_A_DISTANCIA])) {
if ($turma->tipoAtendimento != 0 && in_array($turma->tipoMediacaoDidaticoPedagogico, [App_Model_TipoMediacaoDidaticoPedagogico::EDUCACAO_A_DISTANCIA, App_Model_TipoMediacaoDidaticoPedagogico::SEMIPRESENCIAL])) {
$descricaoTipoMediacao = (App_Model_TipoMediacaoDidaticoPedagogico::getInstance()->getEnums())[$turma->tipoMediacaoDidaticoPedagogico];

$mensagem[] = [
Expand All @@ -952,6 +952,19 @@ protected function analisaEducacensoRegistro20()
];
}

if (
$turma->tipoMediacaoDidaticoPedagogico == App_Model_TipoMediacaoDidaticoPedagogico::SEMIPRESENCIAL &&
count(array_filter($turma->estruturaCurricular)) > 0 &&
!in_array(EstruturaCurricular::FORMACAO_GERAL_BASICA, $turma->estruturaCurricular)
) {
$mensagem[] = [
'text' => "Dados para formular o registro 20 da escola {$turma->nomeEscola} possui valor inválido. Verificamos que o tipo de mediação didático pedagógico da turma {$nomeTurma} é semipresencial, portanto a turma deve ter estrutura curricular de formação geral básica.",
'path' => '(Escola > Cadastros > Turmas > Editar > Aba: Dados adicionais > Campo: Estrutura curricular)',
'linkPath' => "/intranet/educar_turma_cad.php?cod_turma={$turma->codTurma}",
'fail' => true
];
}

if ($atividadeComplementar && !$existeAtividadeComplementar) {
$mensagem[] = [
'text' => "Dados para formular o registro 20 da escola {$turma->nomeEscola} não encontrados. Verificamos que a turma {$nomeTurma} é de atividades complementares, portanto é necessário informar quais atividades complementares são trabalhadas.",
Expand All @@ -970,9 +983,9 @@ protected function analisaEducacensoRegistro20()
];
}

if (is_null($turma->localFuncionamentoDiferenciado) && in_array($turma->tipoMediacaoDidaticoPedagogico, [App_Model_TipoMediacaoDidaticoPedagogico::PRESENCIAL])) {
if (is_null($turma->localFuncionamentoDiferenciado) && in_array($turma->tipoMediacaoDidaticoPedagogico, [App_Model_TipoMediacaoDidaticoPedagogico::PRESENCIAL, App_Model_TipoMediacaoDidaticoPedagogico::SEMIPRESENCIAL])) {
$mensagem[] = [
'text' => "Dados para formular o registro 20 da escola {$turma->nomeEscola} não encontrados. Verificamos que a turma {$nomeTurma} é presencial, portanto é necessário informar se ela possui local de funcionamento diferenciado.",
'text' => "Dados para formular o registro 20 da escola {$turma->nomeEscola} não encontrados. Verificamos que a turma {$nomeTurma} é presencial ou semipresencial, portanto é necessário informar se ela possui local de funcionamento diferenciado.",
'path' => '(Escola > Cadastros > Turmas > Editar > Aba: Dados adicionais > Campo: Local de funcionamento diferenciado da turma)',
'linkPath' => "/intranet/educar_turma_cad.php?cod_turma={$turma->codTurma}",
'fail' => true,
Expand All @@ -989,7 +1002,8 @@ protected function analisaEducacensoRegistro20()
];
}

if (($turma->tipoMediacaoDidaticoPedagogico == App_Model_TipoMediacaoDidaticoPedagogico::EDUCACAO_A_DISTANCIA && !in_array($turma->modalidadeCurso, [ModalidadeCurso::ENSINO_REGULAR, ModalidadeCurso::EJA, ModalidadeCurso::EDUCACAO_PROFISSIONAL]))
if (($turma->tipoMediacaoDidaticoPedagogico == App_Model_TipoMediacaoDidaticoPedagogico::SEMIPRESENCIAL && !in_array($turma->modalidadeCurso, [ModalidadeCurso::EDUCACAO_ESPECIAL, ModalidadeCurso::EJA])) ||
($turma->tipoMediacaoDidaticoPedagogico == App_Model_TipoMediacaoDidaticoPedagogico::EDUCACAO_A_DISTANCIA && !in_array($turma->modalidadeCurso, [ModalidadeCurso::ENSINO_REGULAR, ModalidadeCurso::EJA, ModalidadeCurso::EDUCACAO_PROFISSIONAL]))
) {
$valuesDescription = $turma->getModalidadeCursoDescriptiveValue();
$opcoesPermitidas = $turma->getTipoMediacaoValidaParaModalidadeCurso();
Expand Down Expand Up @@ -1057,6 +1071,13 @@ protected function analisaEducacensoRegistro20()
$opcoesEtapaEducacenso = '';

switch ($turma->tipoMediacaoDidaticoPedagogico) {
case App_Model_TipoMediacaoDidaticoPedagogico::SEMIPRESENCIAL:
if (!in_array($turma->etapaEducacenso, [69, 70, 71, 72])) {
$opcoesEtapaEducacenso = '69, 70, 71 ou 72';
$valid = false;
}

break;
case App_Model_TipoMediacaoDidaticoPedagogico::EDUCACAO_A_DISTANCIA:
if (!in_array($turma->etapaEducacenso, [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 70, 71, 73, 74, 64, 67, 68])) {
$opcoesEtapaEducacenso = '25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 70, 71, 73, 74, 64, 67 ou 68';
Expand Down
2 changes: 1 addition & 1 deletion src/Modules/Educacenso/Data/Registro20.php
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ public function getRecordExportData($record)
$canExportComponente ? $this->getCensoValueForDiscipline(32, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 73 32. Estágio Curricular Supervisionado
$canExportComponente ? $this->getCensoValueForDiscipline(33, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 74 33. Projeto de vida
$canExportComponente ? $this->getCensoValueForDiscipline(99, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 75 99. Outras áreas do conhecimento
$record->classeComLinguaBrasileiraSinais == 1 ? 1 : 0, // 76 Classe com ensino desenvolvido com a Língua Brasileira de Sinais – Libras como primeira língua e a língua portuguesa de forma escrita
$record->classeComLinguaBrasileiraSinais == 1 ? 1 : 0, // 76 Classe bilíngue de surdos tendo a Libras (Língua Brasileira de Sinais) como língua de instrução, ensino, comunicação e interação e a língua portuguesa escrita como segunda língua
];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public static function handle(RegistroEducacenso $registro60): RegistroEducacens
{
$arrayTipoMediacao = [
TipoMediacaoDidaticoPedagogico::PRESENCIAL,
TipoMediacaoDidaticoPedagogico::SEMIPRESENCIAL,
];

if ($registro60->tipoAtendimentoTurma != TipoAtendimentoTurma::ESCOLARIZACAO ||
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@
class TipoMediacaoDidaticoPedagogico
{
public const PRESENCIAL = 1;

public const SEMIPRESENCIAL = 2;
public const EDUCACAO_A_DISTANCIA = 3;
}

0 comments on commit 2f03628

Please sign in to comment.