diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 8239e635f3..23a796e88e 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -5,6 +5,7 @@ use App\Http\Controllers\LegacyController; use App_Model_Exception; use iEducar\Modules\ErrorTracking\Tracker; +use iEducar\Support\Exceptions\DisciplinesWithoutInformedHoursException; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; use Throwable; @@ -17,6 +18,7 @@ class Handler extends ExceptionHandler */ protected $dontReport = [ App_Model_Exception::class, + DisciplinesWithoutInformedHoursException::class ]; /** diff --git a/app/Http/Controllers/EnrollmentFormativeItineraryController.php b/app/Http/Controllers/EnrollmentFormativeItineraryController.php new file mode 100644 index 0000000000..6125861d4c --- /dev/null +++ b/app/Http/Controllers/EnrollmentFormativeItineraryController.php @@ -0,0 +1,114 @@ +breadcrumb('Itinerário formativo do aluno', [ + url('intranet/educar_index.php') => 'Escola', + ]); + + $this->menu(578); + + $registration = LegacyRegistration::find($id); + + return view('enrollments.enrollmentFormativeItineraryList', ['registration' => $registration]); + } + + /** + * Lista enturmações da matrícula para definir itinerário formativo. + * + * @param int $id enturmação + * + * @return Application|Factory|View + */ + public function viewFormativeItinerary($id) + { + $this->breadcrumb('Itinerário formativo do aluno', [ + url('intranet/educar_index.php') => 'Escola', + ]); + + $this->menu(578); + + $enrollment = LegacyEnrollment::find($id); + + return view('enrollments.enrollmentFormativeItinerary', [ + 'enrollment' => $enrollment, + 'itineraryType' => TipoItinerarioFormativo::getDescriptiveValues(), + 'itineraryComposition' => TipoItinerarioFormativo::getDescriptiveValuesOfItineraryComposition(), + 'itineraryCourse' => TipoCursoItinerario::getDescriptiveValues(), + ]); + } + + /** + * @param Request $request + * + * @return JsonResponse|Redirector|RedirectResponse|Application + */ + public function storeFormativeItinerary(Request $request): JsonResponse|Redirector|RedirectResponse|Application + { + $fields = $request->all(); + $enrollment = LegacyEnrollment::find($fields['enrollment_id']); + + if (!isset($fields['itinerary_type'])) { + $fields['itinerary_type'] = []; + } + if (!isset($fields['itinerary_composition'])) { + $fields['itinerary_composition'] = []; + } + if (!isset($fields['itinerary_course'])) { + $fields['itinerary_course'] = null; + } + if (!isset($fields['concomitant_itinerary'])) { + $fields['concomitant_itinerary'] = null; + } + + $itineraryData = new EnrollmentFormativeItineraryValueObject(); + $itineraryData->enrollmentId = $fields['enrollment_id']; + $itineraryData->itineraryType = $fields['itinerary_type']; + $itineraryData->itineraryComposition = $fields['itinerary_composition']; + $itineraryData->itineraryCourse = $fields['itinerary_course']; + $itineraryData->concomitantItinerary = $fields['concomitant_itinerary']; + + $service = new EnrollmentFormativeItineraryService(); + + try { + $service->saveFormativeItinerary($enrollment, $itineraryData); + } catch (\Throwable $th) { + return response()->json( + ['message' => $th->getMessage()], + 400 + ); + } + + return response()->json( + [ + 'registration_id' => $enrollment->registration_id, + 'message' => 'Itinerário formativo salvo com sucesso.' + ] + ); + } +} diff --git a/app/Models/Educacenso/Registro00.php b/app/Models/Educacenso/Registro00.php index 6a5feb98c5..83aee02dc4 100644 --- a/app/Models/Educacenso/Registro00.php +++ b/app/Models/Educacenso/Registro00.php @@ -5,215 +5,440 @@ class Registro00 implements RegistroEducacenso { /** - * @var string Campo 1 + * @var string */ public $registro; /** - * @var string Campo 2 + * @var string */ public $codigoInep; /** - * @var string Campo 3 + * @var string */ public $situacaoFuncionamento; /** - * @var string Campo 4 + * @var string */ public $inicioAnoLetivo; /** - * @var string Campo 5 + * @var string */ public $fimAnoLetivo; /** - * @var string Campo 6 + * @var string */ public $nome; /** - * @var string Campo 7 + * @var string */ public $cep; /** - * @var string Campo 8 + * @var string */ public $codigoIbgeMunicipio; /** - * @var string Campo 9 + * @var string */ public $codigoIbgeDistrito; /** - * @var string Campo 10 + * @var string */ public $logradouro; /** - * @var string Campo 11 + * @var string */ public $numero; /** - * @var string Campo 12 + * @var string */ public $complemento; /** - * @var string Campo 13 + * @var string */ public $bairro; /** - * @var string Campo 14 + * @var string */ public $ddd; /** - * @var string Campo 15 + * @var string */ public $telefone; /** - * @var string Campo 16 + * @var string */ public $telefoneOutro; /** - * @var string Campo 17 + * @var string */ public $email; /** - * @var string Campo 18 + * @var string */ public $orgaoRegional; /** - * @var string Campo 19 + * @var string */ public $zonaLocalizacao; /** - * @var string Campo 20 + * @var string */ public $localizacaoDiferenciada; /** - * @var string Campo 21 + * @var string */ public $dependenciaAdministrativa; /** - * @var string Campo 22 + * @var string */ public $orgaoEducacao; /** - * @var string Campo 23 + * @var string */ public $orgaoSeguranca; /** - * @var string Campo 24 + * @var string */ public $orgaoSaude; /** - * @var string Campo 25 + * @var string */ public $orgaoOutro; /** - * @var string Campo 26 + * @var string */ public $mantenedoraEmpresa; /** - * @var string Campo 27 + * @var string */ public $mantenedoraSindicato; /** - * @var string Campo 28 + * @var string */ public $mantenedoraOng; /** - * @var string Campo 29 + * @var string */ public $mantenedoraInstituicoes; /** - * @var string Campo 30 + * @var string */ public $mantenedoraSistemaS; /** - * @var string Campo 31 + * @var string */ public $mantenedoraOscip; /** - * @var string Campo 32 + * @var string */ public $categoriaEscolaPrivada; /** - * @var string Campo 33 + * @var string */ public $conveniadaPoderPublico; /** - * @var string Campo 34 + * @var string */ public $cnpjMantenedoraPrincipal; /** - * @var string Campo 35 + * @var string */ public $cnpjEscolaPrivada; /** - * @var string Campo 36 + * @var string */ public $regulamentacao; /** - * @var string Campo 37 + * @var string */ public $esferaFederal; /** - * @var string Campo 38 + * @var string */ public $esferaEstadual; /** - * @var string Campo 39 + * @var string */ public $esferaMunicipal; /** - * @var string Campo 40 + * @var string */ public $unidadeVinculada; /** - * @var string Campo 41 + * @var string */ public $inepEscolaSede; /** - * @var string Campo 42 + * @var string */ public $codigoIes; + /** + * @var array + */ + public $poderPublicoConveniado; + + /** + * @var array + */ + public $formasContratacaoPoderPublico; + + /** + * @var integer + */ + public $qtdMatAtividadesComplentar; + + /** + * @var integer + */ + public $qtdMatAee; + + /** + * @var integer + */ + public $qtdMatCrecheParcial; + + /** + * @var integer + */ + public $qtdMatCrecheIntegral; + + /** + * @var integer + */ + public $qtdMatPreEscolaParcial; + + /** + * @var integer + */ + public $qtdMatPreEscolaIntegral; + + /** + * @var integer + */ + public $qtdMatFundamentalIniciaisParcial; + + /** + * @var integer + */ + public $qtdMatFundamentalIniciaisIntegral; + + /** + * @var integer + */ + public $qtdMatFundamentalFinaisParcial; + + /** + * @var integer + */ + public $qtdMatFundamentalFinaisIntegral; + + /** + * @var integer + */ + public $qtdMatEnsinoMedioParcial; + + /** + * @var integer + */ + public $qtdMatEnsinoMedioIntegral; + + /** + * @var integer + */ + public $qdtMatClasseEspecialParcial; + + /** + * @var integer + */ + public $qdtMatClasseEspecialIntegral; + + /** + * @var integer + */ + public $qdtMatEjaFundamental; + + /** + * @var integer + */ + public $qtdMatEjaEnsinoMedio; + + /** + * @var integer + */ + public $qtdMatEdProfIntegradaEjaFundamentalParcial; + + /** + * @var integer + */ + public $qtdMatEdProfIntegradaEjaFundamentalIntegral; + + /** + * @var integer + */ + public $qtdMatEdProfIntegradaEjaNivelMedioParcial; + + /** + * @var integer + */ + public $qtdMatEdProfIntegradaEjaNivelMedioIntegral; + + /** + * @var integer + */ + public $qtdMatEdProfConcomitanteEjaNivelMedioParcial; + + /** + * @var integer + */ + public $qtdMatEdProfConcomitanteEjaNivelMedioIntegral; + + /** + * @var integer + */ + public $qtdMatEdProfIntercomentarEjaNivelMedioParcial; + + /** + * @var integer + */ + public $qtdMatEdProfIntercomentarEjaNivelMedioIntegral; + + /** + * @var integer + */ + public $qtdMatEdProfIntegradaEnsinoMedioParcial; + + /** + * @var integer + */ + public $qtdMatEdProfIntegradaEnsinoMedioIntegral; + + /** + * @var integer + */ + public $qtdMatEdProfConcomitenteEnsinoMedioParcial; + + /** + * @var integer + */ + public $qtdMatEdProfConcomitenteEnsinoMedioIntegral; + + /** + * @var integer + */ + public $qtdMatEdProfIntercomplementarEnsinoMedioParcial; + + /** + * @var integer + */ + public $qtdMatEdProfIntercomplementarEnsinoMedioIntegral; + + /** + * @var integer + */ + public $qtdMatEdProfTecnicaIntegradaEnsinoMedioParcial; + + /** + * @var integer + */ + public $qtdMatEdProfTecnicaIntegradaEnsinoMedioIntegral; + + /** + * @var integer + */ + public $qtdMatEdProfTecnicaConcomitanteEnsinoMedioParcial; + + /** + * @var integer + */ + public $qtdMatEdProfTecnicaConcomitanteEnsinoMedioIntegral; + + /** + * @var integer + */ + public $qtdMatEdProfTecnicaIntercomplementarEnsinoMedioParcial; + + /** + * @var integer + */ + public $qtdMatEdProfTecnicaIntercomplementarEnsinoMedioItegral; + + /** + * @var integer + */ + public $qtdMatEdProfTecnicaSubsequenteEnsinoMedio; + + /** + * @var integer + */ + public $qtdMatEdProfTecnicaIntegradaEjaNivelMedioParcial; + + /** + * @var integer + */ + public $qtdMatEdProfTecnicaIntegradaEjaNivelMedioIntegral; + + /** + * @var integer + */ + public $qtdMatEdProfTecnicaConcomitanteEjaNivelMedioParcial; + + /** + * @var integer + */ + public $qtdMatEdProfTecnicaConcomitanteEjaNivelMedioIntegral; + + /** + * @var integer + */ + public $qtdMatEdProfTecnicaIntercomplementarEjaNivelMedioParcial; + + /** + * @var integer + */ + public $qtdMatEdProfTecnicaIntercomplementarEjaNivelMedioIntegral; + /** * @var string Campo usado na validação */ @@ -264,71 +489,48 @@ class Registro00 implements RegistroEducacenso */ public $anoFimAnoLetivo; - /** - * @param int $column - * - * @return string - */ - public function getProperty($column) - { - $properties = [ - 'registro', - 'codigoInep', - 'situacaoFuncionamento', - 'inicioAnoLetivo', - 'fimAnoLetivo', - 'nome', - 'cep', - 'codigoIbgeMunicipio', - 'codigoIbgeDistrito', - 'logradouro', - 'numero', - 'complemento', - 'bairro', - 'ddd', - 'telefone', - 'telefoneOutro', - 'email', - 'orgaoRegional', - 'zonaLocalizacao', - 'localizacaoDiferenciada', - 'dependenciaAdministrativa', - 'orgaoEducacao', - 'orgaoSeguranca', - 'orgaoSaude', - 'orgaoOutro', - 'mantenedoraEmpresa', - 'mantenedoraSindicato', - 'mantenedoraOng', - 'mantenedoraInstituicoes', - 'mantenedoraSistemaS', - 'mantenedoraOscip', - 'categoriaEscolaPrivada', - 'conveniadaPoderPublico', - 'cnpjMantenedoraPrincipal', - 'cnpjEscolaPrivada', - 'regulamentacao', - 'esferaFederal', - 'esferaEstadual', - 'esferaMunicipal', - 'unidadeVinculada', - 'inepEscolaSede', - 'codigoIes', - ]; - - return $properties[$column]; - } - - /** - * Popula os campos do model a partir de um array de colunas - * do arquivo do censo - * - * @param $arrayColumns - */ - public function hydrateModel($arrayColumns) + public function NaoPossuiQuantidadeDeMatriculasAtendidas() { - foreach ($arrayColumns as $key => $value) { - $this->{$this->getProperty($key)} = trim($value); - } + return + !$this->qtdMatAtividadesComplentar && + !$this->qtdMatAee && + !$this->qtdMatCrecheParcial && + !$this->qtdMatCrecheIntegral && + !$this->qtdMatPreEscolaParcial && + !$this->qtdMatPreEscolaIntegral && + !$this->qtdMatFundamentalIniciaisParcial && + !$this->qtdMatFundamentalIniciaisIntegral && + !$this->qtdMatFundamentalFinaisParcial && + !$this->qtdMatFundamentalFinaisIntegral && + !$this->qtdMatEnsinoMedioParcial && + !$this->qtdMatEnsinoMedioIntegral && + !$this->qtdMatEjaEnsinoMedio && + !$this->qtdMatEdProfIntegradaEjaFundamentalParcial && + !$this->qtdMatEdProfIntegradaEjaFundamentalIntegral && + !$this->qtdMatEdProfIntegradaEjaNivelMedioParcial && + !$this->qtdMatEdProfIntegradaEjaNivelMedioIntegral && + !$this->qtdMatEdProfConcomitanteEjaNivelMedioParcial && + !$this->qtdMatEdProfConcomitanteEjaNivelMedioIntegral && + !$this->qtdMatEdProfIntercomentarEjaNivelMedioParcial && + !$this->qtdMatEdProfIntercomentarEjaNivelMedioIntegral && + !$this->qtdMatEdProfIntegradaEnsinoMedioParcial && + !$this->qtdMatEdProfIntegradaEnsinoMedioIntegral && + !$this->qtdMatEdProfConcomitenteEnsinoMedioParcial && + !$this->qtdMatEdProfConcomitenteEnsinoMedioIntegral && + !$this->qtdMatEdProfIntercomplementarEnsinoMedioParcial && + !$this->qtdMatEdProfIntercomplementarEnsinoMedioIntegral && + !$this->qtdMatEdProfTecnicaIntegradaEnsinoMedioParcial && + !$this->qtdMatEdProfTecnicaIntegradaEnsinoMedioIntegral && + !$this->qtdMatEdProfTecnicaConcomitanteEnsinoMedioParcial && + !$this->qtdMatEdProfTecnicaConcomitanteEnsinoMedioIntegral && + !$this->qtdMatEdProfTecnicaIntercomplementarEnsinoMedioParcial && + !$this->qtdMatEdProfTecnicaIntercomplementarEnsinoMedioItegral && + !$this->qtdMatEdProfTecnicaSubsequenteEnsinoMedio && + !$this->qtdMatEdProfTecnicaIntegradaEjaNivelMedioParcial && + !$this->qtdMatEdProfTecnicaIntegradaEjaNivelMedioIntegral && + !$this->qtdMatEdProfTecnicaConcomitanteEjaNivelMedioParcial && + !$this->qtdMatEdProfTecnicaConcomitanteEjaNivelMedioIntegral && + !$this->qtdMatEdProfTecnicaIntercomplementarEjaNivelMedioParcial && + !$this->qtdMatEdProfTecnicaIntercomplementarEjaNivelMedioIntegral; } } diff --git a/app/Models/Educacenso/Registro10.php b/app/Models/Educacenso/Registro10.php index aced016d3d..de272ffdf1 100644 --- a/app/Models/Educacenso/Registro10.php +++ b/app/Models/Educacenso/Registro10.php @@ -348,6 +348,14 @@ public function laboratoriosInformatica() return in_array(Laboratorios::INFORMATICA, $this->laboratorios); } + /** + * @return bool + */ + public function laboratoriosEducacaoProfissional() + { + return in_array(Laboratorios::EDUCACAO_PROFISSIONAL, $this->laboratorios); + } + /** * @return bool */ @@ -412,6 +420,14 @@ public function salasAtividadesRepousoAluno() return in_array(SalasAtividades::REPOUSO_ALUNO, $this->salasAtividades); } + /** + * @return bool + */ + public function salasAtividadesEducacaoProfissional() + { + return in_array(SalasAtividades::EDUCACAO_PROFISSIONAL, $this->salasAtividades); + } + /** * @return bool */ @@ -652,6 +668,17 @@ public function possuiAntenaParabolica() return in_array(Equipamentos::ANTENA_PARABOLICA, $this->equipamentos); } + /** + * @return bool + */ + public function EquipamentosPreenchidosIncorretamente() + { + return ( + in_array(Equipamentos::NENHUM_EQUIPAMENTO_LISTADO, $this->equipamentos) && + count($this->equipamentos) > 1 + ); + } + /** * @return bool */ @@ -795,6 +822,14 @@ public function quantidadeProfissionaisPreenchida() $this->qtdOrientadorComunitario; } + /** + * @return bool + */ + public function nenhumEquipamentoNaEscola() + { + return in_array(Equipamentos::NENHUM_EQUIPAMENTO_LISTADO, $this->equipamentos); + } + /** * @return bool */ @@ -968,6 +1003,25 @@ public function instrumentosPedagogicosMateriaisAtividadesCulturais() return in_array(InstrumentosPedagogicos::MATERIAIS_ATIVIDADES_CULTURAIS, $this->instrumentosPedagogicos); } + /** + * @return bool + */ + public function instrumentosPedagogicosMateriaisEducacaoProfissional() + { + return in_array(InstrumentosPedagogicos::MATERIAL_EDUCACAO_PROFISSIONAL, $this->instrumentosPedagogicos); + } + + /** + * @return bool + */ + public function instrumentosPedagogicosPreenchidosIncorretamente() + { + return ( + in_array(InstrumentosPedagogicos::NENHUM_DOS_INSTRUMENTOS_LISTADOS, $this->instrumentosPedagogicos) && + count($this->instrumentosPedagogicos) > 1 + ); + } + /** * @return bool */ @@ -1000,6 +1054,11 @@ public function instrumentosPedagogicosMateriaisEducacaoCampo() return in_array(InstrumentosPedagogicos::MATERIAIS_EDUCACAO_CAMPO, $this->instrumentosPedagogicos); } + public function instrumentosPedagogicosNenhum() + { + return in_array(InstrumentosPedagogicos::NENHUM_DOS_INSTRUMENTOS_LISTADOS, $this->instrumentosPedagogicos); + } + /** * @return bool */ diff --git a/app/Models/Educacenso/Registro10Fields.php b/app/Models/Educacenso/Registro10Fields.php index 4f72e01076..8cc42ae51c 100644 --- a/app/Models/Educacenso/Registro10Fields.php +++ b/app/Models/Educacenso/Registro10Fields.php @@ -659,6 +659,11 @@ class Registro10Fields implements RegistroEducacenso */ public $url; + /** + * @var bool + */ + public $semFuncionariosParaFuncoes; + public $registro; public $localFuncionamentoPredioEscolar; public $localFuncionamentoSalasOutraEscola; diff --git a/app/Models/Educacenso/Registro20.php b/app/Models/Educacenso/Registro20.php index 062c19edd8..7019f0bf8e 100644 --- a/app/Models/Educacenso/Registro20.php +++ b/app/Models/Educacenso/Registro20.php @@ -6,9 +6,12 @@ use App_Model_IedFinder; 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\LocalFuncionamento; use iEducar\Modules\Educacenso\Model\ModalidadeCurso; use iEducar\Modules\Educacenso\Model\TipoAtendimentoTurma; +use iEducar\Modules\Educacenso\Model\UnidadesCurriculares; class Registro20 implements RegistroEducacenso { @@ -62,6 +65,11 @@ class Registro20 implements RegistroEducacenso */ public $tipoAtendimento; + /** + * @var array + */ + public $estruturaCurricular; + /** * @var array */ @@ -72,6 +80,21 @@ class Registro20 implements RegistroEducacenso */ public $etapaEducacenso; + /** + * @var array + */ + public $formasOrganizacaoTurma; + + /** + * @var array + */ + public $unidadesCurriculares; + + /** + * @var array + */ + public $unidadesCurricularesSemDocenteVinculado; + /** * @var string */ @@ -112,6 +135,11 @@ class Registro20 implements RegistroEducacenso */ public $possuiAlunoNecessitandoTradutor; + /** + * @var array + */ + public $disciplinasEducacensoComDocentes; + /** * @var string */ @@ -468,4 +496,58 @@ private function getComponentesByImportFile($componentesImportacao) return $componentesExistentes; } + + public function etapaEducacensoDescritiva() + { + $etapasEducacenso = loadJson('educacenso_json/etapas_ensino.json'); + + return $etapasEducacenso[$this->etapaEducacenso]; + } + + public function unidadesCurricularesSemDocenteVinculado() + { + $unidadesCurriculares = UnidadesCurriculares::getDescriptiveValues(); + $unidadesSemDocente = []; + + foreach ($this->unidadesCurricularesSemDocenteVinculado as $unidadeCurricular) { + $unidadesSemDocente[$unidadeCurricular] = $unidadesCurriculares[$unidadeCurricular]; + } + + return $unidadesSemDocente; + } + + public function formaOrganizacaoTurmaDescritiva() + { + $descriptiveValues = FormaOrganizacaoTurma::getDescriptiveValues(); + + return $descriptiveValues[$this->formasOrganizacaoTurma]; + } + + public function itinerarioFormativo() + { + return in_array(EstruturaCurricular::ITINERARIO_FORMATIVO, $this->estruturaCurricular); + } + + public function formacaoGeralBasica() + { + return in_array(EstruturaCurricular::FORMACAO_GERAL_BASICA, $this->estruturaCurricular); + } + + public function estruturaCurricularNaoSeAplica() + { + return in_array(EstruturaCurricular::NAO_SE_APLICA, $this->estruturaCurricular); + } + + public function requereFormasOrganizacaoTurma() + { + return $this->escolarizacao() && !in_array($this->etapaEducacenso, [1, 2, 3, 24]); + } + + public function requereEtapaEducacenso() + { + return in_array($this->estruturaCurricular, [ + EstruturaCurricular::FORMACAO_GERAL_BASICA, + EstruturaCurricular::NAO_SE_APLICA + ]); + } } diff --git a/app/Models/Educacenso/Registro30.php b/app/Models/Educacenso/Registro30.php index eb5d485617..0712ee4255 100644 --- a/app/Models/Educacenso/Registro30.php +++ b/app/Models/Educacenso/Registro30.php @@ -116,13 +116,7 @@ class Registro30 implements RegistroEducacenso public $formacaoComponenteCurricular; - public $countPosGraduacao; - - public $posGraduacaoEspecializacao; - - public $posGraduacaoMestrado; - - public $posGraduacaoDoutorado; + public $posGraduacoes; public $posGraduacaoNaoPossui; diff --git a/app/Models/Educacenso/Registro50.php b/app/Models/Educacenso/Registro50.php index ab58d67318..5c96f896e9 100644 --- a/app/Models/Educacenso/Registro50.php +++ b/app/Models/Educacenso/Registro50.php @@ -2,6 +2,7 @@ namespace App\Models\Educacenso; +use iEducar\Modules\Educacenso\Model\EstruturaCurricular; use iEducar\Modules\Servidores\Model\FuncaoExercida; class Registro50 implements RegistroEducacenso, ItemOfRegistro30 @@ -60,6 +61,12 @@ class Registro50 implements RegistroEducacenso, ItemOfRegistro30 */ public $componentes; + /** + * @var array + * Campos 24 a 31 + */ + public $unidadesCurriculares; + /** * @var string * Campo usado somente na análise @@ -120,6 +127,12 @@ class Registro50 implements RegistroEducacenso, ItemOfRegistro30 */ public $etapaEducacensoTurma; + /** + * @var array + * Campo usado somente na análise + */ + public $estruturaCurricular; + public function hydrateModel(array $arrayColumns): void { array_unshift($arrayColumns, null); @@ -177,4 +190,22 @@ public function getProperty($column) { // TODO: Implement getProperty() method. } + + public function estruturasCurricularesDescritivas() + { + $estruturasCurriculares = EstruturaCurricular::getDescriptiveValues(); + + $estruturaDescritiva = array_map(function ($key) use ($estruturasCurriculares) { + return $estruturasCurriculares[$key]; + }, $this->estruturaCurricular); + + return implode('/', $estruturaDescritiva); + } + + public function estapaEducacensoDescritiva() + { + $todasEtapasEducacenso = loadJson('educacenso_json/etapas_ensino.json'); + + return $todasEtapasEducacenso[$this->etapaEducacensoTurma]; + } } diff --git a/app/Models/Educacenso/Registro60.php b/app/Models/Educacenso/Registro60.php index 096a39a1a3..751bd29b52 100644 --- a/app/Models/Educacenso/Registro60.php +++ b/app/Models/Educacenso/Registro60.php @@ -2,6 +2,7 @@ namespace App\Models\Educacenso; +use iEducar\Modules\Educacenso\Model\EstruturaCurricular; use iEducar\Modules\Educacenso\Model\PaisResidencia; use iEducar\Modules\Educacenso\Model\TipoAtendimentoTurma; use iEducar\Modules\Educacenso\Model\TipoMediacaoDidaticoPedagogico; @@ -16,6 +17,19 @@ class Registro60 implements RegistroEducacenso, ItemOfRegistro30 public $inepTurma; public $matriculaAluno; public $etapaAluno; + public $tipoItinerarioLinguagens; + public $tipoItinerarioMatematica; + public $tipoItinerarioCienciasNatureza; + public $tipoItinerarioCienciasHumanas; + public $tipoItinerarioFormacaoTecnica; + public $tipoItinerarioIntegrado; + public $composicaoItinerarioLinguagens; + public $composicaoItinerarioMatematica; + public $composicaoItinerarioCienciasNatureza; + public $composicaoItinerarioCienciasHumanas; + public $composicaoItinerarioFormacaoTecnica; + public $cursoItinerario; + public $itinerarioConcomitante; public $tipoAtendimentoDesenvolvimentoFuncoesGognitivas; public $tipoAtendimentoDesenvolvimentoVidaAutonoma; public $tipoAtendimentoEnriquecimentoCurricular; @@ -72,6 +86,16 @@ class Registro60 implements RegistroEducacenso, ItemOfRegistro30 */ public $etapaTurma; + /** + * @var array Campo usado somente na análise + */ + public $estruturaCurricularTurma; + + /** + * @var integer Campo usado somente na análise + */ + public $enturmacaoId; + /** * @var string Campo usado somente na análise */ @@ -152,6 +176,65 @@ public function recebeEscolarizacaoOutroEspacoIsRequired() $this->localFuncionamentoDiferenciadoTurma == \App_Model_LocalFuncionamentoDiferenciado::SALA_ANEXA; } + /** + * @return bool + */ + public function analisaDadosItinerario() + { + if ( + in_array(EstruturaCurricular::ITINERARIO_FORMATIVO, $this->estruturaCurricularTurma) && + count($this->estruturaCurricularTurma) === 1 + ) { + return true; + } + + $etapasValidas = [25, 26, 27, 28, 30, 31, 32, 33, 35, 36, 37, 38, 71, 74]; + + if ( + in_array(EstruturaCurricular::ITINERARIO_FORMATIVO, $this->estruturaCurricularTurma) && + in_array(EstruturaCurricular::FORMACAO_GERAL_BASICA, $this->estruturaCurricularTurma) && + in_array($this->etapaTurma, $etapasValidas) + ) { + return true; + } + + return false; + } + + /** + * @return bool + */ + public function tipoItinerarioNaoPreenchido() + { + return + !$this->tipoItinerarioLinguagens && + !$this->tipoItinerarioMatematica && + !$this->tipoItinerarioCienciasNatureza && + !$this->tipoItinerarioCienciasHumanas && + !$this->tipoItinerarioFormacaoTecnica && + !$this->tipoItinerarioIntegrado; + } + + /** + * @return bool + */ + public function composicaoItinerarioNaoPreenchido() + { + return + !$this->composicaoItinerarioLinguagens && + !$this->composicaoItinerarioMatematica && + !$this->composicaoItinerarioCienciasNatureza && + !$this->composicaoItinerarioCienciasHumanas && + !$this->composicaoItinerarioFormacaoTecnica; + } + + public function etapaTurmaDescritiva() + { + $etapasEducacenso = loadJson('educacenso_json/etapas_ensino.json'); + + return $etapasEducacenso[$this->etapaTurma]; + } + public function getCodigoPessoa() { return $this->codigoPessoa; diff --git a/app/Models/EmployeePosgraduate.php b/app/Models/EmployeePosgraduate.php new file mode 100644 index 0000000000..6d0f305b3d --- /dev/null +++ b/app/Models/EmployeePosgraduate.php @@ -0,0 +1,46 @@ +belongsTo(Employee::class, 'employee_id', 'cod_servidor'); + } + + /** + * Filtra pelo ID do servidor + * + * @param Builder $query + * @param $employeeId + * + * @return Builder + */ + public function scopeOfEmployee($query, $employeeId) + { + return $query->where('employee_id', $employeeId); + } +} diff --git a/app/Models/LegacyEnrollment.php b/app/Models/LegacyEnrollment.php index ae9dd6a750..cb7139eb7d 100644 --- a/app/Models/LegacyEnrollment.php +++ b/app/Models/LegacyEnrollment.php @@ -47,6 +47,10 @@ class LegacyEnrollment extends Model 'sequencial_fechamento', 'remanejado_mesma_turma', 'ativo', + 'tipo_itinerario', + 'composicao_itinerario', + 'curso_itinerario', + 'itinerario_concomitante' ]; /** diff --git a/app/Repositories/EducacensoRepository.php b/app/Repositories/EducacensoRepository.php index 4b8858c87f..7c46a40380 100644 --- a/app/Repositories/EducacensoRepository.php +++ b/app/Repositories/EducacensoRepository.php @@ -132,7 +132,51 @@ public function getDataForRecord00($school, $year) (ARRAY[5] <@ e.mantenedora_escola_privada)::INT AS "mantenedoraSistemaS", (ARRAY[6] <@ e.mantenedora_escola_privada)::INT AS "mantenedoraOscip", e.categoria_escola_privada AS "categoriaEscolaPrivada", - e.conveniada_com_poder_publico AS "conveniadaPoderPublico", + e.poder_publico_parceria_convenio AS "poderPublicoConveniado", + e.formas_contratacao_adm_publica_e_outras_instituicoes AS "formasContratacaoPoderPublico", + e.qtd_matriculas_atividade_complementar AS "qtdMatAtividadesComplentar", + e.qtd_atendimento_educacional_especializado AS "qtdMatAee", + e.qtd_ensino_regular_creche_par AS "qtdMatCrecheParcial", + e.qtd_ensino_regular_creche_int AS "qtdMatCrecheIntegral", + e.qtd_ensino_regular_pre_escola_par AS "qtdMatPreEscolaParcial", + e.qtd_ensino_regular_pre_escola_int AS "qtdMatPreEscolaIntegral", + e.qtd_ensino_regular_ensino_fund_anos_iniciais_par AS "qtdMatFundamentalIniciaisParcial", + e.qtd_ensino_regular_ensino_fund_anos_iniciais_int AS "qtdMatFundamentalIniciaisIntegral", + e.qtd_ensino_regular_ensino_fund_anos_finais_par AS "qtdMatFundamentalFinaisParcial", + e.qtd_ensino_regular_ensino_fund_anos_finais_int AS "qtdMatFundamentalFinaisIntegral", + e.qtd_ensino_regular_ensino_med_anos_iniciais_par AS "qtdMatEnsinoMedioParcial", + e.qtd_ensino_regular_ensino_med_anos_iniciais_int AS "qtdMatEnsinoMedioIntegral", + e.qtd_edu_especial_classe_especial_par AS "qdtMatClasseEspecialParcial", + e.qtd_edu_especial_classe_especial_int AS "qdtMatClasseEspecialIntegral", + e.qtd_edu_eja_ensino_fund AS "qdtMatEjaFundamental", + e.qtd_edu_eja_ensino_med AS "qtdMatEjaEnsinoMedio", + e.qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_par AS "qtdMatEdProfIntegradaEjaFundamentalParcial", + e.qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_int AS "qtdMatEdProfIntegradaEjaFundamentalIntegral", + e.qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_par AS "qtdMatEdProfIntegradaEjaNivelMedioParcial", + e.qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_int AS "qtdMatEdProfIntegradaEjaNivelMedioIntegral", + e.qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_par AS "qtdMatEdProfConcomitanteEjaNivelMedioParcial", + e.qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_int AS "qtdMatEdProfConcomitanteEjaNivelMedioIntegral", + e.qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_par AS "qtdMatEdProfIntercomentarEjaNivelMedioParcial", + e.qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_int AS "qtdMatEdProfIntercomentarEjaNivelMedioIntegral", + e.qtd_edu_prof_quali_prof_tec_inte_ensino_med_par AS "qtdMatEdProfIntegradaEnsinoMedioParcial", + e.qtd_edu_prof_quali_prof_tecinte_ensino_med_int AS "qtdMatEdProfIntegradaEnsinoMedioIntegral", + e.qtd_edu_prof_quali_prof_tec_conc_ensino_med_par AS "qtdMatEdProfConcomitenteEnsinoMedioParcial", + e.qtd_edu_prof_quali_prof_tec_conc_ensino_med_int AS "qtdMatEdProfConcomitenteEnsinoMedioIntegral", + e.qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_par AS "qtdMatEdProfIntercomplementarEnsinoMedioParcial", + e.qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_int AS "qtdMatEdProfIntercomplementarEnsinoMedioIntegral", + e.qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_par AS "qtdMatEdProfTecnicaIntegradaEnsinoMedioParcial", + e.qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_int AS "qtdMatEdProfTecnicaIntegradaEnsinoMedioIntegral", + e.qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_par AS "qtdMatEdProfTecnicaConcomitanteEnsinoMedioParcial", + e.qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_int AS "qtdMatEdProfTecnicaConcomitanteEnsinoMedioIntegral", + e.qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_par AS "qtdMatEdProfTecnicaIntercomplementarEnsinoMedioParcial", + e.qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_int AS "qtdMatEdProfTecnicaIntercomplementarEnsinoMedioItegral", + e.qtd_edu_prof_edu_prof_tec_nivel_med_subsequente_ensino_med AS "qtdMatEdProfTecnicaSubsequenteEnsinoMedio", + e.qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_par AS "qtdMatEdProfTecnicaIntegradaEjaNivelMedioParcial", + e.qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_int AS "qtdMatEdProfTecnicaIntegradaEjaNivelMedioIntegral", + e.qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_par AS "qtdMatEdProfTecnicaConcomitanteEjaNivelMedioParcial", + e.qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_int AS "qtdMatEdProfTecnicaConcomitanteEjaNivelMedioIntegral", + e.qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_par AS "qtdMatEdProfTecnicaIntercomplementarEjaNivelMedioParcial", + e.qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_int AS "qtdMatEdProfTecnicaIntercomplementarEjaNivelMedioIntegral", e.cnpj_mantenedora_principal AS "cnpjMantenedoraPrincipal", j.cnpj AS "cnpjEscolaPrivada", e.regulamentacao AS "regulamentacao", @@ -188,7 +232,7 @@ public function getDataForRecord00($school, $year) */ public function getDataForRecord10($school) { - $sql = ' + $sql = <<<'SQL' SELECT escola.cod_escola AS "codEscola", educacenso_cod_escola.cod_escola_inep AS "codigoInep", @@ -281,11 +325,11 @@ public function getDataForRecord10($school) escola.qtd_bombeiro as "qtdBombeiro", escola.qtd_psicologo as "qtdPsicologo", escola.qtd_fonoaudiologo as "qtdFonoaudiologo", + escola.nao_ha_funcionarios_para_funcoes as "semFuncionariosParaFuncoes", escola.alimentacao_escolar_alunos as "alimentacaoEscolarAlunos", escola.orgaos_colegiados as "orgaosColegiados", escola.exame_selecao_ingresso as "exameSelecaoIngresso", escola.reserva_vagas_cotas as "reservaVagasCotas", - escola.organizacao_ensino as "organizacaoEnsino", escola.instrumentos_pedagogicos as "instrumentosPedagogicos", escola.compartilha_espacos_atividades_integracao AS "compartilhaEspacosAtividadesIntegracao", escola.usa_espacos_equipamentos_atividades_regulares AS "usaEspacosEquipamentosAtividadesRegulares", @@ -299,7 +343,7 @@ public function getDataForRecord10($school) LEFT JOIN modules.educacenso_cod_escola ON (escola.cod_escola = educacenso_cod_escola.cod_escola) WHERE TRUE AND escola.cod_escola = :school - '; +SQL; return $this->fetchPreparedQuery($sql, [ 'school' => $school @@ -482,11 +526,7 @@ public function getEmployeeDataForRecord30($arrayEmployeeId) tbl_formacoes.completion_year AS "formacaoAnoConclusao", tbl_formacoes.college_id AS "formacaoInstituicao", tbl_formacoes.discipline_id AS "formacaoComponenteCurricular", - coalesce(cardinality(servidor.pos_graduacao),0) as "countPosGraduacao", - (ARRAY[1] <@ servidor.pos_graduacao)::INT "posGraduacaoEspecializacao", - (ARRAY[2] <@ servidor.pos_graduacao)::INT "posGraduacaoMestrado", - (ARRAY[3] <@ servidor.pos_graduacao)::INT "posGraduacaoDoutorado", - (ARRAY[4] <@ servidor.pos_graduacao)::INT "posGraduacaoNaoPossui", + tbl_posgraduacoes.pos_graduate::text AS "posGraduacoes", coalesce(cardinality(servidor.curso_formacao_continuada),0) as "countFormacaoContinuada", (ARRAY[1] <@ servidor.curso_formacao_continuada)::INT "formacaoContinuadaCreche", (ARRAY[2] <@ servidor.curso_formacao_continuada)::INT "formacaoContinuadaPreEscola", @@ -521,10 +561,16 @@ public function getEmployeeDataForRecord30($arrayEmployeeId) JOIN modules.educacenso_curso_superior ON educacenso_curso_superior.id = employee_graduations.course_id JOIN modules.educacenso_ies ON educacenso_ies.id = employee_graduations.college_id WHERE employee_graduations.employee_id = servidor.cod_servidor - ) AS tbl_formacoes + ) AS tbl_formacoes, + LATERAL ( + SELECT + array_agg( + row_to_json(employee_posgraduate) + ) AS "pos_graduate" + FROM employee_posgraduate + WHERE employee_posgraduate.employee_id = servidor.cod_servidor + ) AS tbl_posgraduacoes WHERE servidor.cod_servidor IN ({$stringPersonId}) - - SQL; return $this->fetchPreparedQuery($sql); diff --git a/app/Rules/CheckMandatoryCensoFields.php b/app/Rules/CheckMandatoryCensoFields.php index 8a359b148d..a872fe3b52 100644 --- a/app/Rules/CheckMandatoryCensoFields.php +++ b/app/Rules/CheckMandatoryCensoFields.php @@ -7,6 +7,8 @@ use App\Models\School; 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; use Illuminate\Contracts\Validation\Rule; @@ -226,8 +228,8 @@ private function validaEtapaEducacenso($params) 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, 70, 71, 73, 74, 67, 68], true)) { - $this->message = 'Quando o campo: Tipo de mediação didático-pedagógica é: Educação a Distância, o campo: Etapa de ensino deve ser uma das seguintes opções: 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 70, 71, 73, 74, 67 ou 68'; + !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)) { + $this->message = 'Quando o campo: Tipo de mediação didático-pedagógica é: Educação a Distância, o campo: Etapa de ensino deve ser uma das seguintes opções: 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 64, 70, 71, 73, 74, 67 ou 68'; return false; } @@ -332,6 +334,10 @@ public function validaCampoEstruturaCurricular(mixed $params) { $estruturaCurricular = $this->getEstruturaCurricularValues($params); + if (is_array($estruturaCurricular) && in_array(2, $estruturaCurricular, true) && count($estruturaCurricular) === 1) { + $params->etapa_educacenso = null; + } + if ($params->tipo_atendimento == TipoAtendimentoTurma::ESCOLARIZACAO && empty($estruturaCurricular)) { $this->message = 'Campo "Estrutura Curricular" é obrigatório quando o campo tipo de atentimento é "Escolarização".'; @@ -344,6 +350,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: Tipo de mediação didático-pedagógica é: Semipresencial, o campo: Estrutura curricular deve ter a opção Formação geral básica informada.'; + + return false; + } + $etapaEnsinoCanNotContainsWithFormacaoGeralBasica = [1, 2, 3, 39, 40, 64, 68]; if (is_array($estruturaCurricular) && in_array(1, $estruturaCurricular, true) && @@ -379,28 +395,6 @@ public function validaCampoEstruturaCurricular(mixed $params) private function validaCampoFormasOrganizacaoTurma(mixed $params) { - $estruturaCurricular = $this->getEstruturaCurricularValues($params); - - if (empty($estruturaCurricular)) { - return true; - } - - if (empty($params->formas_organizacao_turma) && !in_array(1, $estruturaCurricular, true)) { - return true; - } - - if (empty($params->formas_organizacao_turma) && in_array(1, $estruturaCurricular, true)) { - $this->message = 'Campo: Formas de organização da turma é obrigatório quando o campo: Estrutura Curricular contém: Formação geral básica'; - - return false; - } - - if (!empty($params->formas_organizacao_turma) && !in_array(1, $estruturaCurricular, true)) { - $this->message = 'Campo: Formas de organização da turma não pode ser preenchido quando o campo: Estrutura Curricular não contém: Formação geral básica'; - - return false; - } - $validOption = [ 1 => 'Série/ano (séries anuais)', 2 => 'Períodos semestrais', @@ -411,27 +405,30 @@ private function validaCampoFormasOrganizacaoTurma(mixed $params) ]; $validOptionCorrelationForEtapaEnsino = [ - 1 => [ - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 56, 69, 70, 71, 72, 73, 74, 67 + FormaOrganizacaoTurma::SERIE_ANO => [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 56, 64, 69, 70, 71, 72, 73, 74, 67 ], - 2 => [ - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 69, 70, 71, 72, 73, 74, 67, 68 + FormaOrganizacaoTurma::SEMESTRAL => [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 64, 69, 70, 71, 72, 73, 74, 67, 68 ], - 3 => [ + FormaOrganizacaoTurma::CICLOS => [ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41, 56 ], - 4 => [ - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 56, 69, 70, 71, 72, 73, 74, 67, 68 + FormaOrganizacaoTurma::NAO_SERIADO => [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 56, 64, 69, 70, 71, 72, 73, 74, 67, 68 ], - 5 => [ - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 56, 69, 70, 71, 72, 73, 74, 67,68 + FormaOrganizacaoTurma::MODULES => [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 56, 64, 69, 70, 71, 72, 73, 74, 67,68 ], - 6 => [ - 19, 20, 21, 22, 23, 41, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 69, 70, 71, 72, 73, 74, 67, 68 + FormaOrganizacaoTurma::ALTERNANCIA_REGULAR => [ + 19, 20, 21, 22, 23, 41, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 64, 69, 70, 71, 72, 73, 74, 67, 68 ] ]; - if (!in_array((int) $params->etapa_educacenso, $validOptionCorrelationForEtapaEnsino[(int)$params->formas_organizacao_turma], true)) { + if (isset($params->formas_organizacao_turma) && + isset($params->etapa_educacenso) && + !in_array((int) $params->etapa_educacenso, $validOptionCorrelationForEtapaEnsino[(int)$params->formas_organizacao_turma], true) + ) { $todasEtapasEducacenso = loadJson(__DIR__ . '/../../ieducar/intranet/educacenso_json/etapas_ensino.json'); $this->message = "Não é possível selecionar a opção: {$validOption[(int)$params->formas_organizacao_turma]}, no campo: Formas de organização da turma quando o campo: Etapa de ensino for: {$todasEtapasEducacenso[$params->etapa_educacenso]}."; diff --git a/app/Rules/RequiredEnrollmentConcomitantItinerary.php b/app/Rules/RequiredEnrollmentConcomitantItinerary.php new file mode 100644 index 0000000000..758828435d --- /dev/null +++ b/app/Rules/RequiredEnrollmentConcomitantItinerary.php @@ -0,0 +1,36 @@ +itineraryComposition) && $value->concomitantItinerary === null) { + return false; + } + + return true; + } + + /** + * Get the validation error message. + * + * @return string + */ + public function message() + { + return 'O campo Itinerário concomitante intercomplementar à matrícula de formação geral básica deve ser preenchido quando o campo Composição do itinerário formativo integrado for Formação técnica profissional.'; + } +} diff --git a/app/Rules/RequiredEnrollmentItineraryComposition.php b/app/Rules/RequiredEnrollmentItineraryComposition.php new file mode 100644 index 0000000000..e313d24e6c --- /dev/null +++ b/app/Rules/RequiredEnrollmentItineraryComposition.php @@ -0,0 +1,36 @@ +itineraryType) && count($value->itineraryComposition) == 0) { + return false; + } + + return true; + } + + /** + * Get the validation error message. + * + * @return string + */ + public function message() + { + return 'O campo Composição do itinerário formativo integrado deve ser preenchido quando o campo Tipo do itinerário formativo for Itinerário formativo integrado.'; + } +} diff --git a/app/Rules/RequiredEnrollmentItineraryCourse.php b/app/Rules/RequiredEnrollmentItineraryCourse.php new file mode 100644 index 0000000000..cc4e2662d4 --- /dev/null +++ b/app/Rules/RequiredEnrollmentItineraryCourse.php @@ -0,0 +1,36 @@ +itineraryComposition) && empty($value->itineraryCourse)) { + return false; + } + + return true; + } + + /** + * Get the validation error message. + * + * @return string + */ + public function message() + { + return 'O campo Tipo do curso do itinerário de formação técnica e profissional deve ser preenchido quando o campo Composição do itinerário formativo integrado for Formação técnica profissional.'; + } +} diff --git a/app/Services/CyclicRegimeService.php b/app/Services/CyclicRegimeService.php index 704661af39..b8c045b7d1 100644 --- a/app/Services/CyclicRegimeService.php +++ b/app/Services/CyclicRegimeService.php @@ -4,6 +4,7 @@ use App\Models\LegacyGrade; use App\Models\LegacyRegistration; +use App_Model_MatriculaSituacao; use Illuminate\Support\Facades\Cache; class CyclicRegimeService @@ -27,6 +28,7 @@ public function getAllRegistrationsOfCycle($registration) foreach ($grades as $grade) { $result = LegacyRegistration::where('ref_ref_cod_serie', $grade->getKey()) ->where('ref_cod_aluno', $registration->ref_cod_aluno) + ->whereIn('aprovado', [App_Model_MatriculaSituacao::EM_ANDAMENTO, App_Model_MatriculaSituacao::APROVADO]) ->active() ->get() ->first(); diff --git a/app/Services/EmployeePosgraduateService.php b/app/Services/EmployeePosgraduateService.php new file mode 100644 index 0000000000..2d94e577a9 --- /dev/null +++ b/app/Services/EmployeePosgraduateService.php @@ -0,0 +1,31 @@ +delete(); + } + + /** + * @param EmployeePosgraduateValueObject $valueObject + */ + public function storePosgraduate(EmployeePosgraduateValueObject $valueObject) + { + EmployeePosgraduate::create([ + 'employee_id' => $valueObject->employeeId, + 'entity_id' => $valueObject->entityId, + 'type_id' => $valueObject->typeId, + 'area_id' => $valueObject->areaId, + 'completion_year' => $valueObject->completionYear, + ]); + } +} diff --git a/app/Services/EnrollmentFormativeItineraryService.php b/app/Services/EnrollmentFormativeItineraryService.php new file mode 100644 index 0000000000..49285300ef --- /dev/null +++ b/app/Services/EnrollmentFormativeItineraryService.php @@ -0,0 +1,65 @@ +validate($itineraryData); + $enrollment->tipo_itinerario = $this->convertArrayToDBField($itineraryData->itineraryType); + $enrollment->composicao_itinerario = $this->convertArrayToDBField($itineraryData->itineraryComposition); + $enrollment->curso_itinerario = $itineraryData->itineraryCourse; + $enrollment->itinerario_concomitante = $itineraryData->concomitantItinerary; + + $enrollment->save(); + } + + private function convertArrayToDBField($field) + { + if (is_array($field)) { + return '{' . implode(',', $field) . '}'; + } + + return null; + } + + private function validate(EnrollmentFormativeItineraryValueObject $itineraryData) + { + validator( + [ + 'formative_itinerary' => $itineraryData, + 'formative_itinerary_type' => $itineraryData->itineraryType, + 'formative_itinerary_composition' => $itineraryData->itineraryComposition, + ], + [ + 'formative_itinerary' => [ + 'bail', + new RequiredEnrollmentItineraryComposition(), + new RequiredEnrollmentItineraryCourse(), + new RequiredEnrollmentConcomitantItinerary(), + ], + 'formative_itinerary_type' => [ + 'bail', + 'max:4', + ], + 'formative_itinerary_composition' => [ + 'bail', + 'max:4', + ] + ], + [ + 'formative_itinerary_type.max' => 'O campo Tipo do itinerário formativo não pode ter mais de 4 opções selecionadas.', + 'formative_itinerary_composition.max' => 'O campo Composição do itinerário formativo integrado não pode ter mais de 4 opções selecionadas.' + ], + )->validate(); + } +} diff --git a/app/Services/EnrollmentService.php b/app/Services/EnrollmentService.php index 23d0ec57b6..0ad188e129 100644 --- a/app/Services/EnrollmentService.php +++ b/app/Services/EnrollmentService.php @@ -210,15 +210,6 @@ public function enroll( throw new EnrollDateAfterAcademicYearException($schoolClass, $date); } - $existsActiveEnrollment = $registration->enrollments() - ->where('ativo', 1) - ->where('ref_cod_turma', $schoolClass->id) - ->count(); - - if ($existsActiveEnrollment) { - throw new ExistsActiveEnrollmentException($registration); - } - if ( $registration->lastEnrollment && $registration->lastEnrollment->date_departed @@ -239,6 +230,15 @@ public function enroll( $sequenceInSchoolClass = $this->getSequenceSchoolClass($registration, $schoolClass, $date); + $existsActiveEnrollment = $registration->enrollments() + ->where('ativo', 1) + ->where('ref_cod_turma', $schoolClass->id) + ->exists(); + + if ($existsActiveEnrollment) { + throw new ExistsActiveEnrollmentException($registration); + } + /** @var LegacyEnrollment $enrollment */ $enrollment = $registration->enrollments()->create([ 'ref_cod_turma' => $schoolClass->id, diff --git a/composer.json b/composer.json index 4b4fffd54c..3272270644 100644 --- a/composer.json +++ b/composer.json @@ -3,7 +3,7 @@ "description": "Software livre de gestão escolar", "type": "project", "license": "GPL-2.0-or-later", - "version": "2.7.1", + "version": "2.7.2", "keywords": [ "Portabilis", "i-Educar" diff --git a/composer.lock b/composer.lock index 6bcdb282bb..dcca398688 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "3b8c67b525115d7b53aee211951c3a9d", + "content-hash": "fdd48370666b3e3482447459066b7d93", "packages": [ { "name": "asm89/stack-cors", @@ -114,16 +114,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.222.6", + "version": "3.228.3", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "17713594c2c7971424c02bd5048aa996fe442264" + "reference": "4dad57c95c7ff1dfcea29a7877ce64720b3318c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/17713594c2c7971424c02bd5048aa996fe442264", - "reference": "17713594c2c7971424c02bd5048aa996fe442264", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/4dad57c95c7ff1dfcea29a7877ce64720b3318c3", + "reference": "4dad57c95c7ff1dfcea29a7877ce64720b3318c3", "shasum": "" }, "require": { @@ -131,9 +131,9 @@ "ext-json": "*", "ext-pcre": "*", "ext-simplexml": "*", - "guzzlehttp/guzzle": "^5.3.3 || ^6.2.1 || ^7.0", + "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5", "guzzlehttp/promises": "^1.4.0", - "guzzlehttp/psr7": "^1.7.0 || ^2.1.1", + "guzzlehttp/psr7": "^1.8.5 || ^2.3", "mtdowling/jmespath.php": "^2.6", "php": ">=5.5" }, @@ -199,9 +199,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.222.6" + "source": "https://github.com/aws/aws-sdk-php/tree/3.228.3" }, - "time": "2022-05-05T18:42:07+00:00" + "time": "2022-06-24T20:24:09+00:00" }, { "name": "aws/aws-sdk-php-laravel", @@ -644,16 +644,16 @@ }, { "name": "doctrine/cache", - "version": "2.1.1", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce" + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/331b4d5dbaeab3827976273e9356b3b453c300ce", - "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce", + "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb", + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb", "shasum": "" }, "require": { @@ -663,18 +663,12 @@ "doctrine/common": ">2.2,<2.4" }, "require-dev": { - "alcaeus/mongo-php-adapter": "^1.1", "cache/integration-tests": "dev-master", - "doctrine/coding-standard": "^8.0", - "mongodb/mongodb": "^1.1", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "predis/predis": "~1.0", + "doctrine/coding-standard": "^9", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "psr/cache": "^1.0 || ^2.0 || ^3.0", - "symfony/cache": "^4.4 || ^5.2 || ^6.0@dev", - "symfony/var-exporter": "^4.4 || ^5.2 || ^6.0@dev" - }, - "suggest": { - "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" + "symfony/cache": "^4.4 || ^5.4 || ^6", + "symfony/var-exporter": "^4.4 || ^5.4 || ^6" }, "type": "library", "autoload": { @@ -723,7 +717,7 @@ ], "support": { "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/2.1.1" + "source": "https://github.com/doctrine/cache/tree/2.2.0" }, "funding": [ { @@ -739,7 +733,7 @@ "type": "tidelift" } ], - "time": "2021-07-17T14:49:29+00:00" + "time": "2022-05-20T20:07:39+00:00" }, { "name": "doctrine/dbal", @@ -1217,16 +1211,16 @@ }, { "name": "egulias/email-validator", - "version": "3.1.2", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "ee0db30118f661fb166bcffbf5d82032df484697" + "reference": "f88dcf4b14af14a98ad96b14b2b317969eab6715" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ee0db30118f661fb166bcffbf5d82032df484697", - "reference": "ee0db30118f661fb166bcffbf5d82032df484697", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/f88dcf4b14af14a98ad96b14b2b317969eab6715", + "reference": "f88dcf4b14af14a98ad96b14b2b317969eab6715", "shasum": "" }, "require": { @@ -1273,7 +1267,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/3.1.2" + "source": "https://github.com/egulias/EmailValidator/tree/3.2.1" }, "funding": [ { @@ -1281,7 +1275,7 @@ "type": "github" } ], - "time": "2021-10-11T09:18:27+00:00" + "time": "2022-06-18T20:57:19+00:00" }, { "name": "ezyang/htmlpurifier", @@ -1600,22 +1594,22 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.4.3", + "version": "7.4.5", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "74a8602c6faec9ef74b7a9391ac82c5e65b1cdab" + "reference": "1dd98b0564cb3f6bd16ce683cb755f94c10fbd82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/74a8602c6faec9ef74b7a9391ac82c5e65b1cdab", - "reference": "74a8602c6faec9ef74b7a9391ac82c5e65b1cdab", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/1dd98b0564cb3f6bd16ce683cb755f94c10fbd82", + "reference": "1dd98b0564cb3f6bd16ce683cb755f94c10fbd82", "shasum": "" }, "require": { "ext-json": "*", "guzzlehttp/promises": "^1.5", - "guzzlehttp/psr7": "^1.8.3 || ^2.1", + "guzzlehttp/psr7": "^1.9 || ^2.4", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -1704,7 +1698,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.4.3" + "source": "https://github.com/guzzle/guzzle/tree/7.4.5" }, "funding": [ { @@ -1720,7 +1714,7 @@ "type": "tidelift" } ], - "time": "2022-05-25T13:24:33+00:00" + "time": "2022-06-20T22:16:13+00:00" }, { "name": "guzzlehttp/promises", @@ -1808,16 +1802,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.2.1", + "version": "2.4.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "c94a94f120803a18554c1805ef2e539f8285f9a2" + "reference": "13388f00956b1503577598873fffb5ae994b5737" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/c94a94f120803a18554c1805ef2e539f8285f9a2", - "reference": "c94a94f120803a18554c1805ef2e539f8285f9a2", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/13388f00956b1503577598873fffb5ae994b5737", + "reference": "13388f00956b1503577598873fffb5ae994b5737", "shasum": "" }, "require": { @@ -1841,7 +1835,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-master": "2.4-dev" } }, "autoload": { @@ -1903,7 +1897,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.2.1" + "source": "https://github.com/guzzle/psr7/tree/2.4.0" }, "funding": [ { @@ -1919,7 +1913,7 @@ "type": "tidelift" } ], - "time": "2022-03-20T21:55:58+00:00" + "time": "2022-06-20T21:43:11+00:00" }, { "name": "haydenpierce/class-finder", @@ -1968,16 +1962,16 @@ }, { "name": "honeybadger-io/honeybadger-laravel", - "version": "v3.13.1", + "version": "3.14.0", "source": { "type": "git", "url": "https://github.com/honeybadger-io/honeybadger-laravel.git", - "reference": "92e6bc69e4f09e8e70731bc609c737e03eeb8fc7" + "reference": "15bf1266e1273a369bdb2b319c3055a54cfe112c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/honeybadger-io/honeybadger-laravel/zipball/92e6bc69e4f09e8e70731bc609c737e03eeb8fc7", - "reference": "92e6bc69e4f09e8e70731bc609c737e03eeb8fc7", + "url": "https://api.github.com/repos/honeybadger-io/honeybadger-laravel/zipball/15bf1266e1273a369bdb2b319c3055a54cfe112c", + "reference": "15bf1266e1273a369bdb2b319c3055a54cfe112c", "shasum": "" }, "require": { @@ -2036,22 +2030,22 @@ ], "support": { "issues": "https://github.com/honeybadger-io/honeybadger-laravel/issues", - "source": "https://github.com/honeybadger-io/honeybadger-laravel/tree/v3.13.1" + "source": "https://github.com/honeybadger-io/honeybadger-laravel/tree/3.14.0" }, - "time": "2022-02-16T14:14:43+00:00" + "time": "2022-05-06T18:13:41+00:00" }, { "name": "honeybadger-io/honeybadger-php", - "version": "2.11.3", + "version": "2.12.1", "source": { "type": "git", "url": "https://github.com/honeybadger-io/honeybadger-php.git", - "reference": "dffb8c27cec46d0a3fa795bec01520a47e42363b" + "reference": "7b49c75bae104c4a5eb105a9d6889c4ad55e88a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/honeybadger-io/honeybadger-php/zipball/dffb8c27cec46d0a3fa795bec01520a47e42363b", - "reference": "dffb8c27cec46d0a3fa795bec01520a47e42363b", + "url": "https://api.github.com/repos/honeybadger-io/honeybadger-php/zipball/7b49c75bae104c4a5eb105a9d6889c4ad55e88a5", + "reference": "7b49c75bae104c4a5eb105a9d6889c4ad55e88a5", "shasum": "" }, "require": { @@ -2103,22 +2097,22 @@ ], "support": { "issues": "https://github.com/honeybadger-io/honeybadger-php/issues", - "source": "https://github.com/honeybadger-io/honeybadger-php/tree/2.11.3" + "source": "https://github.com/honeybadger-io/honeybadger-php/tree/2.12.1" }, - "time": "2022-02-07T22:49:40+00:00" + "time": "2022-05-17T14:24:00+00:00" }, { "name": "intervention/image", - "version": "2.7.1", + "version": "2.7.2", "source": { "type": "git", "url": "https://github.com/Intervention/image.git", - "reference": "744ebba495319501b873a4e48787759c72e3fb8c" + "reference": "04be355f8d6734c826045d02a1079ad658322dad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/image/zipball/744ebba495319501b873a4e48787759c72e3fb8c", - "reference": "744ebba495319501b873a4e48787759c72e3fb8c", + "url": "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad", + "reference": "04be355f8d6734c826045d02a1079ad658322dad", "shasum": "" }, "require": { @@ -2161,8 +2155,8 @@ "authors": [ { "name": "Oliver Vogel", - "email": "oliver@olivervogel.com", - "homepage": "http://olivervogel.com/" + "email": "oliver@intervention.io", + "homepage": "https://intervention.io/" } ], "description": "Image handling and manipulation library with support for Laravel integration", @@ -2177,11 +2171,11 @@ ], "support": { "issues": "https://github.com/Intervention/image/issues", - "source": "https://github.com/Intervention/image/tree/2.7.1" + "source": "https://github.com/Intervention/image/tree/2.7.2" }, "funding": [ { - "url": "https://www.paypal.me/interventionphp", + "url": "https://paypal.me/interventionio", "type": "custom" }, { @@ -2189,7 +2183,7 @@ "type": "github" } ], - "time": "2021-12-16T16:49:26+00:00" + "time": "2022-05-21T17:30:32+00:00" }, { "name": "laragraph/utils", @@ -2251,16 +2245,16 @@ }, { "name": "laravel/framework", - "version": "v9.11.0", + "version": "v9.18.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "598a8c84d452a66b90a3213b1d67189cc726c728" + "reference": "93a1296bca43c1ca8dcb5df8f97107e819a71499" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/598a8c84d452a66b90a3213b1d67189cc726c728", - "reference": "598a8c84d452a66b90a3213b1d67189cc726c728", + "url": "https://api.github.com/repos/laravel/framework/zipball/93a1296bca43c1ca8dcb5df8f97107e819a71499", + "reference": "93a1296bca43c1ca8dcb5df8f97107e819a71499", "shasum": "" }, "require": { @@ -2272,7 +2266,7 @@ "fruitcake/php-cors": "^1.2", "laravel/serializable-closure": "^1.0", "league/commonmark": "^2.2", - "league/flysystem": "^3.0", + "league/flysystem": "^3.0.16", "monolog/monolog": "^2.0", "nesbot/carbon": "^2.53.1", "php": "^8.0.2", @@ -2348,7 +2342,7 @@ "pda/pheanstalk": "^4.0", "phpstan/phpstan": "^1.4.7", "phpunit/phpunit": "^9.5.8", - "predis/predis": "^1.1.9", + "predis/predis": "^1.1.9|^2.0", "symfony/cache": "^6.0" }, "suggest": { @@ -2374,7 +2368,7 @@ "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8).", - "predis/predis": "Required to use the predis connector (^1.1.9).", + "predis/predis": "Required to use the predis connector (^1.1.9|^2.0).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", "symfony/cache": "Required to PSR-6 cache bridge (^6.0).", @@ -2426,7 +2420,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-05-03T14:47:20+00:00" + "time": "2022-06-21T14:40:11+00:00" }, { "name": "laravel/horizon", @@ -2572,16 +2566,16 @@ }, { "name": "laravel/serializable-closure", - "version": "v1.1.1", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "9e4b005daa20b0c161f3845040046dc9ddc1d74e" + "reference": "09f0e9fb61829f628205b7c94906c28740ff9540" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/9e4b005daa20b0c161f3845040046dc9ddc1d74e", - "reference": "9e4b005daa20b0c161f3845040046dc9ddc1d74e", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/09f0e9fb61829f628205b7c94906c28740ff9540", + "reference": "09f0e9fb61829f628205b7c94906c28740ff9540", "shasum": "" }, "require": { @@ -2627,7 +2621,7 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2022-02-11T19:23:53+00:00" + "time": "2022-05-16T17:09:47+00:00" }, { "name": "laravel/tinker", @@ -2699,16 +2693,16 @@ }, { "name": "laravel/ui", - "version": "v3.4.5", + "version": "v3.4.6", "source": { "type": "git", "url": "https://github.com/laravel/ui.git", - "reference": "f11d295de1508c5bb56206a620b00b6616de414c" + "reference": "65ec5c03f7fee2c8ecae785795b829a15be48c2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/ui/zipball/f11d295de1508c5bb56206a620b00b6616de414c", - "reference": "f11d295de1508c5bb56206a620b00b6616de414c", + "url": "https://api.github.com/repos/laravel/ui/zipball/65ec5c03f7fee2c8ecae785795b829a15be48c2c", + "reference": "65ec5c03f7fee2c8ecae785795b829a15be48c2c", "shasum": "" }, "require": { @@ -2754,22 +2748,22 @@ "ui" ], "support": { - "source": "https://github.com/laravel/ui/tree/v3.4.5" + "source": "https://github.com/laravel/ui/tree/v3.4.6" }, - "time": "2022-02-21T14:59:16+00:00" + "time": "2022-05-20T13:38:08+00:00" }, { "name": "league/commonmark", - "version": "2.3.0", + "version": "2.3.3", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "32a49eb2b38fe5e5c417ab748a45d0beaab97955" + "reference": "0da1dca5781dd3cfddbe328224d9a7a62571addc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/32a49eb2b38fe5e5c417ab748a45d0beaab97955", - "reference": "32a49eb2b38fe5e5c417ab748a45d0beaab97955", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/0da1dca5781dd3cfddbe328224d9a7a62571addc", + "reference": "0da1dca5781dd3cfddbe328224d9a7a62571addc", "shasum": "" }, "require": { @@ -2862,7 +2856,7 @@ "type": "tidelift" } ], - "time": "2022-04-07T22:37:05+00:00" + "time": "2022-06-07T21:28:26+00:00" }, { "name": "league/config", @@ -3032,16 +3026,16 @@ }, { "name": "league/flysystem", - "version": "3.0.19", + "version": "3.0.21", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "670df21225d68d165a8df38587ac3f41caf608f8" + "reference": "8f1fcf9d2304ff77a006aa36dd2cb5f236999b12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/670df21225d68d165a8df38587ac3f41caf608f8", - "reference": "670df21225d68d165a8df38587ac3f41caf608f8", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/8f1fcf9d2304ff77a006aa36dd2cb5f236999b12", + "reference": "8f1fcf9d2304ff77a006aa36dd2cb5f236999b12", "shasum": "" }, "require": { @@ -3102,7 +3096,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.0.19" + "source": "https://github.com/thephpleague/flysystem/tree/3.0.21" }, "funding": [ { @@ -3118,20 +3112,20 @@ "type": "tidelift" } ], - "time": "2022-05-03T21:19:02+00:00" + "time": "2022-06-12T17:54:28+00:00" }, { "name": "league/flysystem-aws-s3-v3", - "version": "3.0.13", + "version": "3.0.21", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "0074cf016e21a6d1eb99b6db70acdd23743fc371" + "reference": "f4ee238279f1eb39a32539a18ef845db7251fd05" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/0074cf016e21a6d1eb99b6db70acdd23743fc371", - "reference": "0074cf016e21a6d1eb99b6db70acdd23743fc371", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/f4ee238279f1eb39a32539a18ef845db7251fd05", + "reference": "f4ee238279f1eb39a32539a18ef845db7251fd05", "shasum": "" }, "require": { @@ -3172,9 +3166,9 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues", - "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.0.13" + "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.0.21" }, - "time": "2022-04-01T22:05:11+00:00" + "time": "2022-06-12T17:34:31+00:00" }, { "name": "league/flysystem-ftp", @@ -3242,16 +3236,16 @@ }, { "name": "league/flysystem-sftp-v3", - "version": "3.0.19", + "version": "3.0.21", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-sftp-v3.git", - "reference": "21d96a7805306e630f581de05a5977bb5dd7052e" + "reference": "14b2d89bf85477df957d076dc29aa34a617c7ceb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-sftp-v3/zipball/21d96a7805306e630f581de05a5977bb5dd7052e", - "reference": "21d96a7805306e630f581de05a5977bb5dd7052e", + "url": "https://api.github.com/repos/thephpleague/flysystem-sftp-v3/zipball/14b2d89bf85477df957d076dc29aa34a617c7ceb", + "reference": "14b2d89bf85477df957d076dc29aa34a617c7ceb", "shasum": "" }, "require": { @@ -3286,7 +3280,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem-sftp-v3/issues", - "source": "https://github.com/thephpleague/flysystem-sftp-v3/tree/3.0.19" + "source": "https://github.com/thephpleague/flysystem-sftp-v3/tree/3.0.21" }, "funding": [ { @@ -3302,7 +3296,7 @@ "type": "tidelift" } ], - "time": "2022-04-27T17:27:37+00:00" + "time": "2022-05-13T08:42:10+00:00" }, { "name": "league/mime-type-detection", @@ -3440,29 +3434,31 @@ }, { "name": "maennchen/zipstream-php", - "version": "2.1.0", + "version": "2.2.1", "source": { "type": "git", "url": "https://github.com/maennchen/ZipStream-PHP.git", - "reference": "c4c5803cc1f93df3d2448478ef79394a5981cc58" + "reference": "211e9ba1530ea5260b45d90c9ea252f56ec52729" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/c4c5803cc1f93df3d2448478ef79394a5981cc58", - "reference": "c4c5803cc1f93df3d2448478ef79394a5981cc58", + "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/211e9ba1530ea5260b45d90c9ea252f56ec52729", + "reference": "211e9ba1530ea5260b45d90c9ea252f56ec52729", "shasum": "" }, "require": { "myclabs/php-enum": "^1.5", - "php": ">= 7.1", + "php": "^7.4 || ^8.0", "psr/http-message": "^1.0", "symfony/polyfill-mbstring": "^1.0" }, "require-dev": { "ext-zip": "*", - "guzzlehttp/guzzle": ">= 6.3", + "guzzlehttp/guzzle": "^6.5.3 || ^7.2.0", "mikey179/vfsstream": "^1.6", - "phpunit/phpunit": ">= 7.5" + "php-coveralls/php-coveralls": "^2.4", + "phpunit/phpunit": "^8.5.8 || ^9.4.2", + "vimeo/psalm": "^4.1" }, "type": "library", "autoload": { @@ -3499,7 +3495,7 @@ ], "support": { "issues": "https://github.com/maennchen/ZipStream-PHP/issues", - "source": "https://github.com/maennchen/ZipStream-PHP/tree/master" + "source": "https://github.com/maennchen/ZipStream-PHP/tree/2.2.1" }, "funding": [ { @@ -3507,7 +3503,7 @@ "type": "open_collective" } ], - "time": "2020-05-30T13:11:16+00:00" + "time": "2022-05-18T15:52:06+00:00" }, { "name": "markbaker/complex", @@ -3680,16 +3676,16 @@ }, { "name": "monolog/monolog", - "version": "2.5.0", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "4192345e260f1d51b365536199744b987e160edc" + "reference": "5579edf28aee1190a798bfa5be8bc16c563bd524" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/4192345e260f1d51b365536199744b987e160edc", - "reference": "4192345e260f1d51b365536199744b987e160edc", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/5579edf28aee1190a798bfa5be8bc16c563bd524", + "reference": "5579edf28aee1190a798bfa5be8bc16c563bd524", "shasum": "" }, "require": { @@ -3702,18 +3698,23 @@ "require-dev": { "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^7", + "elasticsearch/elasticsearch": "^7 || ^8", + "ext-json": "*", "graylog2/gelf-php": "^1.4.2", + "guzzlehttp/guzzle": "^7.4", + "guzzlehttp/psr7": "^2.2", "mongodb/mongodb": "^1.8", "php-amqplib/php-amqplib": "~2.4 || ^3", "php-console/php-console": "^3.1.3", - "phpspec/prophecy": "^1.6.1", + "phpspec/prophecy": "^1.15", "phpstan/phpstan": "^0.12.91", - "phpunit/phpunit": "^8.5", + "phpunit/phpunit": "^8.5.14", "predis/predis": "^1.1", "rollbar/rollbar": "^1.3 || ^2 || ^3", - "ruflin/elastica": ">=0.90@dev", - "swiftmailer/swiftmailer": "^5.3|^6.0" + "ruflin/elastica": "^7", + "swiftmailer/swiftmailer": "^5.3|^6.0", + "symfony/mailer": "^5.4 || ^6", + "symfony/mime": "^5.4 || ^6" }, "suggest": { "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", @@ -3763,7 +3764,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.5.0" + "source": "https://github.com/Seldaek/monolog/tree/2.7.0" }, "funding": [ { @@ -3775,7 +3776,7 @@ "type": "tidelift" } ], - "time": "2022-04-08T15:43:54+00:00" + "time": "2022-06-09T08:59:12+00:00" }, { "name": "mtdowling/jmespath.php", @@ -4144,16 +4145,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.13.2", + "version": "v4.14.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "210577fe3cf7badcc5814d99455df46564f3c077" + "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/210577fe3cf7badcc5814d99455df46564f3c077", - "reference": "210577fe3cf7badcc5814d99455df46564f3c077", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/34bea19b6e03d8153165d8f30bba4c3be86184c1", + "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1", "shasum": "" }, "require": { @@ -4194,22 +4195,22 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.14.0" }, - "time": "2021-11-30T19:35:32+00:00" + "time": "2022-05-31T20:59:12+00:00" }, { "name": "nuwave/lighthouse", - "version": "v5.48.2", + "version": "v5.55.1", "source": { "type": "git", "url": "https://github.com/nuwave/lighthouse.git", - "reference": "35d1d26ec56d8f14bbee92e00264a342f3079132" + "reference": "4676619e2ddc1b516715885bb32142bd0658b6bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nuwave/lighthouse/zipball/35d1d26ec56d8f14bbee92e00264a342f3079132", - "reference": "35d1d26ec56d8f14bbee92e00264a342f3079132", + "url": "https://api.github.com/repos/nuwave/lighthouse/zipball/4676619e2ddc1b516715885bb32142bd0658b6bd", + "reference": "4676619e2ddc1b516715885bb32142bd0658b6bd", "shasum": "" }, "require": { @@ -4267,6 +4268,7 @@ "providers": [ "Nuwave\\Lighthouse\\LighthouseServiceProvider", "Nuwave\\Lighthouse\\Auth\\AuthServiceProvider", + "Nuwave\\Lighthouse\\Cache\\CacheServiceProvider", "Nuwave\\Lighthouse\\GlobalId\\GlobalIdServiceProvider", "Nuwave\\Lighthouse\\OrderBy\\OrderByServiceProvider", "Nuwave\\Lighthouse\\Pagination\\PaginationServiceProvider", @@ -4326,20 +4328,20 @@ "type": "tidelift" } ], - "time": "2022-04-28T13:15:23+00:00" + "time": "2022-06-22T13:21:15+00:00" }, { "name": "paragonie/constant_time_encoding", - "version": "v2.5.0", + "version": "v2.6.3", "source": { "type": "git", "url": "https://github.com/paragonie/constant_time_encoding.git", - "reference": "9229e15f2e6ba772f0c55dd6986c563b937170a8" + "reference": "58c3f47f650c94ec05a151692652a868995d2938" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/9229e15f2e6ba772f0c55dd6986c563b937170a8", - "reference": "9229e15f2e6ba772f0c55dd6986c563b937170a8", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/58c3f47f650c94ec05a151692652a868995d2938", + "reference": "58c3f47f650c94ec05a151692652a868995d2938", "shasum": "" }, "require": { @@ -4393,7 +4395,7 @@ "issues": "https://github.com/paragonie/constant_time_encoding/issues", "source": "https://github.com/paragonie/constant_time_encoding" }, - "time": "2022-01-17T05:32:27+00:00" + "time": "2022-06-14T06:56:20+00:00" }, { "name": "paragonie/random_compat", @@ -5161,16 +5163,16 @@ }, { "name": "psy/psysh", - "version": "v0.11.4", + "version": "v0.11.5", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "05c544b339b112226ad14803e1e5b09a61957454" + "reference": "c23686f9c48ca202710dbb967df8385a952a2daf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/05c544b339b112226ad14803e1e5b09a61957454", - "reference": "05c544b339b112226ad14803e1e5b09a61957454", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/c23686f9c48ca202710dbb967df8385a952a2daf", + "reference": "c23686f9c48ca202710dbb967df8385a952a2daf", "shasum": "" }, "require": { @@ -5231,9 +5233,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.4" + "source": "https://github.com/bobthecow/psysh/tree/v0.11.5" }, - "time": "2022-05-06T12:49:14+00:00" + "time": "2022-05-27T18:03:49+00:00" }, { "name": "ralouphie/getallheaders", @@ -5570,16 +5572,16 @@ }, { "name": "symfony/console", - "version": "v6.0.8", + "version": "v6.0.10", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0d00aa289215353aa8746a31d101f8e60826285c" + "reference": "d8d41b93c16f1da2f2d4b9209b7de78c4d203642" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0d00aa289215353aa8746a31d101f8e60826285c", - "reference": "0d00aa289215353aa8746a31d101f8e60826285c", + "url": "https://api.github.com/repos/symfony/console/zipball/d8d41b93c16f1da2f2d4b9209b7de78c4d203642", + "reference": "d8d41b93c16f1da2f2d4b9209b7de78c4d203642", "shasum": "" }, "require": { @@ -5645,7 +5647,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.0.8" + "source": "https://github.com/symfony/console/tree/v6.0.10" }, "funding": [ { @@ -5661,7 +5663,7 @@ "type": "tidelift" } ], - "time": "2022-04-20T15:01:42+00:00" + "time": "2022-06-26T13:01:22+00:00" }, { "name": "symfony/css-selector", @@ -5797,16 +5799,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "5e2795163acbd13b3cd46835c9f8f6c5d0a3a280" + "reference": "732ca203b3222cde3378d5ddf5e2883211acc53e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/5e2795163acbd13b3cd46835c9f8f6c5d0a3a280", - "reference": "5e2795163acbd13b3cd46835c9f8f6c5d0a3a280", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/732ca203b3222cde3378d5ddf5e2883211acc53e", + "reference": "732ca203b3222cde3378d5ddf5e2883211acc53e", "shasum": "" }, "require": { @@ -5848,7 +5850,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.0.8" + "source": "https://github.com/symfony/error-handler/tree/v6.0.9" }, "funding": [ { @@ -5864,20 +5866,20 @@ "type": "tidelift" } ], - "time": "2022-04-12T16:11:42+00:00" + "time": "2022-05-23T10:32:42+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.0.3", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934" + "reference": "5c85b58422865d42c6eb46f7693339056db098a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/6472ea2dd415e925b90ca82be64b8bc6157f3934", - "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/5c85b58422865d42c6eb46f7693339056db098a8", + "reference": "5c85b58422865d42c6eb46f7693339056db098a8", "shasum": "" }, "require": { @@ -5931,7 +5933,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.3" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.9" }, "funding": [ { @@ -5947,7 +5949,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:55:41+00:00" + "time": "2022-05-05T16:45:52+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -6091,16 +6093,16 @@ }, { "name": "symfony/http-client", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "d347895193283e08b4c3ebf2f2974a1df3e1f670" + "reference": "3c6fc53a3deed2d3c1825d41ad8b3f23a6b038b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/d347895193283e08b4c3ebf2f2974a1df3e1f670", - "reference": "d347895193283e08b4c3ebf2f2974a1df3e1f670", + "url": "https://api.github.com/repos/symfony/http-client/zipball/3c6fc53a3deed2d3c1825d41ad8b3f23a6b038b5", + "reference": "3c6fc53a3deed2d3c1825d41ad8b3f23a6b038b5", "shasum": "" }, "require": { @@ -6155,7 +6157,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v6.0.8" + "source": "https://github.com/symfony/http-client/tree/v6.0.9" }, "funding": [ { @@ -6171,7 +6173,7 @@ "type": "tidelift" } ], - "time": "2022-04-12T16:11:42+00:00" + "time": "2022-05-21T13:33:31+00:00" }, { "name": "symfony/http-client-contracts", @@ -6253,16 +6255,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.0.8", + "version": "v6.0.10", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "c9c86b02d7ef6f44f3154acc7de42831518afe7c" + "reference": "47f2aa677a96ff3b79d2ed70052adf75b16824a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/c9c86b02d7ef6f44f3154acc7de42831518afe7c", - "reference": "c9c86b02d7ef6f44f3154acc7de42831518afe7c", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/47f2aa677a96ff3b79d2ed70052adf75b16824a9", + "reference": "47f2aa677a96ff3b79d2ed70052adf75b16824a9", "shasum": "" }, "require": { @@ -6305,7 +6307,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.0.8" + "source": "https://github.com/symfony/http-foundation/tree/v6.0.10" }, "funding": [ { @@ -6321,20 +6323,20 @@ "type": "tidelift" } ], - "time": "2022-04-22T08:18:02+00:00" + "time": "2022-06-19T13:16:44+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.0.8", + "version": "v6.0.10", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "7aaf1cdc9cc2ad47e926f624efcb679883a39ca7" + "reference": "fa3e92a78c3f311573671961c7f7a2c5bce0f54d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/7aaf1cdc9cc2ad47e926f624efcb679883a39ca7", - "reference": "7aaf1cdc9cc2ad47e926f624efcb679883a39ca7", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/fa3e92a78c3f311573671961c7f7a2c5bce0f54d", + "reference": "fa3e92a78c3f311573671961c7f7a2c5bce0f54d", "shasum": "" }, "require": { @@ -6414,7 +6416,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.0.8" + "source": "https://github.com/symfony/http-kernel/tree/v6.0.10" }, "funding": [ { @@ -6430,20 +6432,20 @@ "type": "tidelift" } ], - "time": "2022-04-27T17:26:02+00:00" + "time": "2022-06-26T17:02:18+00:00" }, { "name": "symfony/mailer", - "version": "v6.0.8", + "version": "v6.0.10", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "706af6b3e99ebcbc639c9c664f5579aaa869409b" + "reference": "9b60de35f0b4eed09ee2b25195a478b86acd128d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/706af6b3e99ebcbc639c9c664f5579aaa869409b", - "reference": "706af6b3e99ebcbc639c9c664f5579aaa869409b", + "url": "https://api.github.com/repos/symfony/mailer/zipball/9b60de35f0b4eed09ee2b25195a478b86acd128d", + "reference": "9b60de35f0b4eed09ee2b25195a478b86acd128d", "shasum": "" }, "require": { @@ -6488,7 +6490,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.0.8" + "source": "https://github.com/symfony/mailer/tree/v6.0.10" }, "funding": [ { @@ -6504,7 +6506,7 @@ "type": "tidelift" } ], - "time": "2022-04-27T17:10:30+00:00" + "time": "2022-06-19T12:07:20+00:00" }, { "name": "symfony/mailgun-mailer", @@ -6573,16 +6575,16 @@ }, { "name": "symfony/mime", - "version": "v6.0.8", + "version": "v6.0.10", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "c1701e88ad0ca49fc6ad6cdf360bc0e1209fb5e1" + "reference": "4de7886c66e0953f5d6edab3e49ceb751d01621c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/c1701e88ad0ca49fc6ad6cdf360bc0e1209fb5e1", - "reference": "c1701e88ad0ca49fc6ad6cdf360bc0e1209fb5e1", + "url": "https://api.github.com/repos/symfony/mime/zipball/4de7886c66e0953f5d6edab3e49ceb751d01621c", + "reference": "4de7886c66e0953f5d6edab3e49ceb751d01621c", "shasum": "" }, "require": { @@ -6634,7 +6636,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.0.8" + "source": "https://github.com/symfony/mime/tree/v6.0.10" }, "funding": [ { @@ -6650,20 +6652,20 @@ "type": "tidelift" } ], - "time": "2022-04-12T16:11:42+00:00" + "time": "2022-06-09T12:50:38+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.25.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "30885182c981ab175d4d034db0f6f469898070ab" + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab", - "reference": "30885182c981ab175d4d034db0f6f469898070ab", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", "shasum": "" }, "require": { @@ -6678,7 +6680,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6716,7 +6718,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" }, "funding": [ { @@ -6732,20 +6734,20 @@ "type": "tidelift" } ], - "time": "2021-10-20T20:35:02+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.25.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "81b86b50cf841a64252b439e738e97f4a34e2783" + "reference": "433d05519ce6990bf3530fba6957499d327395c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/81b86b50cf841a64252b439e738e97f4a34e2783", - "reference": "81b86b50cf841a64252b439e738e97f4a34e2783", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/433d05519ce6990bf3530fba6957499d327395c2", + "reference": "433d05519ce6990bf3530fba6957499d327395c2", "shasum": "" }, "require": { @@ -6757,7 +6759,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6797,7 +6799,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.26.0" }, "funding": [ { @@ -6813,20 +6815,20 @@ "type": "tidelift" } ], - "time": "2021-11-23T21:10:46+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.25.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "749045c69efb97c70d25d7463abba812e91f3a44" + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/749045c69efb97c70d25d7463abba812e91f3a44", - "reference": "749045c69efb97c70d25d7463abba812e91f3a44", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", "shasum": "" }, "require": { @@ -6840,7 +6842,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6884,7 +6886,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0" }, "funding": [ { @@ -6900,20 +6902,20 @@ "type": "tidelift" } ], - "time": "2021-09-14T14:02:44+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.25.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" + "reference": "219aa369ceff116e673852dce47c3a41794c14bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", - "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd", "shasum": "" }, "require": { @@ -6925,7 +6927,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6968,7 +6970,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" }, "funding": [ { @@ -6984,20 +6986,20 @@ "type": "tidelift" } ], - "time": "2021-02-19T12:13:01+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.25.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825" + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825", - "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", "shasum": "" }, "require": { @@ -7012,7 +7014,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -7051,7 +7053,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" }, "funding": [ { @@ -7067,20 +7069,20 @@ "type": "tidelift" } ], - "time": "2021-11-30T18:21:41+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.25.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "9a142215a36a3888e30d0a9eeea9766764e96976" + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976", - "reference": "9a142215a36a3888e30d0a9eeea9766764e96976", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", "shasum": "" }, "require": { @@ -7089,7 +7091,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -7127,7 +7129,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0" }, "funding": [ { @@ -7143,20 +7145,20 @@ "type": "tidelift" } ], - "time": "2021-05-27T09:17:38+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.25.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c" + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c", - "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", "shasum": "" }, "require": { @@ -7165,7 +7167,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -7210,7 +7212,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" }, "funding": [ { @@ -7226,20 +7228,20 @@ "type": "tidelift" } ], - "time": "2022-03-04T08:16:47+00:00" + "time": "2022-05-10T07:21:04+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.25.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f" + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/5de4ba2d41b15f9bd0e19b2ab9674135813ec98f", - "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", "shasum": "" }, "require": { @@ -7248,7 +7250,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.23-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -7289,7 +7291,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.25.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0" }, "funding": [ { @@ -7305,7 +7307,7 @@ "type": "tidelift" } ], - "time": "2021-09-13T13:58:11+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/process", @@ -7540,16 +7542,16 @@ }, { "name": "symfony/string", - "version": "v6.0.8", + "version": "v6.0.10", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "ac0aa5c2282e0de624c175b68d13f2c8f2e2649d" + "reference": "1b3adf02a0fc814bd9118d7fd68a097a599ebc27" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/ac0aa5c2282e0de624c175b68d13f2c8f2e2649d", - "reference": "ac0aa5c2282e0de624c175b68d13f2c8f2e2649d", + "url": "https://api.github.com/repos/symfony/string/zipball/1b3adf02a0fc814bd9118d7fd68a097a599ebc27", + "reference": "1b3adf02a0fc814bd9118d7fd68a097a599ebc27", "shasum": "" }, "require": { @@ -7605,7 +7607,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.0.8" + "source": "https://github.com/symfony/string/tree/v6.0.10" }, "funding": [ { @@ -7621,20 +7623,20 @@ "type": "tidelift" } ], - "time": "2022-04-22T08:18:02+00:00" + "time": "2022-06-26T16:34:50+00:00" }, { "name": "symfony/translation", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "3d38cf8f8834148c4457681d539bc204de701501" + "reference": "9ba011309943955a3807b8236c17cff3b88f67b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/3d38cf8f8834148c4457681d539bc204de701501", - "reference": "3d38cf8f8834148c4457681d539bc204de701501", + "url": "https://api.github.com/repos/symfony/translation/zipball/9ba011309943955a3807b8236c17cff3b88f67b6", + "reference": "9ba011309943955a3807b8236c17cff3b88f67b6", "shasum": "" }, "require": { @@ -7700,7 +7702,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.0.8" + "source": "https://github.com/symfony/translation/tree/v6.0.9" }, "funding": [ { @@ -7716,7 +7718,7 @@ "type": "tidelift" } ], - "time": "2022-04-22T08:18:02+00:00" + "time": "2022-05-06T14:27:17+00:00" }, { "name": "symfony/translation-contracts", @@ -7798,16 +7800,16 @@ }, { "name": "symfony/var-dumper", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "fa61dfb4bd3068df2492013dc65f3190e9f550c0" + "reference": "ac81072464221e73ee994d12f0b8a2af4a9ed798" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/fa61dfb4bd3068df2492013dc65f3190e9f550c0", - "reference": "fa61dfb4bd3068df2492013dc65f3190e9f550c0", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ac81072464221e73ee994d12f0b8a2af4a9ed798", + "reference": "ac81072464221e73ee994d12f0b8a2af4a9ed798", "shasum": "" }, "require": { @@ -7866,7 +7868,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.0.8" + "source": "https://github.com/symfony/var-dumper/tree/v6.0.9" }, "funding": [ { @@ -7882,20 +7884,20 @@ "type": "tidelift" } ], - "time": "2022-04-26T13:22:23+00:00" + "time": "2022-05-21T13:33:31+00:00" }, { "name": "thecodingmachine/safe", - "version": "v2.1.4", + "version": "v2.2.1", "source": { "type": "git", "url": "https://github.com/thecodingmachine/safe.git", - "reference": "b206c2671d3601d40389013cf550b14fb4db2814" + "reference": "2a8d758fd17763faf86e4aa798193e17b9fac38c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/b206c2671d3601d40389013cf550b14fb4db2814", - "reference": "b206c2671d3601d40389013cf550b14fb4db2814", + "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/2a8d758fd17763faf86e4aa798193e17b9fac38c", + "reference": "2a8d758fd17763faf86e4aa798193e17b9fac38c", "shasum": "" }, "require": { @@ -7910,7 +7912,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "0.1-dev" + "dev-master": "2.2.x-dev" } }, "autoload": { @@ -8003,13 +8005,13 @@ "generated/zip.php", "generated/zlib.php" ], - "psr-4": { - "Safe\\": [ - "lib/", - "deprecated/", - "generated/" - ] - } + "classmap": [ + "lib/DateTime.php", + "lib/DateTimeImmutable.php", + "lib/Exceptions/", + "deprecated/Exceptions/", + "generated/Exceptions/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -8018,9 +8020,9 @@ "description": "PHP core functions that throw exceptions instead of returning FALSE on error", "support": { "issues": "https://github.com/thecodingmachine/safe/issues", - "source": "https://github.com/thecodingmachine/safe/tree/v2.1.4" + "source": "https://github.com/thecodingmachine/safe/tree/v2.2.1" }, - "time": "2022-05-02T13:55:17+00:00" + "time": "2022-06-09T15:36:45+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -8231,21 +8233,21 @@ }, { "name": "webmozart/assert", - "version": "1.10.0", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0", - "symfony/polyfill-ctype": "^1.8" + "ext-ctype": "*", + "php": "^7.2 || ^8.0" }, "conflict": { "phpstan/phpstan": "<0.12.20", @@ -8283,9 +8285,9 @@ ], "support": { "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.10.0" + "source": "https://github.com/webmozarts/assert/tree/1.11.0" }, - "time": "2021-03-09T10:59:23+00:00" + "time": "2022-06-03T18:03:27+00:00" }, { "name": "webonyx/graphql-php", @@ -10173,16 +10175,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.20", + "version": "9.5.21", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba" + "reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/12bc8879fb65aef2138b26fc633cb1e3620cffba", - "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0e32b76be457de00e83213528f6bb37e2a38fcb1", + "reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1", "shasum": "" }, "require": { @@ -10216,7 +10218,6 @@ "sebastian/version": "^3.0.2" }, "require-dev": { - "ext-pdo": "*", "phpspec/prophecy-phpunit": "^2.0.1" }, "suggest": { @@ -10260,7 +10261,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.20" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.21" }, "funding": [ { @@ -10272,7 +10273,7 @@ "type": "github" } ], - "time": "2022-04-01T12:37:26+00:00" + "time": "2022-06-19T12:14:25+00:00" }, { "name": "psr/cache", @@ -11351,16 +11352,16 @@ }, { "name": "spatie/flare-client-php", - "version": "1.1.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/spatie/flare-client-php.git", - "reference": "ceab058852a1278d9f57a7b95f1c348e4956d866" + "reference": "86a380f5b1ce839af04a08f1c8f2697184cdf23f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/ceab058852a1278d9f57a7b95f1c348e4956d866", - "reference": "ceab058852a1278d9f57a7b95f1c348e4956d866", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/86a380f5b1ce839af04a08f1c8f2697184cdf23f", + "reference": "86a380f5b1ce839af04a08f1c8f2697184cdf23f", "shasum": "" }, "require": { @@ -11381,6 +11382,11 @@ "spatie/phpunit-snapshot-assertions": "^4.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1.x-dev" + } + }, "autoload": { "files": [ "src/helpers.php" @@ -11403,7 +11409,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/1.1.0" + "source": "https://github.com/spatie/flare-client-php/tree/1.2.0" }, "funding": [ { @@ -11411,20 +11417,20 @@ "type": "github" } ], - "time": "2022-03-11T13:21:28+00:00" + "time": "2022-05-16T12:13:39+00:00" }, { "name": "spatie/ignition", - "version": "1.2.9", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "db25202fab2d5c14613b8914a1bb374998bbf870" + "reference": "997363fbcce809b1e55f571997d49017f9c623d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/db25202fab2d5c14613b8914a1bb374998bbf870", - "reference": "db25202fab2d5c14613b8914a1bb374998bbf870", + "url": "https://api.github.com/repos/spatie/ignition/zipball/997363fbcce809b1e55f571997d49017f9c623d9", + "reference": "997363fbcce809b1e55f571997d49017f9c623d9", "shasum": "" }, "require": { @@ -11445,6 +11451,11 @@ "symfony/process": "^5.4|^6.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2.x-dev" + } + }, "autoload": { "psr-4": { "Spatie\\Ignition\\": "src" @@ -11481,20 +11492,20 @@ "type": "github" } ], - "time": "2022-04-23T20:37:21+00:00" + "time": "2022-05-16T13:16:07+00:00" }, { "name": "spatie/laravel-ignition", - "version": "1.2.3", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "51e5daaa7e43c154fe57f1ddfbba862f9fe57646" + "reference": "fe37a0eafe6ea040804255c70e9808af13314f87" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/51e5daaa7e43c154fe57f1ddfbba862f9fe57646", - "reference": "51e5daaa7e43c154fe57f1ddfbba862f9fe57646", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/fe37a0eafe6ea040804255c70e9808af13314f87", + "reference": "fe37a0eafe6ea040804255c70e9808af13314f87", "shasum": "" }, "require": { @@ -11571,20 +11582,20 @@ "type": "github" } ], - "time": "2022-05-05T15:53:24+00:00" + "time": "2022-06-17T06:28:57+00:00" }, { "name": "symfony/filesystem", - "version": "v6.0.7", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff" + "reference": "bf7b9d2ee692b6df2a41017d6023a2fe732d240c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff", - "reference": "6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/bf7b9d2ee692b6df2a41017d6023a2fe732d240c", + "reference": "bf7b9d2ee692b6df2a41017d6023a2fe732d240c", "shasum": "" }, "require": { @@ -11618,7 +11629,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.0.7" + "source": "https://github.com/symfony/filesystem/tree/v6.0.9" }, "funding": [ { @@ -11634,7 +11645,7 @@ "type": "tidelift" } ], - "time": "2022-04-01T12:54:51+00:00" + "time": "2022-05-21T13:33:31+00:00" }, { "name": "symfony/options-resolver", diff --git a/config/assets.php b/config/assets.php index 1c69e029e0..cbf0c1d791 100644 --- a/config/assets.php +++ b/config/assets.php @@ -14,7 +14,7 @@ | */ - 'version' => '0.1.08', + 'version' => '0.1.11', /* |-------------------------------------------------------------------------- diff --git a/config/honeybadger.php b/config/honeybadger.php index d1db1507bd..1a742227b6 100644 --- a/config/honeybadger.php +++ b/config/honeybadger.php @@ -1,5 +1,7 @@ env('HONEYBADGER_API_KEY'), 'environment' => [ @@ -22,5 +24,8 @@ 'timeout' => 0, 'proxy' => [], ], - 'excluded_exceptions' => [], + 'excluded_exceptions' => [ + App_Model_Exception::class, + DisciplinesWithoutInformedHoursException::class + ], ]; diff --git a/config/lighthouse.php b/config/lighthouse.php index 44b0867750..6170ec2910 100755 --- a/config/lighthouse.php +++ b/config/lighthouse.php @@ -72,7 +72,7 @@ */ 'schema' => [ - 'register' => base_path('packages/portabilis/pre-matricula/graphql/schema.graphql'), + 'register' => base_path('graphql/schema.graphql'), ], /* diff --git a/database/csv/censo/2022/create_curso_superior_2022.csv b/database/csv/censo/2022/create_curso_superior_2022.csv new file mode 100644 index 0000000000..44fce4b67f --- /dev/null +++ b/database/csv/censo/2022/create_curso_superior_2022.csv @@ -0,0 +1,11 @@ +0614I012,Inteligência artificial,3,1,1 +0614I013,Inteligência artificial,1,1,1 +0616I013,Internet das coisas,1,1,1 +0617A013,Agrocomputação,1,1,1 +0617C012,Ciência de dados,3,1,1 +0617C013,Ciência de dados,1,1,1 +0617C022,Computação e Tecnologias da Informação e Comunicação (TIC) em biociências e saúde,3,1,1 +0617C023,Computação e Tecnologias da Informação e Comunicação (TIC) em biociências e saúde,1,1,1 +0617C032,Criação digital,3,1,1 +0617C033,Criação digital,1,1,1 +1088P013,Programas interdisciplinares abrangendo serviços,4,1,1 diff --git a/database/csv/censo/2022/create_ies_2022.csv b/database/csv/censo/2022/create_ies_2022.csv new file mode 100644 index 0000000000..a049c24ff1 --- /dev/null +++ b/database/csv/censo/2022/create_ies_2022.csv @@ -0,0 +1,101 @@ +"24463","FACULDADE VITORIA EM CRISTO","1","1","RJ" +"24046","FACULDADE DA ASSOCIACAO MEDICA PAULISTA","1","1","SP" +"24530","FACULDADE DA POLICIA MILITAR DE SANTA CATARINA","1","1","SC" +"21998","FACULDADE PANAMERICANA DE ADMINISTRACAO E DIREITO","1","1","PR" +"23242","ESCOLA SUPERIOR SAO JUDAS DE SAO BERNARDO DO CAMPO","1","1","SP" +"23181","FACULDADE INTERCONTINENTAL","1","1","SP" +"22985","FACULDADE TRILOGICA NOSSA SENHORA DE TODOS OS POVOS","1","1","SP" +"23890","FACULDADES INTEGRADAS DE SAUDE E EDUCACAO DO BRASIL","1","1","MT" +"23224","FACULDADE PRESIDENTE DUTRA","1","1","MA" +"23244","INSTITUTO UNIVERSITARIO UNA DE CONSELHEIRO LAFAIETE","1","1","MG" +"23776","FACULDADE DE ENSINO SUPERIOR DO LAGO","1","1","MA" +"24457","FACULDADE PARAISO ARARIPINA","1","1","PE" +"23875","FACULDADE INSTITUTO DE ENSINO SUPERIOR","1","1","GO" +"18039","FACULDADE CAPACITAR","1","1","RS" +"23866","FACULDADE RESULTADOS","1","1","MS" +"24471","FACULDADE ATENAS VALENCA","1","1","BA" +"23381","FACULDADE DE GOVERNANCA ENGENHARIA E EDUCACAO DE SAO PAULO","1","1","SP" +"22866","FACULDADE ASSOCIADA BRASIL EAD","1","1","SP" +"24300","FACULDADE UNIDA DE SAO PAULO EAD","1","1","SP" +"24470","FACULDADE DE MEDICINA DO SERTAO","1","1","PE" +"24025","CENTRO DE ENSINO SUPERIOR DE SERRA DOURADA","1","1","SP" +"24026","INSTITUTO DE SERRA DOURADA","1","1","SP" +"24055","FACULDADE FASIPE DE PRIMAVERA","1","1","MT" +"22748","FACULDADES FAMEP","1","1","PI" +"23109","FACULDADE DE CIENCIAS E TECNOLOGIA DE CHAPECO","1","1","SC" +"20584","FACULDADE SANTANA","1","1","PI" +"23723","FACULDADE VOLPE MIELE","1","1","SP" +"22769","GAIA","1","1","SP" +"24287","FACULDADE BIOPARK","1","1","PR" +"23252","ESCOLA SUPERIOR UNA DE ITUMBIARA","1","1","GO" +"24525","CENTRO INTERNACIONAL DE ENSINO EM CIENCIAS E SUAS APLICACOES","1","1","SP" +"23038","FACULDADE DE EDUCACAO E TECNOLOGIA DO ESPIRITO SANTO","1","1","ES" +"24275","FACULDADE UNIFICADA DO ESTADO DE SAO PAULO","1","1","SP" +"22178","FACULDADE PITAGORAS ANHANGUERA DE TRES LAGOAS","1","1","MS" +"23973","CENTRO DE ENSINO SUPERIOR DE ALTAMIRA","1","1","PA" +"22966","FACULDADE INSTITUTO BRASILEIRO DE ENSINO","1","1","MG" +"24066","FACULDADE CRISTA DA CIDADE","1","1","SP" +"17783","FACULDADE DE MEDIACAO IVIA CORNELI","1","1","MG" +"23026","ESCOLA DE SARGENTOS DE LOGISTICA","1","1","RJ" +"18751","FACULDADE MALTA","1","1","PI" +"25157","FACULDADE LUIZ MARIO MOUTINHO","1","1","PE" +"24459","FACULDADE TIRADENTES DE GOIANA","1","1","PE" +"23455","FACULDADE INTEGRADA INSTITUTO SOUZA","1","1","MG" +"24205","FACULDADE SOBERANA DE ARAPIRACA","1","1","AL" +"24700","FACULDADE INSTITUTO RIO DE JANEIRO","1","1","RJ" +"24687","FACULDADE DE MEDICINA ESTACIO DE CASTANHAL","1","1","PA" +"23946","FACULDADE DE TECNOLOGIA E CIENCIAS FTC JUAZEIRO DO NORTE","1","1","CE" +"23331","ALFA FACULDADE DE TEOFILO OTONI","1","1","MG" +"23707","FACULDADE DE TECNOLOGIA E EDUCACAO SUPERIOR E PROFISSIONALIZ","1","1","GO" +"23893","FACULDADE ANHANGUERA DE ITAPETININGA","1","1","SP" +"23322","FACULDADE MENNA BARRETO","1","1","PR" +"24196","FACULDADE CLEBER LEITE EAD","1","1","SP" +"23023","FACULDADE TECNOLOGICA ANTHROPOS","1","1","CE" +"23280","FACULDADE DE EDUCACAO SUPERIOR IESLA","1","1","MG" +"24922","FACULDADE SAO VICENTE DE IRATI","1","1","PR" +"25613","ACADEMIA DE POLICIA MILITAR DE MINAS GERAIS","1","1","MG" +"24980","FACULDADE DE TECNOLOGIA SENAC PONTA GROSSA","1","1","PR" +"24399","FACULDADE ESCOLA SOBRAL DE OLIVEIRA","1","1","CE" +"24464","FACULDADE DE CIENCIAS DA SAUDE PITAGORAS DE CODO","1","1","MA" +"22703","FACULDADE PITAGORAS DE CONCORDIA","1","1","SC" +"24446","FACULDADE DE MEDICINA DE ACAILANDIA","1","1","MA" +"24245","FACULDADE QUALITTAS EAD","1","1","SP" +"23394","FACULDADE DE ENGENHARIA E ADMINISTRACAO PAULISTA","1","1","SP" +"22425","FACULDADE ESAMC FRANCA","1","1","SP" +"23924","FACULDADE ANHANGUERA DE SAO JOAO DE MERITI","1","1","RJ" +"25377","FACULDADE INPRO","1","1","GO" +"22771","FACULDADE CRISTO REI","1","1","PR" +"21220","FACULDADE SILVA NETO","1","1","DF" +"23118","IBPTECH FACULDADE DE CIENCIAS FORENSES E TECNOLOGIA","1","1","SP" +"23908","FACULDADE SAO FRANCISCO DO CEARA CRATO","1","1","CE" +"22759","INSTITUTO UNA DE ITABIRA","1","1","MG" +"23912","FACULDADE IBCMED SAO PAULO","1","1","SP" +"24392","FACULDADE DINAMICA","1","1","GO" +"23842","FACULDADE SENAC CEARA","1","1","CE" +"23163","FACULDADE DE EDUCACAO SUPERIOR DE DIVINOPOLIS","1","1","MG" +"24884","FACULDADE MOCA DE SAO PAULO","1","1","SP" +"24214","FACULDADE DOS GENIOS","1","1","MG" +"23273","FACULDADE UNA DE ITUMBIARA","1","1","GO" +"24403","FACULDADE ATENAS SUL DE MINAS","1","1","MG" +"24168","FACULDADE UNIDA DE SAO PAULO","1","1","SP" +"23117","FACULDADE CAPISTRANO DE ABREU","1","1","CE" +"23028","ESCOLA DE SARGENTOS DAS ARMAS","1","1","MG" +"22177","FACULDADE UNIAO PAULISTANA","1","1","SP" +"22716","FACULDADE PITAGORAS DE PENAPOLIS","1","1","SP" +"23798","FACULDADE DE CIENCIAS E EDUCACAO EM SAUDE","1","1","PE" +"23877","FACULDADE ENDEAVOUR","1","1","DF" +"23843","FACULDADE ITEC","1","1","PB" +"24391","FACULDADE DE EDUCACAO DA IBIAPABA","1","1","CE" +"22650","FACULDADE IMPACTOS FACI","1","1","MT" +"22660","FACULDADE UNYPUBLICA","1","1","PR" +"23236","ESCOLA SUPERIOR SAO JUDAS DE GUARULHOS","1","1","SP" +"23333","FACULDADE DAMASIO EDUCACIONAL","1","1","SP" +"23894","FACULDADE PITAGORAS DE BELEM","1","1","PA" +"23146","FACULDADE DOMINIUS","1","1","BA" +"24400","FACULDADE DOCTUM DE SETE LAGOAS","1","1","MG" +"23332","FACULDADE ALFA DE TEOFILO OTONI","1","1","MG" +"24405","INSTITUTO DE DESENVOLVIMENTO EDUCACIONAL DA AMAZONIA","1","1","MA" +"23245","ESCOLA SUPERIOR UNA DE CONSELHEIRO LAFAIETE","1","1","MG" +"24211","INSTITUTO AMAZONICO DE ENSINO SUPERIOR","1","1","AM" +"24074","FACULDADE DE GESTAO EDUCACAO E DE SAUDE","1","1","MT" +"23733","FACULDADE RIO GUARIBAS","1","1","PI" diff --git a/database/csv/censo/2022/update_names_ies_2022.csv b/database/csv/censo/2022/update_names_ies_2022.csv new file mode 100644 index 0000000000..164c52dc2f --- /dev/null +++ b/database/csv/censo/2022/update_names_ies_2022.csv @@ -0,0 +1,363 @@ +27,CENTRO UNIVERSITARIO VALE DO RIO VERDE +131,FACULDADES INTEGRADAS DO ESTADO DE SAO PAULO +135,CLARETIANO CENTRO UNIVERSITARIO +139,FACULDADE UNIBRASILIA DE CIENCIAS ECONOMICAS DE MINAS GERAIS +151,ESCOLA DE ADMINISTRACAO DE EMPRESAS DE SAO PAULO FGV EAESP +159,FACULDADE NOVA ROMA CARUARU +166,FAI CENTRO DE ENSINO SUPERIOR EM GESTAO TECNOLOGIA E EDUCACAO +224,CENTRO UNIVERSITARIO FMABC +282,FACULDADE DE CIENCIAS ADMINISTRATIVAS E CONTABEIS COSTA BRAGA +298,UNIVERSIDADE PITAGORAS UNOPAR ANHANGUERA +384,UNIVERSIDADE EVANGELICA DE GOIAS +461,CENTRO UNIVERSITARIO ARMANDO ALVARES PENTEADO +468,FACULDADE DE FILOSOFIA CIENCIAS E LETRAS DE ITAPETININGA +473,FACULDADE DE CIENCIAS ECONOMICAS ADMINISTRATIVAS E DA COMPUTACAO DOM BOSCO +515,CENTRO UNIVERSITARIO ANHANGUERA PITAGORAS UNOPAR DE NITEROI +535,FUNDACAO FACULDADE DE FILOSOFIA CIENCIAS E LETRAS DE MANDAGUARI +554,FACULDADE DE FILOSOFIA CIENCIAS E LETRAS DE BOA ESPERANCA +599,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DA BAHIA +600,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO MARANHAO +601,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO RIO GRANDE DO SUL +692,FACULDADE DE PETROLINA +727,FACULDADE DE FILOSOFIA CIENCIAS E LETRAS DO ALTO SAO FRANCISCO +738,CENTRO UNIVERSITARIO TERESA D'AVILA +898,CENTRO UNIVERSITARIO UNISAN +900,FACULDADE UNIRIO +926,CENTRO UNIVERSITARIO ANHANGUERA PITAGORAS UNOPAR DE CAMPO GRANDE +966,FACULDADE DE TURISMO SANTOS DUMONT +1014,INSTITUTO SUPERIOR E CENTRO EDUCACIONAL LUTERANO BOM JESUS - IELUSC +1058,CENTRO UNIVERSITARIO ESTACIO DA BAHIA +1065,FACULDADE DE CIENCIAS ECONOMICAS E ADMINISTRATIVAS DE VILA VELHA +1076,FACULDADE DE FILOSOFIA CIENCIAS E LETRAS DE CAJAZEIRAS +1082,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO RIO GRANDE DO NORTE +1120,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA FLUMINENSE +1160,CENTRO UNIVERSITARIO CAMBURY +1166,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DA PARAIBA +1170,CENTRO UNIVERSITARIO FAMEC +1205,CENTRO UNIVERSITARIO FAEL +1215,FACULDADE ANGLO LATINO +1244,CENTRO UNIVERSITARIO MULTIVIX VITORIA +1257,"FACULDADE DE ADMINISTRACAO CIENCIAS, EDUCACAO E LETRAS" +1272,FACULDADE SANT¿ANNA DE SALTO +1300,INSTITUTO TAQUARITINGUENSE DE ENSINO SUPERIOR DR. ARISTIDES DE CARVALHO SCHLOBACH +1303,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA GOIANO +1305,FACULDADE DE CIENCIAS JURIDICAS GERENCIAIS E EDUCACAO DE SINOP +1337,CENTRO UNIVERSITARIO MATER DEI +1350,CENTRO UNIVERSITARIO DO VALE DO JAGUARIBE +1362,CENTRO UNIVERSITARIO GOVERNADOR OZANAM COELHO +1418,CENTRO UNIVERSITARIO TOLEDO WYDEN +1425,FACULDADE EVOLUIR +1438,FACULDADES DE CAMPINAS +1457,FACULDADE ESTACIO DE COTIA +1488,FACULDADE LUSOFONA DO RIO DE JANEIRO +1500,FACULDADE UNIGUACU +1514,CENTRO UNIVERSITARIO VALE DO CRICARE +1578,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA SULRIO-GRANDENSE +1600,CENTRO UNIVERSITARIO DO NORTE DE MINAS +1611,FACULDADES FATIFAJAR FATIFAJAR ARAPOTI +1650,FACULDADE J. SIMOES ENSINO SUPERIOR +1682,FACULDADE CATOLICA SALESIANA DE MACAE +1708,CENTRO UNIVERSITARIO DO RECIFE +1716,CENTRO UNIVERSITARIO UNIAO DAS AMERICAS DESCOMPLICA +1718,CENTRO UNIVERSITARIO NOBRE DE FEIRA DE SANTANA +1807,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO CEARA +1808,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO ESPIRITO SANTO +1809,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DE PERNAMBUCO +1810,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DE SAO PAULO +1811,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DE GOIAS +1812,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO AMAZONAS +1813,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO PARA +1820,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO PIAUI +1822,CENTRO UNIVERSITARIO SULAMERICANA +1840,CENTRO UNIVERSITARIO CASTELO BRANCO +1863,FACULDADE INTERVALE +1875,FACULDADE DE FILOSOFIA CIENCIAS E LETRAS DE IBITINGA +1900,CENTRO UNIVERSITARIO DE ENSINO CIENCIA E TECNOLOGIA DO PARANA +1918,CENTRO UNIVERSITARIO UNIVINTE +1923,FACULDADE ARNALDO JANSSEN +1958,CENTRO UNIVERSITARIO SENAI BLUMENAU +1961,INSTITUTO TECNOLOGICO E DAS CIENCIAS SOCIAIS APLICADAS E DA SAUDE DO CENTRO EDUC. N. SRª AUXILIADORA +1964,FACULDADE DE TECNOLOGIA EM HOTELARIA GASTRONOMIA E TURISMO DE SAO PAULO +1969,FACULDADE DOS IMIGRANTES FAI +2021,FACULDADE JK UNIDADE II - GAMA +2067,CENTRO UNIVERSITARIO DE CIENCIAS E EMPREENDEDORISMO +2133,FACULDADE DE CIENCIAS EDUCACAO E TEOLOGIA DO NORTE DO BRASIL +2142,FACULDADE MULTIEDUCATIVA +2332,FACULDADE IBERO AMERICANA DE SAO PAULO +2336,CENTRO UNIVERSITARIO BRASILIA DO ESTADO DE GOIAS +2402,FACULDADE DE TECNOLOGIA E CIENCIAS DE SALVADOR +2536,INSTITUTO DE EDUCACAO E INOVACAO +2548,FACULDADE DE TEOLOGIA FILOSOFIA E CIENCIAS HUMANAS GAMALIEL +2556,FIAMFAAM - CENTRO UNIVERSITARIO +2561,FACULDADE DE CIENCIAS ADMINISTRATIVAS +2572,FACULDADE REGIONAL DE FILOSOFIA CIENCIAS E LETRAS DE CANDEIAS +2613,CENTRO UNIVERSITARIO ESTACIO META DE RIO BRANCO ESTACIO +2726,FACULDADE BILAC DE SAO JOSE DOS CAMPOS +2770,CENTRO UNIVERSITARIO FACUNICAMPS +2773,FACULDADE ANHANGUERA DE MACAPA +2885,FACULDADE UNIVERITAS UNIVERSUS VERITAS DE BELO HORIZONTE +3160,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DE ALAGOAS +3161,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO SERTAO PERNAMBUCANO +3162,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DE SANTA CATARINA +3163,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO RIO DE JANEIRO +3164,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DE MATO GROSSO +3165,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO TRIANGULO MINEIRO +3183,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DE SERGIPE +3184,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DE RORAIMA +3188,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO NORTE DE MINAS GERAIS +3189,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DE MINAS GERAIS +3279,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO SUDESTE DE MINAS GERAIS +3308,FACULDADE ENGENHEIRO SALVADOR ARENA +3397,FACULDADE BOAS NOVAS DE CIENCIAS TEOLOGICAS SOCIAIS E BIOTECNOLOGICAS +3430,FACULDADE UBERLANDENSE DE NUCLEOS INTEGRADOS DE ENSINO SERVICO SOCIAL E APRENDIZAGEM +3432,FACULDADES INTEGRADAS DE CIENCIAS HUMANAS SAUDE E EDUCACAO DE GUARULHOS +3437,FACULDADE UNISUL DE BALNEARIO CAMBORIU +3502,FACULDADE DA FRONTEIRA FAF +3525,FACULDADE EVANGELICA DE TECNOLOGIA CIENCIAS E BIOTECNOLOGIA DA CGADB +3614,ESCOLA DE CIENCIAS SOCIAIS FGV CPDOC +3657,FACULDADE MONTES CLAROS +3746,FACULDADE IBRA DA GRANDE SAO PAULO +3756,FACULDADE ALFAUNIPAC DE ALMENARA +3758,FACULDADE UNISUL DE FLORIANOPOLIS +3775,INSTITUTO UVB.BR +3817,CENTRO UNIVERSITARIO MAURICIO DE NASSAU DE JOAO PESSOA +3830,INSTITUTO CENTRO DE ENSINO TECNOLOGICO SOBRAL +3853,CENTRO UNIVERSITARIO MAURICIO DE NASSAU DE NATAL +3854,FACULDADE IBRA DE BRASILIA +3867,CENTRO UNIVERSITARIO MAUA DE BRASILIA +3877,FACULDADE MAUA DE GOIAS +3980,FACULDADE CCI +3987,CENTRO UNIVERSITARIO GOYAZES +4007,FATECE FACULDADE DE TECNOLOGIA CIENCIAS E EDUCACAO +4029,FACULDADE DE SANTA BARBARA D'OESTE +4093,CENTRO UNIVERSITARIO DE TECNOLOGIA DE CURITIBA +4098,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA FARROUPILHA +4210,ESCOLA SUPERIOR DE ADMINISTRACAO MARKETING E COMUNICACAO DO MORUMBI +4250,FACULDADE DE CIENCIAS GERENCIAIS ALVES FORTES (JUIZ DE FORA) +4259,FACULDADE DE INHUMAS FAC-MAIS +4358,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO SUL DE MINAS GERAIS +4416,FACULDADE JK UNIDADE I - GAMA +4443,FACULDADE MERIDIONAL DE IJUI +4446,FACULDADE CIDADE DE GUANHAES FACIG +4584,FACULDADE FACESE +4606,FACULDADE DE TECNOLOGIA CONTEC UNIDADE DE CARAPINA +4613,CENTRO UNIVERSITARIO FAEMA +4732,FACULDADE DE TECNOLOGIA E INOVACAO SENAC DF +4786,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO TOCANTINS +4788,INSTITUTO CENTRO DE ENSINO TECNOLOGICO CARIRI +4789,INSTITUTO CENTRO DE ENSINO TECNOLOGICO LIMOEIRO DO NORTE +4922,FACULDADE INTEGRADA DAS CATARATAS EJOVEM +4983,FACULDADE IBRA DE TECNOLOGIA +5000,FACULDADE AGORA ADMINISTRACAO EDUCACAO E CULTURA +5016,FACULDADE DE EDUCACAO TECNOLOGICA DO ESTADO DO RIO DE JANEIRO FERNANDO MOTA +5036,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA CATARINENSE +5105,CENTRO UNIVERSITARIO INTERNACIONAL SIGNORELLI +10058,FACULDADE DA FRATERNIDADE DE VALENCA +10836,FACULDADE UNIAO ARARUAMA DE ENSINO S/S LTDA. +11376,FACULDADE VILLALOBOS DO CONE-LESTE PAULISTA +11752,FACULDADE SUDOESTE PAULISTA TATUI - FSP +12189,FACUMINAS FACULDADE +12247,INSTITUTO BRASILEIRO DE ENSINO DESENVOLVIMENTO E PESQUISA DE BRASILIA +12718,FACULDADE ACESITA +12723,FACULDADE FINACI +12748,FETAC FACULDADE DE EDUCACAO TECNOLOGIA E ADMINISTRACAO DE CAARAPO +12749,FACULDADES UNIDAS DE PESQUISA CIENCIAS E SAUDE LTDA +12758,FACULDADE UNESCUNAMA +12916,IPOG INSTITUTO DE POS-GRADUACAO & GRADUACAO +13034,FACULDADE DE ENSINO SUPERIOR +13073,FACULDADE DE TECNOLOGIA AEROTD +13631,"FACULDADE DE CIENCIAS EDUCACAO, SAUDE, PESQUISA E GESTAO" +13735,FACULDADE DE TECNOLOGIA CAPACITACAO E GESTAO INTEGRAL +14194,FATEC FACULDADE DE TEOLOGIA E CIENCIAS DE VOTUPORANGA +14408,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DE BRASILIA +14509,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA BAIANO +14622,FACULDADE UNIFTB +14724,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO PARANA +14738,FACULDADE FELUMA SAUDE TECNOLOGIA E CIENCIA +14892,FACULDADE DE CIENCIAS DA SAUDE DE BARRETOS DR. PAULO PRATA +15272,FACULDADE DE TECNOLOGIA EDUCACAO SUPERIOR E PROFISSIONAL +15280,FACULDADE BRASILEIRA DE ENSINO PESQUISA E EXTENSAO +15507,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO ACRE +15520,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DE MATO GROSSO DO SUL +15522,INSTITUTO FEDERAL DE EDUCACAO CIENCIA E TECNOLOGIA DO AMAPA +15667,FACULDADE UNIRB JUAZEIRO +15680,FATEC CRUZEIRO PROF. WALDOMIRO MAY +15693,FACULDADE DE TECNOLOGIA DE ITAPETININGA PROF.ANTONIO BELIZANDRO BARBOSA REZENDE +15708,FACULDADE DE TECNOLOGIA DR. THOMAZ NOVELINO +15803,FACULDADE DE TECNOLOGIA DE TATUI PROF. WILSON ROBERTO RIBEIRO DE CAMARGO +15839,FACULDADE PITAGORAS UNOPAR DE JOAO PESSOA +15922,FACULDADE FABAD +16437,FACULDADE DE CIENCIAS DA SAUDE +16556,FACULDADE ALFAUNIPAC DE CAPELINHA +16816,FACULDADE DO VALE +17269,INSTITUTO DE EDUCACAO SUPERIOR E INOVACAO PERSONA +17291,FACULDADE FAPAF +17394,FACULDADE 05 DE JULHO +17395,INSTITUTO EDUCACIONAL DAS AMERICAS +17565,FACULDADE DE CIENCIAS HUMANASEXATAS E DA SAUDE DO PIAUI +17598,FACULDADE PROF. WLADEMIR DOS SANTOS +17651,FACULDADE JK GOIAS - PADRE BERNARDO +17672,INSTITUTO BRASILEIRO DE ENSINO DESENVOLVIMENTO E PESQUISA DE SAO PAULO +17758,FACULDADES FAMEP UNIDADE EUCLIDES DA CUNHA BA +17892,FACULDADE DE ESTUDOS BIBLICOS INTERDISCIPLINARES +18034,CENTRO DE ENSINO SUPERIOR RIOGRANDENSE +18066,FACULDADE DE CIENCIAS E TECNOLOGIA PASCHOAL DANTAS +18072,FACULDADE DE DIREITO TECH DE SAO PAULO +18304,FACULDADE UNIFATEC +18463,FACULDADE UNIFAHE +18520,FACULDADE ALFAUNIPAC DE ARACUAI +18637,FACULDADE IMES +18679,FACULDADE DE ADMINISTRACAO COMERCIO E EMPREENDEDORISMO +18692,FACULDADE ALFAUNIPAC DE GUANHAES +18696,FACULDADE DYNAMUS DE CAMPINAS +18734,FACULDADE DE MARTINOPOLIS +19207,FACULDADE SUPREMO +19219,FACULDADE FASIPE DF +19252,FACULDADE ITEQ ESCOLAS +19320,ESCOLA DE POLITICAS PUBLICAS E GOVERNO DA FUNDACAO GETULIO VARGAS +19334,FACULDADE UNINASSAU BRASILIA +19404,FACULDADE INTEGRADA CESUMAR DE CURITIBA +19727,FACULDADE REPUBLICANA +19737,FACULDADE RENOVACAO DE GUARAPUAVA +19780,FACULDADE PITAGORAS UNOPAR DE GUANAMBI +19853,FACULDADE DOM BOSCO PARANA +19878,FACULDADE BRAVIUM +19879,FACULDADE INTEGRADA DE PESQUISA E EDUCACAO EM SAUDE DE SP +19909,FACULDADE ICTQ/PGE +20099,FACULDADE DE DIREITO CIENCIAS E TECNOLOGIA SANTA MARIA MADA +20563,FACULDADES JOAO PAULO II RIO GRANDE +20622,FACULDADE UNIRB CAMACARI +20663,FACULDADE INNOVATE DE ANAPOLIS +21364,FACULDADE FAEL DE PORTO ALEGRE +21366,FACULDADE FAEL DE CURITIBA +21412,FACULDADE TEATICA +21446,INSTITUTO SUPERIOR DA CONVENCAO NAC. DAS ASSEMBLEIAS DE DEUS +21681,FACULDADE UNIVEST DE EDUCACAO +21757,FASUL EDUCACIONAL EAD +21814,INSTITUTO DE PESQUISAS ENSINO E GESTAO EM SAUDE +21826,FACULDADE SEBRAE +21857,FACULDADE TECNOLOGICA DE LIMOEIRO DO NORTE: LADISLAU PEREIRA +21861,FACULDADE UNIVERSO BRASILIA +21891,FACULDADE DO SERTAO DO ARARIPE +21893,FACULDADE MAURICIO DE NASSAU DE SANTO ANDRE +21894,FACULDADE MAURICIO DE NASSAU DE SOROCABA +21898,FACULDADE MAURICIO DE NASSAU DE BLUMENAU +21899,FACULDADE MAURICIO DE NASSAU DE PELOTAS +21935,FUNDACAO ESCOLA LINCE KEMPIM +21950,FACULDADE TUCURUI +21953,INSTITUTO UNIAO DAS FACULDADES AMERICANAS +21978,FACULDADE EDUFOR DE SALVADOR +21999,FACULDADE PRIME +22090,FACULDADE DE CIENCIAS DA SAUDE DO GRUPO HOSPITALAR CONCEICAO +22097,FACULDADE POLITECNICA DE CAMPO GRANDE +22123,FACULDADE DE CIENCIAS JURIDICAS ANHANGUERA DE ARAPIRACA +22124,FACULDADE PITAGORAS UNOPAR DE BRUMADO +22125,FACULDADE DE CIENCIAS JURIDICAS DE BOM JESUS DA LAPA +22142,FACULDADE DE CIENCIAS JURIDICAS DE JABOATAO DOS GUARARAPES +22146,FACULDADE DE CIENCIAS JURIDICAS DE JAU +22147,FACULDADE DE CIENCIAS JURIDICAS DE BELO JARDIM +22154,FACULDADE DE CIENCIAS JURIDICAS DE JACOBINA +22173,FACULDADE UNINORTE BARCARENA +22174,FACULDADE UNINORTE ALTAMIRA +22181,FACULDADE PITAGORAS DE RIO VERDE +22185,FACULDADE DE CIENCIAS JURIDICAS DE CRUZ DAS ALMAS +22214,FACULDADE UNIVERITAS UNIVERSUS VERITAS DE SAO GONCALO +22224,FACULDADE UNIVERITAS UNIVERSUS VERITAS SAO JOSE DO RIO PRETO +22232,FACULDADE DE CIENCIAS JURIDICAS DE ALTAMIRA +22237,FACULDADE DE CIENCIAS JURIDICAS DE ASSIS +22246,FACULDADE DO AMAZONAS DE ENSINO PESQUISA E INOVACAO +22252,FACULDADE UNIBRAS DO PARA +22262,FACULDADE DE PALMEIRAS DE GOIAS FACMAIS +22264,FACULDADE DO VALE DO JAGUARIBE MOSSORO +22310,FACULDADE SANTO ANTONIO DE FEIRA DE SANTANA +22420,FACULDADE UNIRB MACEIO +22424,FACULDADE ESAMC GOIANIA +22433,FACULDADES FAMEP UNIDADE PARNAIBA PI +22449,INSTITUTO SUPERIOR DE CIENCIAS DA SAUDE CARLOS CHAGAS +22452,FACULDADE ATITUDE DE EDUCACAO CONTINUADA +22453,FACULDADE UNINTESE +22455,FGW FACULDADE DE GESTAO WOLI +22462,FACULDADE UNIRB CIDADE DE FORTALEZA +22521,FACULDADES FAMEP UNIDADE IRARA BA +22592,FACULDADES INTEGRADAS DA AMERICA DO SUL +22603,FACULDADE ANCLIVEPA DE GESTAO E HUMANOLOGIA +22605,FACULDADE ALVORADA DE SAUDE +22606,FACULDADE DAMASIO +22625,FORS FACULDADE DE EDUCACAO E TECNOLOGIA +22628,CLARETIANO FACULDADE DE BOA VISTA +22629,CENTRO DE ESTUDOS EM DIREITO E NEGOCIOS +22634,FACULDADE FASIPE DE RONDONOPOLIS +22636,FACULDADE SAO FRANCISCO XAVIER +22643,FACULDADE METROPOLITANA DE TEFE +22651,INSTITUTO DE TECNOLOGIA E LIDERANCA +22659,FACULDADE SEB DE RIBEIRAO PRETO +22684,FACULDADE UNICENTRAL +22702,FACULDADE PITAGORAS UNOPAR DE CHAPECO +22707,FACULDADE PITAGORAS UNOPAR DE ITAJUBA +22710,FACULDADE PITAGORAS UNOPAR DE QUIXERAMOBIM +22712,FACULDADE PITAGORAS UNOPAR DE MURIAE +22715,FACULDADE PITAGORAS UNOPAR DE CANINDE +22736,FACULDADE UNISUL DE ITAJAI +22738,FACULDADE PITAGORAS UNOPAR DE CALDAS NOVAS +22739,INSTITUTO SOCIESC DE ITAJAI +22741,FACULDADE MASTER DO PARA FAMAP XINGUARA +22742,FACULDADE MASTER DO PARA FAMAP TUCUMA +22753,FACULDADE RIO PARNAIBA +22762,FACULDADE DE TECNOLOGIA E CIENCIAS FTC CARUARU +22764,ESCOLA SUPERIOR DE EDUCACAO +22775,FACULDADE GARCA BRANCA PANTANAL +22777,FACULDADE VALE DOS CARAJAS +22787,FACULDADE DE TECNOLOGIA E CIENCIAS FTC CAMACARI +22872,FACULDADE UNIABA +22911,FACULDADE DO SERTAO CENTRAL EAD +22917,FACULDADE DE CIENCIAS MEDICAS DE MARICA +22946,FACULDADE DE CIENCIAS JURIDICAS DE SANTA MARIA +22992,FACULDADE SENAI DE CONSTRUCAO +22996,FACULDADE DE TECNOLOGIA E CIENCIAS FTC PARNAMIRIM +22999,FACULDADE DE TECNOLOGIA E CIENCIAS FTC ITAPIPOCA +23000,FACULDADE DE TECNOLOGIA E CIENCIAS FTC CAUCAIA +23002,FACULDADE DE TECNOLOGIA E CIENCIAS FTC N. SRA. DO SOCORRO +23025,FACULDADE DE ENSINO SUPERIOR BRASILEIRA FACULDADE FEBRAS +23066,FACULDADE METROPOLITANA DE DIAS D'AVILA +23095,INSTITUTO SOCIESC DE JARAGUA DO SUL +23096,FACULDADE SANTO ANTONIO SJC +23097,FACULDADE IBMEC DE BRASILIA +23100,FACULDADE PITAGORAS UNOPAR DE JUAZEIRO DO NORTE +23101,FACULDADE DE ENGENHARIA PITAGORAS DE SANTAREM +23102,FACULDADE DE ENGENHARIA PITAGORAS DE SOBRAL +23110,FACULDADE SANTA TERESA D'AVILA +23130,INSTITUTO DE DESENVOLVIMENTO E APRENDIZAGEM IDEA SAO LUIZ +23147,FACULDADE DO COMERCIO DE SAO PAULO +23155,FACULDADE DE TECNOLOGIA E CIENCIAS FTC PORTO SEGURO +23159,FACULDADE BARAO DE JEQUIRICA +23164,CENTRO DE ENSINO SUPERIOR DE DIVINOPOLIS +23168,CENTRO DE ESTUDOS SUPERIORES DE JATAI +23172,FACULDADE DE EDUCACAO SUPERIOR DE POUSO ALEGRE +23176,FACULDADE DE EDUCACAO SUPERIOR DE SETE LAGOAS +23177,FACULDADE DE EDUCACAO SUPERIOR DE CATALAO +23179,CENTRO DE ENSINO SUPERIOR DE CATALAO +23180,ESCOLA SUPERIOR DE CATALAO +23201,INSTITUTO DE EDUCACAO SUPERIOR UNISUL DE ITAJAI +23202,FACULDADE SOCIESC DE EDUCACAO DE SAO BENTO DO SUL +23203,CENTRO DE ENSINO SUPERIOR SOCIESC DE SAO BENTO DO SUL +23215,FACULDADE GENNARI & PEARTREE +23218,FACULDADE PARAISO FORTALEZA +23228,FACULDADE SAO JUDAS DE GUARULHOS +23241,INSTITUTO UNIVERSITARIO SAO JUDAS DE SAO BERNARDO DO CAMPO +23261,FACULDADE SAO JUDAS DE SAO BERNARDO DO CAMPO +23342,FACULDADE AVANTIS DE FLORIANOPOLIS +23358,CENTRO DE ENSINO SUPERIOR SOCIESC DE JARAGUA DO SUL +23382,FACULDADE UNINORTE TAILANDIA +23389,FACULDADE UNIBRAS DO MARANHAO +23409,FACULDADE CENTRO SAO PAULO +23867,FACULDADE DE TECNOLOGIA DE SUMARE +24268,FACULDADE UNINORTE MARABA +24282,FACULDADE BOA ESPERANCA +24290,FACULDADE ANDREOTTI DE MARINGA +24443,FACULDADE AGES DE MEDICINA DE IRECE +24488,FACULDADE UNICESUMAR DE CORUMBA +24509,FACULDADE ESTACIO DE CANINDE +24672,FACULDADE DE TECNOLOGIA DE MATAO +25274,UNIVERSIDADE FEDERAL DE CATALAO +25282,UNIVERSIDADE FEDERAL DE JATAI +25352,UNIVERSIDADE FEDERAL DE RONDONOPOLIS diff --git a/database/migrations/2022_04_12_100809_alter_table_escola_add_poder_publico_parceria_convenio.php b/database/migrations/2022_04_12_100809_alter_table_escola_add_poder_publico_parceria_convenio.php new file mode 100644 index 0000000000..53b5cba55a --- /dev/null +++ b/database/migrations/2022_04_12_100809_alter_table_escola_add_poder_publico_parceria_convenio.php @@ -0,0 +1,42 @@ +setSchemaGrammar($typeClass); + + Schema::table( + 'pmieducar.escola', + static fn (Blueprint $table) => + $table + ->addColumn('int_array', 'poder_publico_parceria_convenio') + ->nullable() + ); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table( + 'pmieducar.escola', + static fn (Blueprint $table) => $table->dropColumn('poder_publico_parceria_convenio') + ); + } +}; diff --git a/database/migrations/2022_04_20_073535_alter_table_escola_add_formas_contratacao_adm_publica_e_outras_instituicoes.php b/database/migrations/2022_04_20_073535_alter_table_escola_add_formas_contratacao_adm_publica_e_outras_instituicoes.php new file mode 100644 index 0000000000..210704ff37 --- /dev/null +++ b/database/migrations/2022_04_20_073535_alter_table_escola_add_formas_contratacao_adm_publica_e_outras_instituicoes.php @@ -0,0 +1,42 @@ +setSchemaGrammar($typeClass); + + Schema::table( + 'pmieducar.escola', + static fn (Blueprint $table) => + $table + ->addColumn('int_array', 'formas_contratacao_adm_publica_e_outras_instituicoes') + ->nullable() + ); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table( + 'pmieducar.escola', + static fn (Blueprint $table) => $table->dropColumn('formas_contratacao_adm_publica_e_outras_instituicoes') + ); + } +}; diff --git a/database/migrations/2022_04_28_174108_alter_table_escola_add_nao_ha_funcionarios_para_funcoes.php b/database/migrations/2022_04_28_174108_alter_table_escola_add_nao_ha_funcionarios_para_funcoes.php new file mode 100644 index 0000000000..30b76b28e2 --- /dev/null +++ b/database/migrations/2022_04_28_174108_alter_table_escola_add_nao_ha_funcionarios_para_funcoes.php @@ -0,0 +1,31 @@ +boolean('nao_ha_funcionarios_para_funcoes')->default(false); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('pmieducar.escola', function (Blueprint $table) { + $table->dropColumn('nao_ha_funcionarios_para_funcoes'); + }); + } +}; diff --git a/database/migrations/2022_05_05_142627_create_employee_posgraduate_table.php b/database/migrations/2022_05_05_142627_create_employee_posgraduate_table.php new file mode 100755 index 0000000000..7a5dc7e965 --- /dev/null +++ b/database/migrations/2022_05_05_142627_create_employee_posgraduate_table.php @@ -0,0 +1,35 @@ +id(); + $table->integer('employee_id')->unsigned(); + $table->integer('entity_id')->unsigned(); + $table->integer('type_id')->unsigned()->nullable(); + $table->integer('area_id')->unsigned()->nullable(); + $table->integer('completion_year')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('employee_posgraduate'); + } +}; diff --git a/database/migrations/2022_05_05_144849_add_foreing_key_in_employee_posgraduate_table.php b/database/migrations/2022_05_05_144849_add_foreing_key_in_employee_posgraduate_table.php new file mode 100755 index 0000000000..9f6ddb6e70 --- /dev/null +++ b/database/migrations/2022_05_05_144849_add_foreing_key_in_employee_posgraduate_table.php @@ -0,0 +1,33 @@ +foreign(['employee_id', 'entity_id']) + ->on('pmieducar.servidor') + ->references(['cod_servidor', 'ref_cod_instituicao']); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('employee_posgraduate', function (Blueprint $table) { + $table->dropForeign(['employee_id', 'entity_id']); + }); + } +}; diff --git a/database/migrations/2022_05_05_161848_populate_employee_posgraduate.php b/database/migrations/2022_05_05_161848_populate_employee_posgraduate.php new file mode 100755 index 0000000000..729e7686fa --- /dev/null +++ b/database/migrations/2022_05_05_161848_populate_employee_posgraduate.php @@ -0,0 +1,40 @@ +integer('qtd_matriculas_atividade_complementar')->nullable(); + $table->integer('qtd_atendimento_educacional_especializado')->nullable(); + $table->integer('qtd_ensino_regular_creche_par')->nullable(); + $table->integer('qtd_ensino_regular_creche_int')->nullable(); + $table->integer('qtd_ensino_regular_pre_escola_par')->nullable(); + $table->integer('qtd_ensino_regular_pre_escola_int')->nullable(); + $table->integer('qtd_ensino_regular_ensino_fund_anos_iniciais_par')->nullable(); + $table->integer('qtd_ensino_regular_ensino_fund_anos_iniciais_int')->nullable(); + $table->integer('qtd_ensino_regular_ensino_fund_anos_finais_par')->nullable(); + $table->integer('qtd_ensino_regular_ensino_fund_anos_finais_int')->nullable(); + $table->integer('qtd_ensino_regular_ensino_med_anos_iniciais_par')->nullable(); + $table->integer('qtd_ensino_regular_ensino_med_anos_iniciais_int')->nullable(); + $table->integer('qtd_edu_especial_classe_especial_par')->nullable(); + $table->integer('qtd_edu_especial_classe_especial_int')->nullable(); + $table->integer('qtd_edu_eja_ensino_fund')->nullable(); + $table->integer('qtd_edu_eja_ensino_med')->nullable(); + $table->integer('qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_par')->nullable(); + $table->integer('qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_int')->nullable(); + $table->integer('qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_par')->nullable(); + $table->integer('qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_int')->nullable(); + $table->integer('qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_par')->nullable(); + $table->integer('qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_int')->nullable(); + $table->integer('qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_par')->nullable(); + $table->integer('qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_int')->nullable(); + $table->integer('qtd_edu_prof_quali_prof_tec_inte_ensino_med_par')->nullable(); + $table->integer('qtd_edu_prof_quali_prof_tecinte_ensino_med_int')->nullable(); + $table->integer('qtd_edu_prof_quali_prof_tec_conc_ensino_med_par')->nullable(); + $table->integer('qtd_edu_prof_quali_prof_tec_conc_ensino_med_int')->nullable(); + $table->integer('qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_par')->nullable(); + $table->integer('qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_int')->nullable(); + $table->integer('qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_par')->nullable(); + $table->integer('qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_int')->nullable(); + $table->integer('qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_par')->nullable(); + $table->integer('qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_int')->nullable(); + $table->integer('qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_par')->nullable(); + $table->integer('qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_int')->nullable(); + $table->integer('qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_par')->nullable(); + $table->integer('qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_int')->nullable(); + $table->integer('qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_par')->nullable(); + $table->integer('qtd_edu_prof_edu_prof_tec_nivel_med_subsequente_ensino_med')->nullable(); + $table->integer('qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_int')->nullable(); + $table->integer('qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_par')->nullable(); + $table->integer('qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_int')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('pmieducar.escola', static function (Blueprint $table) { + $table->dropColumn('qtd_matriculas_atividade_complementar'); + $table->dropColumn('qtd_atendimento_educacional_especializado'); + $table->dropColumn('qtd_ensino_regular_creche_par'); + $table->dropColumn('qtd_ensino_regular_creche_int'); + $table->dropColumn('qtd_ensino_regular_pre_escola_par'); + $table->dropColumn('qtd_ensino_regular_pre_escola_int'); + $table->dropColumn('qtd_ensino_regular_ensino_fund_anos_iniciais_par'); + $table->dropColumn('qtd_ensino_regular_ensino_fund_anos_iniciais_int'); + $table->dropColumn('qtd_ensino_regular_ensino_fund_anos_finais_par'); + $table->dropColumn('qtd_ensino_regular_ensino_fund_anos_finais_int'); + $table->dropColumn('qtd_ensino_regular_ensino_med_anos_iniciais_par'); + $table->dropColumn('qtd_ensino_regular_ensino_med_anos_iniciais_int'); + $table->dropColumn('qtd_edu_especial_classe_especial_par'); + $table->dropColumn('qtd_edu_especial_classe_especial_int'); + $table->dropColumn('qtd_edu_eja_ensino_fund'); + $table->dropColumn('qtd_edu_eja_ensino_med'); + $table->dropColumn('qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_par'); + $table->dropColumn('qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_int'); + $table->dropColumn('qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_par'); + $table->dropColumn('qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_int'); + $table->dropColumn('qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_par'); + $table->dropColumn('qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_int'); + $table->dropColumn('qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_par'); + $table->dropColumn('qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_int'); + $table->dropColumn('qtd_edu_prof_quali_prof_tec_inte_ensino_med_par'); + $table->dropColumn('qtd_edu_prof_quali_prof_tecinte_ensino_med_int'); + $table->dropColumn('qtd_edu_prof_quali_prof_tec_conc_ensino_med_par'); + $table->dropColumn('qtd_edu_prof_quali_prof_tec_conc_ensino_med_int'); + $table->dropColumn('qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_par'); + $table->dropColumn('qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_int'); + $table->dropColumn('qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_par'); + $table->dropColumn('qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_int'); + $table->dropColumn('qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_par'); + $table->dropColumn('qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_int'); + $table->dropColumn('qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_par'); + $table->dropColumn('qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_int'); + $table->dropColumn('qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_par'); + $table->dropColumn('qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_int'); + $table->dropColumn('qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_par'); + $table->dropColumn('qtd_edu_prof_edu_prof_tec_nivel_med_subsequente_ensino_med'); + $table->dropColumn('qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_int'); + $table->dropColumn('qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_par'); + $table->dropColumn('qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_int'); + }); + } +}; diff --git a/database/migrations/2022_05_16_100510_add_itinerary_columns_in_erollments_table.php b/database/migrations/2022_05_16_100510_add_itinerary_columns_in_erollments_table.php new file mode 100755 index 0000000000..226d62aba3 --- /dev/null +++ b/database/migrations/2022_05_16_100510_add_itinerary_columns_in_erollments_table.php @@ -0,0 +1,45 @@ +setSchemaGrammar($typeClass); + + Schema::table('pmieducar.matricula_turma', function (Blueprint $table) { + $table->addColumn('int_array', 'tipo_itinerario')->nullable(); + $table->addColumn('int_array', 'composicao_itinerario')->nullable(); + $table->addColumn('integer', 'curso_itinerario')->nullable(); + $table->addColumn('boolean', 'itinerario_concomitante')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('pmieducar.matricula_turma', function (Blueprint $table) { + $table->dropColumn([ + 'tipo_itinerario', + 'composicao_itinerario', + 'curso_itinerario', + 'itinerario_concomitante' + ]); + }); + } +}; diff --git a/database/migrations/2022_05_18_111759_alter_table_professor_turma_add_unidade_curriculares.php b/database/migrations/2022_05_18_111759_alter_table_professor_turma_add_unidade_curriculares.php new file mode 100644 index 0000000000..25774f1218 --- /dev/null +++ b/database/migrations/2022_05_18_111759_alter_table_professor_turma_add_unidade_curriculares.php @@ -0,0 +1,44 @@ +setSchemaGrammar($typeClass); + + Schema::table( + 'modules.professor_turma', + static fn (Blueprint $table) => + $table + ->addColumn('int_array', 'unidades_curriculares') + ->nullable() + ); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down(): void + { + Schema::table( + 'modules.professor_turma', + static fn (Blueprint $table) => + $table + ->dropColumn('unidades_curriculares') + ); + } +}; diff --git a/database/migrations/2022_05_24_172836_alter_table_pmieducar_turma_update_atividades_complementares.php b/database/migrations/2022_05_24_172836_alter_table_pmieducar_turma_update_atividades_complementares.php new file mode 100644 index 0000000000..ed626e80f3 --- /dev/null +++ b/database/migrations/2022_05_24_172836_alter_table_pmieducar_turma_update_atividades_complementares.php @@ -0,0 +1,92 @@ +dropView('public.educacenso_record50'); + + $this->executeSqlFile( + __DIR__ . '/../sqls/views/public.educacenso_record50-2022-05-25.sql' + ); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + $this->dropView('public.educacenso_record50'); + + $this->executeSqlFile( + __DIR__ . '/../sqls/views/public.educacenso_record50-2022-05-25.sql' + ); + } +}; diff --git a/database/migrations/2022_05_26_165913_update_educacenso_ies_nome.php b/database/migrations/2022_05_26_165913_update_educacenso_ies_nome.php new file mode 100644 index 0000000000..e8f1583cfd --- /dev/null +++ b/database/migrations/2022_05_26_165913_update_educacenso_ies_nome.php @@ -0,0 +1,34 @@ +where('ies_id', $data[0])->first(); + $eis->nome = $data[1]; + $eis->save(); + } + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +}; diff --git a/database/migrations/2022_05_30_135003_alter_record20_view_to_2022.php b/database/migrations/2022_05_30_135003_alter_record20_view_to_2022.php new file mode 100755 index 0000000000..67daa930e9 --- /dev/null +++ b/database/migrations/2022_05_30_135003_alter_record20_view_to_2022.php @@ -0,0 +1,35 @@ +dropView('public.educacenso_record20'); + + $this->executeSqlFile( + __DIR__ . '/../sqls/views/public.educacenso_record20-2022-05-19.sql' + ); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + $this->dropView('public.educacenso_record20'); + + $this->executeSqlFile( + __DIR__ . '/../sqls/views/public.educacenso_record20-2020-04-13.sql' + ); + } +}; diff --git a/database/migrations/2022_05_30_152213_insert_educacenso_ies.php b/database/migrations/2022_05_30_152213_insert_educacenso_ies.php new file mode 100644 index 0000000000..aec4c87700 --- /dev/null +++ b/database/migrations/2022_05_30_152213_insert_educacenso_ies.php @@ -0,0 +1,41 @@ +updateOrCreate( + [ + 'ies_id' => $data[0], + 'nome' => $data[1], + 'dependencia_administrativa_id' => $data[2], + 'tipo_instituicao_id' => $data[0], + 'uf' => $data[4], + 'user_id' => 1, + ] + ); + } + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +}; diff --git a/database/migrations/2022_05_30_171139_insert_educacenso_curso_superior.php b/database/migrations/2022_05_30_171139_insert_educacenso_curso_superior.php new file mode 100644 index 0000000000..9abf1374dd --- /dev/null +++ b/database/migrations/2022_05_30_171139_insert_educacenso_curso_superior.php @@ -0,0 +1,40 @@ +updateOrCreate( + [ + 'curso_id' => $data[0], + 'nome' => $data[1], + 'grau_academico' => $data[2], + 'classe_id' => $data[3], + 'user_id' => 1 + ] + ); + } + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +}; diff --git a/database/migrations/2022_05_31_172630_alter_record60_view_to_2022.php b/database/migrations/2022_05_31_172630_alter_record60_view_to_2022.php new file mode 100755 index 0000000000..dd78367540 --- /dev/null +++ b/database/migrations/2022_05_31_172630_alter_record60_view_to_2022.php @@ -0,0 +1,36 @@ +dropView('public.educacenso_record60'); + + $this->executeSqlFile( + __DIR__ . '/../sqls/views/public.educacenso_record60-2022-05-26.sql' + ); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + $this->dropView('public.educacenso_record60'); + + $this->executeSqlFile( + __DIR__ . '/../sqls/views/public.educacenso_record60-2020-04-13.sql' + ); + } +}; diff --git a/database/migrations/2022_05_31_190142_fix_migration_populate_posgraduate.php b/database/migrations/2022_05_31_190142_fix_migration_populate_posgraduate.php new file mode 100755 index 0000000000..446881d5c5 --- /dev/null +++ b/database/migrations/2022_05_31_190142_fix_migration_populate_posgraduate.php @@ -0,0 +1,26 @@ +where('type_id', 4)->delete(); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +}; diff --git a/database/migrations/2022_06_06_093529_alter_table_settings_enable_educacenso_export.php b/database/migrations/2022_06_06_093529_alter_table_settings_enable_educacenso_export.php new file mode 100644 index 0000000000..dc1e97e196 --- /dev/null +++ b/database/migrations/2022_06_06_093529_alter_table_settings_enable_educacenso_export.php @@ -0,0 +1,34 @@ +where([ + 'key' => 'legacy.educacenso.enable_export' + ])->firstOrFail()->update([ + 'value' => true + ]); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Setting::query()->where([ + 'key' => 'legacy.educacenso.enable_export' + ])->firstOrFail()->update([ + 'value' => false + ]); + } +}; diff --git a/database/migrations/2022_06_20_160118_alter_record20_view_fix_disciplines_with_teacher.php b/database/migrations/2022_06_20_160118_alter_record20_view_fix_disciplines_with_teacher.php new file mode 100755 index 0000000000..4948773b7e --- /dev/null +++ b/database/migrations/2022_06_20_160118_alter_record20_view_fix_disciplines_with_teacher.php @@ -0,0 +1,35 @@ +dropView('public.educacenso_record20'); + + $this->executeSqlFile( + __DIR__ . '/../sqls/views/public.educacenso_record20-2022-06-17.sql' + ); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + $this->dropView('public.educacenso_record20'); + + $this->executeSqlFile( + __DIR__ . '/../sqls/views/public.educacenso_record20-2022-05-19.sql' + ); + } +}; diff --git a/database/seeders/DefaultEmployeeGraduationDisciplines.php b/database/seeders/DefaultEmployeeGraduationDisciplines.php index 9d20a503b2..7c814cb175 100644 --- a/database/seeders/DefaultEmployeeGraduationDisciplines.php +++ b/database/seeders/DefaultEmployeeGraduationDisciplines.php @@ -40,6 +40,7 @@ public function run() 25 => 'Disciplinas Áreas do conhecimento pedagógicas', 26 => 'Ensino religioso', 32 => 'Estágio curricular supervisionado', + 33 => 'Projeto de vida', 99 => 'Outras Disciplinas Áreas do conhecimento', ]; diff --git a/database/sqls/views/public.educacenso_record20-2022-05-19.sql b/database/sqls/views/public.educacenso_record20-2022-05-19.sql new file mode 100644 index 0000000000..115901461e --- /dev/null +++ b/database/sqls/views/public.educacenso_record20-2022-05-19.sql @@ -0,0 +1,178 @@ +CREATE VIEW public.educacenso_record20 AS +SELECT + turma.cod_turma AS "codTurma", + educacenso_cod_escola.cod_escola_inep AS "codigoEscolaInep", + turma.ref_ref_cod_escola AS "codEscola", + turma.ref_cod_curso AS "codCurso", + turma.ref_ref_cod_serie AS "codSerie", + turma.nm_turma AS "nomeTurma", + turma.ano AS "anoTurma", + turma.hora_inicial AS "horaInicial", + turma.hora_final AS "horaFinal", + turma.dias_semana AS "diasSemana", + turma.tipo_atendimento AS "tipoAtendimento", + turma.atividades_complementares AS "atividadesComplementares", + turma.etapa_educacenso AS "etapaEducacenso", + juridica.fantasia AS "nomeEscola", + turma.tipo_mediacao_didatico_pedagogico AS "tipoMediacaoDidaticoPedagogico", + turma.estrutura_curricular AS "estruturaCurricular", + turma.formas_organizacao_turma AS "formasOrganizacaoTurma", + turma.unidade_curricular AS "unidadesCurriculares", + ( + SELECT + array_agg(unidade_curricular) AS unidades_curriculares + FROM ( + SELECT + cod_turma, + unnest(unidade_curricular) AS unidade_curricular + FROM pmieducar.turma + ) AS t + WHERE true + AND NOT EXISTS ( + SELECT 1 + FROM modules.professor_turma pt + WHERE true + AND pt.turma_id = t.cod_turma + AND ARRAY[t.unidade_curricular] <@ pt.unidades_curriculares + ) + AND t.cod_turma = turma.cod_turma + ) "unidadesCurricularesSemDocenteVinculado", + + COALESCE(( + SELECT + 1 + FROM modules.professor_turma + INNER JOIN pmieducar.servidor ON (servidor.cod_servidor = professor_turma.servidor_id) + WHERE professor_turma.turma_id = turma.cod_turma + LIMIT 1), 0) as "possuiServidor", + + COALESCE(( + SELECT + 1 + FROM modules.professor_turma + INNER JOIN pmieducar.servidor ON (servidor.cod_servidor = professor_turma.servidor_id) + WHERE professor_turma.turma_id = turma.cod_turma + AND professor_turma.funcao_exercida IN (1, 5) + LIMIT 1), 0) as "possuiServidorDocente", + + COALESCE(( + SELECT + 1 + FROM modules.professor_turma + INNER JOIN pmieducar.servidor ON (servidor.cod_servidor = professor_turma.servidor_id) + WHERE professor_turma.turma_id = turma.cod_turma + AND professor_turma.funcao_exercida = 4 + LIMIT 1), 0) as "possuiServidorLibras", + + COALESCE(( + SELECT + 1 + FROM modules.professor_turma + INNER JOIN pmieducar.servidor ON (servidor.cod_servidor = professor_turma.servidor_id) + WHERE professor_turma.turma_id = turma.cod_turma + AND professor_turma.funcao_exercida IN (4, 6) + LIMIT 1), 0) as "possuiServidorLibrasOuAuxiliarEad", + + COALESCE(( + SELECT + 1 + FROM modules.professor_turma + INNER JOIN pmieducar.servidor ON (servidor.cod_servidor = professor_turma.servidor_id) + WHERE professor_turma.turma_id = turma.cod_turma + AND professor_turma.funcao_exercida NOT IN (4, 6) + LIMIT 1), 0) as "possuiServidorDiferenteLibrasOuAuxiliarEad", + + COALESCE(( + SELECT + 1 + FROM pmieducar.matricula_turma + JOIN pmieducar.matricula + ON matricula.cod_matricula = matricula_turma.ref_cod_matricula + JOIN pmieducar.aluno + ON aluno.cod_aluno = matricula.ref_cod_aluno + JOIN cadastro.fisica_deficiencia + ON fisica_deficiencia.ref_idpes = aluno.ref_idpes + JOIN cadastro.deficiencia + ON fisica_deficiencia.ref_cod_deficiencia = deficiencia.cod_deficiencia + AND deficiencia.deficiencia_educacenso IN (3, 4, 5) + WHERE matricula_turma.ref_cod_turma = turma.cod_turma + AND matricula_turma.data_enturmacao <= instituicao.data_educacenso + AND coalesce(matricula_turma.data_exclusao, '2999-01-01'::date) > instituicao.data_educacenso + + LIMIT 1), 0) as "possuiAlunoNecessitandoTradutor", + + COALESCE(( + SELECT + 1 + FROM modules.professor_turma + INNER JOIN pmieducar.servidor + ON servidor.cod_servidor = professor_turma.servidor_id + JOIN cadastro.fisica_deficiencia + ON fisica_deficiencia.ref_idpes = servidor.cod_servidor + JOIN cadastro.deficiencia + ON fisica_deficiencia.ref_cod_deficiencia = deficiencia.cod_deficiencia + AND deficiencia.deficiencia_educacenso IN (3, 4, 5) + WHERE professor_turma.turma_id = turma.cod_turma + LIMIT 1), 0) as "possuiServidorNecessitandoTradutor", + ( + SELECT array_agg(DISTINCT codigo_educacenso) + FROM pmieducar.turma t + JOIN modules.professor_turma pt ON pt.turma_id = t.cod_turma + JOIN modules.professor_turma_disciplina ptd ON ptd.professor_turma_id = pt.id + JOIN modules.componente_curricular cc ON cc.id = ptd.componente_curricular_id + WHERE t.cod_turma = turma.cod_turma + ) AS "disciplinasEducacensoComDocentes", + + turma.local_funcionamento_diferenciado as "localFuncionamentoDiferenciado", + escola.local_funcionamento as "localFuncionamento", + curso.modalidade_curso as "modalidadeCurso", + turma.cod_curso_profissional as "codCursoProfissional" + +FROM pmieducar.escola +LEFT JOIN modules.educacenso_cod_escola ON (escola.cod_escola = educacenso_cod_escola.cod_escola) +JOIN cadastro.juridica ON (juridica.idpes = escola.ref_idpes) +JOIN pmieducar.turma ON (turma.ref_ref_cod_escola = escola.cod_escola) +JOIN pmieducar.curso ON (turma.ref_cod_curso = curso.cod_curso) +JOIN pmieducar.instituicao ON (escola.ref_cod_instituicao = instituicao.cod_instituicao) +WHERE true + AND COALESCE(turma.nao_informar_educacenso, 0) = 0 + AND turma.ativo = 1 + AND turma.visivel = TRUE + AND escola.ativo = 1 + AND ( + exists( + SELECT + 1 + FROM pmieducar.matricula_turma + JOIN pmieducar.matricula + ON matricula.cod_matricula = matricula_turma.ref_cod_matricula + WHERE matricula_turma.ref_cod_turma = turma.cod_turma + AND matricula.ativo = 1 + AND matricula_turma.data_enturmacao < instituicao.data_educacenso + AND coalesce(matricula_turma.data_exclusao, '2999-01-01'::date) >= instituicao.data_educacenso + ) + OR + exists( + SELECT + 1 + FROM pmieducar.matricula_turma + JOIN pmieducar.matricula + ON matricula.cod_matricula = matricula_turma.ref_cod_matricula + WHERE matricula_turma.ref_cod_turma = turma.cod_turma + AND matricula.ativo = 1 + AND matricula_turma.data_enturmacao = instituicao.data_educacenso + AND coalesce(matricula_turma.data_exclusao, '2999-01-01'::date) >= instituicao.data_educacenso + AND NOT EXISTS( + SELECT + 1 + FROM pmieducar.matricula_turma smt + JOIN pmieducar.matricula sm + ON sm.cod_matricula = smt.ref_cod_matricula + WHERE sm.ref_cod_aluno = matricula.ref_cod_aluno + AND sm.ativo = 1 + AND sm.ano = matricula.ano + AND smt.data_enturmacao < matricula_turma.data_enturmacao + AND coalesce(smt.data_exclusao, '2999-01-01'::date) >= instituicao.data_educacenso + ) + ) + ) diff --git a/database/sqls/views/public.educacenso_record20-2022-06-17.sql b/database/sqls/views/public.educacenso_record20-2022-06-17.sql new file mode 100755 index 0000000000..c50dadc621 --- /dev/null +++ b/database/sqls/views/public.educacenso_record20-2022-06-17.sql @@ -0,0 +1,188 @@ +CREATE VIEW public.educacenso_record20 AS +SELECT + turma.cod_turma AS "codTurma", + educacenso_cod_escola.cod_escola_inep AS "codigoEscolaInep", + turma.ref_ref_cod_escola AS "codEscola", + turma.ref_cod_curso AS "codCurso", + turma.ref_ref_cod_serie AS "codSerie", + turma.nm_turma AS "nomeTurma", + turma.ano AS "anoTurma", + turma.hora_inicial AS "horaInicial", + turma.hora_final AS "horaFinal", + turma.dias_semana AS "diasSemana", + turma.tipo_atendimento AS "tipoAtendimento", + turma.atividades_complementares AS "atividadesComplementares", + turma.etapa_educacenso AS "etapaEducacenso", + juridica.fantasia AS "nomeEscola", + turma.tipo_mediacao_didatico_pedagogico AS "tipoMediacaoDidaticoPedagogico", + turma.estrutura_curricular AS "estruturaCurricular", + turma.formas_organizacao_turma AS "formasOrganizacaoTurma", + turma.unidade_curricular AS "unidadesCurriculares", + + ( + SELECT + array_agg(unidade_curricular) AS unidades_curriculares + FROM ( + SELECT + cod_turma, + unnest(unidade_curricular) AS unidade_curricular + FROM pmieducar.turma + ) AS t + WHERE true + AND NOT EXISTS ( + SELECT 1 + FROM modules.professor_turma pt + WHERE true + AND pt.turma_id = t.cod_turma + AND ARRAY[t.unidade_curricular] <@ pt.unidades_curriculares + ) + AND t.cod_turma = turma.cod_turma + ) "unidadesCurricularesSemDocenteVinculado", + + COALESCE(( + SELECT + 1 + FROM modules.professor_turma + INNER JOIN pmieducar.servidor ON (servidor.cod_servidor = professor_turma.servidor_id) + WHERE professor_turma.turma_id = turma.cod_turma + LIMIT 1), 0) as "possuiServidor", + + COALESCE(( + SELECT + 1 + FROM modules.professor_turma + INNER JOIN pmieducar.servidor ON (servidor.cod_servidor = professor_turma.servidor_id) + WHERE professor_turma.turma_id = turma.cod_turma + AND professor_turma.funcao_exercida IN (1, 5) + LIMIT 1), 0) as "possuiServidorDocente", + + COALESCE(( + SELECT + 1 + FROM modules.professor_turma + INNER JOIN pmieducar.servidor ON (servidor.cod_servidor = professor_turma.servidor_id) + WHERE professor_turma.turma_id = turma.cod_turma + AND professor_turma.funcao_exercida = 4 + LIMIT 1), 0) as "possuiServidorLibras", + + COALESCE(( + SELECT + 1 + FROM modules.professor_turma + INNER JOIN pmieducar.servidor ON (servidor.cod_servidor = professor_turma.servidor_id) + WHERE professor_turma.turma_id = turma.cod_turma + AND professor_turma.funcao_exercida IN (4, 6) + LIMIT 1), 0) as "possuiServidorLibrasOuAuxiliarEad", + + COALESCE(( + SELECT + 1 + FROM modules.professor_turma + INNER JOIN pmieducar.servidor ON (servidor.cod_servidor = professor_turma.servidor_id) + WHERE professor_turma.turma_id = turma.cod_turma + AND professor_turma.funcao_exercida NOT IN (4, 6) + LIMIT 1), 0) as "possuiServidorDiferenteLibrasOuAuxiliarEad", + + COALESCE(( + SELECT + 1 + FROM pmieducar.matricula_turma + JOIN pmieducar.matricula + ON matricula.cod_matricula = matricula_turma.ref_cod_matricula + JOIN pmieducar.aluno + ON aluno.cod_aluno = matricula.ref_cod_aluno + JOIN cadastro.fisica_deficiencia + ON fisica_deficiencia.ref_idpes = aluno.ref_idpes + JOIN cadastro.deficiencia + ON fisica_deficiencia.ref_cod_deficiencia = deficiencia.cod_deficiencia + AND deficiencia.deficiencia_educacenso IN (3, 4, 5) + WHERE matricula_turma.ref_cod_turma = turma.cod_turma + AND matricula_turma.data_enturmacao <= instituicao.data_educacenso + AND coalesce(matricula_turma.data_exclusao, '2999-01-01'::date) > instituicao.data_educacenso + + LIMIT 1), 0) as "possuiAlunoNecessitandoTradutor", + + COALESCE(( + SELECT + 1 + FROM modules.professor_turma + INNER JOIN pmieducar.servidor + ON servidor.cod_servidor = professor_turma.servidor_id + JOIN cadastro.fisica_deficiencia + ON fisica_deficiencia.ref_idpes = servidor.cod_servidor + JOIN cadastro.deficiencia + ON fisica_deficiencia.ref_cod_deficiencia = deficiencia.cod_deficiencia + AND deficiencia.deficiencia_educacenso IN (3, 4, 5) + WHERE professor_turma.turma_id = turma.cod_turma + LIMIT 1), 0) as "possuiServidorNecessitandoTradutor", + + ( + SELECT array_agg(DISTINCT codigo_educacenso) + FROM pmieducar.turma t + JOIN pmieducar.instituicao i ON i.cod_instituicao = t.ref_cod_instituicao + JOIN modules.professor_turma pt ON pt.turma_id = t.cod_turma + JOIN modules.professor_turma_disciplina ptd ON ptd.professor_turma_id = pt.id + JOIN modules.componente_curricular cc ON cc.id = ptd.componente_curricular_id + LEFT JOIN pmieducar.servidor_alocacao sa ON true + AND sa.ref_cod_servidor = pt.servidor_id + AND sa.ref_cod_escola = t.ref_ref_cod_escola + AND sa.ano = t.ano + WHERE t.cod_turma = turma.cod_turma + AND pt.funcao_exercida IN (1,5) + AND coalesce(sa.data_admissao, '1900-01-01'::date) <= i.data_educacenso + AND coalesce(sa.data_saida, '2999-01-01'::date) >= i.data_educacenso + ) AS "disciplinasEducacensoComDocentes", + + turma.local_funcionamento_diferenciado as "localFuncionamentoDiferenciado", + escola.local_funcionamento as "localFuncionamento", + curso.modalidade_curso as "modalidadeCurso", + turma.cod_curso_profissional as "codCursoProfissional" + +FROM pmieducar.escola +LEFT JOIN modules.educacenso_cod_escola ON (escola.cod_escola = educacenso_cod_escola.cod_escola) +JOIN cadastro.juridica ON (juridica.idpes = escola.ref_idpes) +JOIN pmieducar.turma ON (turma.ref_ref_cod_escola = escola.cod_escola) +JOIN pmieducar.curso ON (turma.ref_cod_curso = curso.cod_curso) +JOIN pmieducar.instituicao ON (escola.ref_cod_instituicao = instituicao.cod_instituicao) +WHERE true + AND COALESCE(turma.nao_informar_educacenso, 0) = 0 + AND turma.ativo = 1 + AND turma.visivel = TRUE + AND escola.ativo = 1 + AND ( + exists( + SELECT + 1 + FROM pmieducar.matricula_turma + JOIN pmieducar.matricula + ON matricula.cod_matricula = matricula_turma.ref_cod_matricula + WHERE matricula_turma.ref_cod_turma = turma.cod_turma + AND matricula.ativo = 1 + AND matricula_turma.data_enturmacao < instituicao.data_educacenso + AND coalesce(matricula_turma.data_exclusao, '2999-01-01'::date) >= instituicao.data_educacenso + ) + OR + exists( + SELECT + 1 + FROM pmieducar.matricula_turma + JOIN pmieducar.matricula + ON matricula.cod_matricula = matricula_turma.ref_cod_matricula + WHERE matricula_turma.ref_cod_turma = turma.cod_turma + AND matricula.ativo = 1 + AND matricula_turma.data_enturmacao = instituicao.data_educacenso + AND coalesce(matricula_turma.data_exclusao, '2999-01-01'::date) >= instituicao.data_educacenso + AND NOT EXISTS( + SELECT + 1 + FROM pmieducar.matricula_turma smt + JOIN pmieducar.matricula sm + ON sm.cod_matricula = smt.ref_cod_matricula + WHERE sm.ref_cod_aluno = matricula.ref_cod_aluno + AND sm.ativo = 1 + AND sm.ano = matricula.ano + AND smt.data_enturmacao < matricula_turma.data_enturmacao + AND coalesce(smt.data_exclusao, '2999-01-01'::date) >= instituicao.data_educacenso + ) + ) + ) diff --git a/database/sqls/views/public.educacenso_record20.sql b/database/sqls/views/public.educacenso_record20.sql index 4eeaf4ad53..c50dadc621 100644 --- a/database/sqls/views/public.educacenso_record20.sql +++ b/database/sqls/views/public.educacenso_record20.sql @@ -15,6 +15,29 @@ SELECT turma.etapa_educacenso AS "etapaEducacenso", juridica.fantasia AS "nomeEscola", turma.tipo_mediacao_didatico_pedagogico AS "tipoMediacaoDidaticoPedagogico", + turma.estrutura_curricular AS "estruturaCurricular", + turma.formas_organizacao_turma AS "formasOrganizacaoTurma", + turma.unidade_curricular AS "unidadesCurriculares", + + ( + SELECT + array_agg(unidade_curricular) AS unidades_curriculares + FROM ( + SELECT + cod_turma, + unnest(unidade_curricular) AS unidade_curricular + FROM pmieducar.turma + ) AS t + WHERE true + AND NOT EXISTS ( + SELECT 1 + FROM modules.professor_turma pt + WHERE true + AND pt.turma_id = t.cod_turma + AND ARRAY[t.unidade_curricular] <@ pt.unidades_curriculares + ) + AND t.cod_turma = turma.cod_turma + ) "unidadesCurricularesSemDocenteVinculado", COALESCE(( SELECT @@ -93,6 +116,22 @@ SELECT WHERE professor_turma.turma_id = turma.cod_turma LIMIT 1), 0) as "possuiServidorNecessitandoTradutor", + ( + SELECT array_agg(DISTINCT codigo_educacenso) + FROM pmieducar.turma t + JOIN pmieducar.instituicao i ON i.cod_instituicao = t.ref_cod_instituicao + JOIN modules.professor_turma pt ON pt.turma_id = t.cod_turma + JOIN modules.professor_turma_disciplina ptd ON ptd.professor_turma_id = pt.id + JOIN modules.componente_curricular cc ON cc.id = ptd.componente_curricular_id + LEFT JOIN pmieducar.servidor_alocacao sa ON true + AND sa.ref_cod_servidor = pt.servidor_id + AND sa.ref_cod_escola = t.ref_ref_cod_escola + AND sa.ano = t.ano + WHERE t.cod_turma = turma.cod_turma + AND pt.funcao_exercida IN (1,5) + AND coalesce(sa.data_admissao, '1900-01-01'::date) <= i.data_educacenso + AND coalesce(sa.data_saida, '2999-01-01'::date) >= i.data_educacenso + ) AS "disciplinasEducacensoComDocentes", turma.local_funcionamento_diferenciado as "localFuncionamentoDiferenciado", escola.local_funcionamento as "localFuncionamento", diff --git a/database/sqls/views/public.educacenso_record50-2022-05-25.sql b/database/sqls/views/public.educacenso_record50-2022-05-25.sql new file mode 100644 index 0000000000..4b50972ccf --- /dev/null +++ b/database/sqls/views/public.educacenso_record50-2022-05-25.sql @@ -0,0 +1,91 @@ +CREATE VIEW public.educacenso_record50 AS +SELECT DISTINCT + '50' AS registro, + educacenso_cod_escola.cod_escola_inep AS "inepEscola", + servidor.cod_servidor AS "codigoPessoa", + educacenso_cod_docente.cod_docente_inep AS "inepDocente", + turma.cod_turma AS "codigoTurma", + null AS "inepTurma", + professor_turma.funcao_exercida AS "funcaoDocente", + professor_turma.tipo_vinculo AS "tipoVinculo", + tbl_componentes.componentes AS componentes, + professor_turma.unidades_curriculares AS "unidadesCurriculares", + relatorio.get_nome_escola(escola.cod_escola) AS "nomeEscola", + pessoa.nome AS "nomeDocente", + servidor.cod_servidor AS "idServidor", + instituicao.cod_instituicao AS "idInstituicao", + professor_turma.id AS "idAlocacao", + turma.tipo_mediacao_didatico_pedagogico AS "tipoMediacaoTurma", + turma.tipo_atendimento AS "tipoAtendimentoTurma", + turma.nm_turma AS "nomeTurma", + escola.dependencia_administrativa AS "dependenciaAdministrativaEscola", + turma.etapa_educacenso AS "etapaEducacensoTurma", + turma.ano AS "anoTurma", + escola.cod_escola AS "codEscola", + turma.estrutura_curricular AS "estruturaCurricular" +FROM pmieducar.servidor + JOIN modules.professor_turma ON professor_turma.servidor_id = servidor.cod_servidor + JOIN pmieducar.turma ON turma.cod_turma = professor_turma.turma_id + AND turma.ano = professor_turma.ano + JOIN pmieducar.escola ON escola.cod_escola = turma.ref_ref_cod_escola + JOIN pmieducar.instituicao ON escola.ref_cod_instituicao = instituicao.cod_instituicao + JOIN cadastro.pessoa ON pessoa.idpes = servidor.cod_servidor + LEFT JOIN pmieducar.servidor_alocacao ON servidor_alocacao.ref_cod_escola = escola.cod_escola + AND servidor_alocacao.ref_cod_servidor = servidor.cod_servidor + AND servidor_alocacao.ano = turma.ano + LEFT JOIN modules.educacenso_cod_escola ON educacenso_cod_escola.cod_escola = escola.cod_escola + LEFT JOIN modules.educacenso_cod_docente ON educacenso_cod_docente.cod_servidor = servidor.cod_servidor + LEFT JOIN modules.educacenso_cod_turma ON educacenso_cod_turma.cod_turma = turma.cod_turma + LEFT JOIN modules.professor_turma_disciplina ON professor_turma_disciplina.professor_turma_id = professor_turma.id, + LATERAL ( + SELECT DISTINCT + array_agg(DISTINCT cc.codigo_educacenso) AS componentes + FROM modules.componente_curricular cc + INNER JOIN modules.professor_turma_disciplina ptd ON (cc.id = ptd.componente_curricular_id) + WHERE ptd.professor_turma_id = professor_turma.id + ) AS tbl_componentes +WHERE true + AND turma.ativo = 1 + AND turma.visivel = true + AND escola.ativo = 1 + AND COALESCE(turma.nao_informar_educacenso, 0) = 0 + AND servidor.ativo = 1 + AND coalesce(servidor_alocacao.data_admissao, '1900-01-01'::date) <= instituicao.data_educacenso + AND coalesce(servidor_alocacao.data_saida, '2999-01-01'::date) >= instituicao.data_educacenso + AND ( + exists( + SELECT + 1 + FROM pmieducar.matricula_turma + JOIN pmieducar.matricula + ON matricula.cod_matricula = matricula_turma.ref_cod_matricula + WHERE matricula_turma.ref_cod_turma = turma.cod_turma + AND matricula.ativo = 1 + AND matricula_turma.data_enturmacao < instituicao.data_educacenso + AND coalesce(matricula_turma.data_exclusao, '2999-01-01'::date) >= instituicao.data_educacenso + ) + OR + exists( + SELECT + 1 + FROM pmieducar.matricula_turma + JOIN pmieducar.matricula + ON matricula.cod_matricula = matricula_turma.ref_cod_matricula + WHERE matricula_turma.ref_cod_turma = turma.cod_turma + AND matricula.ativo = 1 + AND matricula_turma.data_enturmacao = instituicao.data_educacenso + AND coalesce(matricula_turma.data_exclusao, '2999-01-01'::date) >= instituicao.data_educacenso + AND NOT EXISTS( + SELECT + 1 + FROM pmieducar.matricula_turma smt + JOIN pmieducar.matricula sm + ON sm.cod_matricula = smt.ref_cod_matricula + WHERE sm.ref_cod_aluno = matricula.ref_cod_aluno + AND sm.ativo = 1 + AND sm.ano = matricula.ano + AND smt.data_enturmacao < matricula_turma.data_enturmacao + AND coalesce(smt.data_exclusao, '2999-01-01'::date) >= instituicao.data_educacenso + ) + ) + ) diff --git a/database/sqls/views/public.educacenso_record50.sql b/database/sqls/views/public.educacenso_record50.sql index 6b2f613354..4b50972ccf 100644 --- a/database/sqls/views/public.educacenso_record50.sql +++ b/database/sqls/views/public.educacenso_record50.sql @@ -9,6 +9,7 @@ SELECT DISTINCT professor_turma.funcao_exercida AS "funcaoDocente", professor_turma.tipo_vinculo AS "tipoVinculo", tbl_componentes.componentes AS componentes, + professor_turma.unidades_curriculares AS "unidadesCurriculares", relatorio.get_nome_escola(escola.cod_escola) AS "nomeEscola", pessoa.nome AS "nomeDocente", servidor.cod_servidor AS "idServidor", @@ -20,7 +21,8 @@ SELECT DISTINCT escola.dependencia_administrativa AS "dependenciaAdministrativaEscola", turma.etapa_educacenso AS "etapaEducacensoTurma", turma.ano AS "anoTurma", - escola.cod_escola AS "codEscola" + escola.cod_escola AS "codEscola", + turma.estrutura_curricular AS "estruturaCurricular" FROM pmieducar.servidor JOIN modules.professor_turma ON professor_turma.servidor_id = servidor.cod_servidor JOIN pmieducar.turma ON turma.cod_turma = professor_turma.turma_id diff --git a/database/sqls/views/public.educacenso_record60-2022-05-26.sql b/database/sqls/views/public.educacenso_record60-2022-05-26.sql new file mode 100644 index 0000000000..3de705343b --- /dev/null +++ b/database/sqls/views/public.educacenso_record60-2022-05-26.sql @@ -0,0 +1,106 @@ +CREATE VIEW public.educacenso_record60 AS +SELECT + '60' AS registro, + educacenso_cod_escola.cod_escola_inep "inepEscola", + aluno.ref_idpes "codigoPessoa", + educacenso_cod_aluno.cod_aluno_inep "inepAluno", + turma.cod_turma "codigoTurma", + null "inepTurma", + null "matriculaAluno", + matricula_turma.etapa_educacenso "etapaAluno", + COALESCE((ARRAY [1] <@ matricula_turma.tipo_atendimento)::INT, 0) "tipoAtendimentoDesenvolvimentoFuncoesGognitivas", + COALESCE((ARRAY [2] <@ matricula_turma.tipo_atendimento)::INT, 0) "tipoAtendimentoDesenvolvimentoVidaAutonoma", + COALESCE((ARRAY [3] <@ matricula_turma.tipo_atendimento)::INT, 0) "tipoAtendimentoEnriquecimentoCurricular", + COALESCE((ARRAY [4] <@ matricula_turma.tipo_atendimento)::INT, 0) "tipoAtendimentoEnsinoInformaticaAcessivel", + COALESCE((ARRAY [5] <@ matricula_turma.tipo_atendimento)::INT, 0) "tipoAtendimentoEnsinoLibras", + COALESCE((ARRAY [6] <@ matricula_turma.tipo_atendimento)::INT, 0) "tipoAtendimentoEnsinoLinguaPortuguesa", + COALESCE((ARRAY [7] <@ matricula_turma.tipo_atendimento)::INT, 0) "tipoAtendimentoEnsinoSoroban", + COALESCE((ARRAY [8] <@ matricula_turma.tipo_atendimento)::INT, 0) "tipoAtendimentoEnsinoBraile", + COALESCE((ARRAY [9] <@ matricula_turma.tipo_atendimento)::INT, 0) "tipoAtendimentoEnsinoOrientacaoMobilidade", + COALESCE((ARRAY [10] <@ matricula_turma.tipo_atendimento)::INT, 0) "tipoAtendimentoEnsinoCaa", + COALESCE((ARRAY [11] <@ matricula_turma.tipo_atendimento)::INT, 0) "tipoAtendimentoEnsinoRecursosOpticosNaoOpticos", + aluno.recebe_escolarizacao_em_outro_espaco AS "recebeEscolarizacaoOutroEspacao", + (CASE + WHEN transporte_aluno.responsavel > 0 THEN 1 + ELSE transporte_aluno.responsavel END) AS "transportePublico", + transporte_aluno.responsavel AS "poderPublicoResponsavelTransporte", + (ARRAY [4] <@ aluno.veiculo_transporte_escolar)::INT "veiculoTransporteBicicleta", + (ARRAY [2] <@ aluno.veiculo_transporte_escolar)::INT "veiculoTransporteMicroonibus", + (ARRAY [3] <@ aluno.veiculo_transporte_escolar)::INT "veiculoTransporteOnibus", + (ARRAY [5] <@ aluno.veiculo_transporte_escolar)::INT "veiculoTransporteTracaoAnimal", + (ARRAY [1] <@ aluno.veiculo_transporte_escolar)::INT "veiculoTransporteVanKonbi", + (ARRAY [6] <@ aluno.veiculo_transporte_escolar)::INT "veiculoTransporteOutro", + (ARRAY [7] <@ aluno.veiculo_transporte_escolar)::INT "veiculoTransporteAquaviarioCapacidade5", + (ARRAY [8] <@ aluno.veiculo_transporte_escolar)::INT "veiculoTransporteAquaviarioCapacidade5a15", + (ARRAY [9] <@ aluno.veiculo_transporte_escolar)::INT "veiculoTransporteAquaviarioCapacidade15a35", + (ARRAY [10] <@ aluno.veiculo_transporte_escolar)::INT "veiculoTransporteAquaviarioCapacidadeAcima35", + relatorio.get_nome_escola(escola.cod_escola) "nomeEscola", + cadastro.pessoa.nome "nomeAluno", + aluno.cod_aluno "codigoAluno", + turma.tipo_atendimento "tipoAtendimentoTurma", + turma.etapa_educacenso "etapaTurma", + turma.estrutura_curricular "estruturaCurricularTurma", + matricula.cod_matricula "codigoMatricula", + turma.nm_turma "nomeTurma", + matricula_turma.tipo_atendimento "tipoAtendimentoMatricula", + (ARRAY[1::smallint] <@ matricula_turma.tipo_itinerario)::INT "tipoItinerarioLinguagens", + (ARRAY[2::smallint] <@ matricula_turma.tipo_itinerario)::INT "tipoItinerarioMatematica", + (ARRAY[3::smallint] <@ matricula_turma.tipo_itinerario)::INT "tipoItinerarioCienciasNatureza", + (ARRAY[4::smallint] <@ matricula_turma.tipo_itinerario)::INT "tipoItinerarioCienciasHumanas", + (ARRAY[5::smallint] <@ matricula_turma.tipo_itinerario)::INT "tipoItinerarioFormacaoTecnica", + (ARRAY[6::smallint] <@ matricula_turma.tipo_itinerario)::INT "tipoItinerarioIntegrado", + (ARRAY[1::smallint] <@ matricula_turma.composicao_itinerario)::INT "composicaoItinerarioLinguagens", + (ARRAY[2::smallint] <@ matricula_turma.composicao_itinerario)::INT "composicaoItinerarioMatematica", + (ARRAY[3::smallint] <@ matricula_turma.composicao_itinerario)::INT "composicaoItinerarioCienciasNatureza", + (ARRAY[4::smallint] <@ matricula_turma.composicao_itinerario)::INT "composicaoItinerarioCienciasHumanas", + (ARRAY[5::smallint] <@ matricula_turma.composicao_itinerario)::INT "composicaoItinerarioFormacaoTecnica", + matricula_turma.curso_itinerario "cursoItinerario", + matricula_turma.itinerario_concomitante "itinerarioConcomitante", + matricula_turma.id "enturmacaoId", + turma.tipo_mediacao_didatico_pedagogico "tipoMediacaoTurma", + aluno.veiculo_transporte_escolar "veiculoTransporteEscolar", + curso.modalidade_curso as "modalidadeCurso", + turma.local_funcionamento_diferenciado AS "localFuncionamentoDiferenciadoTurma", + fisica.pais_residencia AS "paisResidenciaAluno", + matricula.ano AS "anoTurma", + escola.cod_escola AS "codEscola" +FROM pmieducar.aluno +JOIN pmieducar.matricula ON matricula.ref_cod_aluno = aluno.cod_aluno +JOIN pmieducar.escola ON escola.cod_escola = matricula.ref_ref_cod_escola +JOIN pmieducar.matricula_turma ON matricula_turma.ref_cod_matricula = matricula.cod_matricula +JOIN pmieducar.instituicao ON instituicao.cod_instituicao = escola.ref_cod_instituicao +JOIN pmieducar.turma ON turma.cod_turma = matricula_turma.ref_cod_turma +JOIN pmieducar.curso ON curso.cod_curso = turma.ref_cod_curso +JOIN cadastro.pessoa ON pessoa.idpes = aluno.ref_idpes +JOIN cadastro.fisica ON fisica.idpes = pessoa.idpes +LEFT JOIN modules.educacenso_cod_escola ON educacenso_cod_escola.cod_escola = escola.cod_escola +LEFT JOIN modules.educacenso_cod_turma ON educacenso_cod_turma.cod_turma = turma.cod_turma +LEFT JOIN modules.educacenso_cod_aluno ON educacenso_cod_aluno.cod_aluno = aluno.cod_aluno +LEFT JOIN modules.transporte_aluno ON transporte_aluno.aluno_id = aluno.cod_aluno +WHERE true + AND matricula.ativo = 1 + AND turma.ativo = 1 + AND COALESCE(turma.nao_informar_educacenso, 0) = 0 + AND ( + ( + matricula_turma.data_enturmacao < instituicao.data_educacenso + AND coalesce(matricula_turma.data_exclusao, '2999-01-01'::date) >= instituicao.data_educacenso + ) + OR ( + matricula_turma.data_enturmacao = instituicao.data_educacenso AND + ( + NOT EXISTS( + SELECT + 1 + FROM pmieducar.matricula_turma smt + JOIN pmieducar.matricula sm + ON sm.cod_matricula = smt.ref_cod_matricula + WHERE sm.ref_cod_aluno = matricula.ref_cod_aluno + AND sm.ativo = 1 + AND sm.ano = matricula.ano + AND smt.data_enturmacao < matricula_turma.data_enturmacao + AND coalesce(smt.data_exclusao, '2999-01-01'::date) >= instituicao.data_educacenso + ) + ) + ) + ) diff --git a/database/sqls/views/public.educacenso_record60.sql b/database/sqls/views/public.educacenso_record60.sql index 3a7bf3a82d..3de705343b 100644 --- a/database/sqls/views/public.educacenso_record60.sql +++ b/database/sqls/views/public.educacenso_record60.sql @@ -39,9 +39,24 @@ SELECT aluno.cod_aluno "codigoAluno", turma.tipo_atendimento "tipoAtendimentoTurma", turma.etapa_educacenso "etapaTurma", + turma.estrutura_curricular "estruturaCurricularTurma", matricula.cod_matricula "codigoMatricula", turma.nm_turma "nomeTurma", matricula_turma.tipo_atendimento "tipoAtendimentoMatricula", + (ARRAY[1::smallint] <@ matricula_turma.tipo_itinerario)::INT "tipoItinerarioLinguagens", + (ARRAY[2::smallint] <@ matricula_turma.tipo_itinerario)::INT "tipoItinerarioMatematica", + (ARRAY[3::smallint] <@ matricula_turma.tipo_itinerario)::INT "tipoItinerarioCienciasNatureza", + (ARRAY[4::smallint] <@ matricula_turma.tipo_itinerario)::INT "tipoItinerarioCienciasHumanas", + (ARRAY[5::smallint] <@ matricula_turma.tipo_itinerario)::INT "tipoItinerarioFormacaoTecnica", + (ARRAY[6::smallint] <@ matricula_turma.tipo_itinerario)::INT "tipoItinerarioIntegrado", + (ARRAY[1::smallint] <@ matricula_turma.composicao_itinerario)::INT "composicaoItinerarioLinguagens", + (ARRAY[2::smallint] <@ matricula_turma.composicao_itinerario)::INT "composicaoItinerarioMatematica", + (ARRAY[3::smallint] <@ matricula_turma.composicao_itinerario)::INT "composicaoItinerarioCienciasNatureza", + (ARRAY[4::smallint] <@ matricula_turma.composicao_itinerario)::INT "composicaoItinerarioCienciasHumanas", + (ARRAY[5::smallint] <@ matricula_turma.composicao_itinerario)::INT "composicaoItinerarioFormacaoTecnica", + matricula_turma.curso_itinerario "cursoItinerario", + matricula_turma.itinerario_concomitante "itinerarioConcomitante", + matricula_turma.id "enturmacaoId", turma.tipo_mediacao_didatico_pedagogico "tipoMediacaoTurma", aluno.veiculo_transporte_escolar "veiculoTransporteEscolar", curso.modalidade_curso as "modalidadeCurso", diff --git a/ieducar/intranet/educacenso_json/atividades_complementares.json b/ieducar/intranet/educacenso_json/atividades_complementares.json index 6f00b0b45d..816e5ddcdc 100644 --- a/ieducar/intranet/educacenso_json/atividades_complementares.json +++ b/ieducar/intranet/educacenso_json/atividades_complementares.json @@ -17,6 +17,8 @@ "16001" : "16001 - Educação Patrimonial", "17004" : "17004 - Leitura", "17002" : "17002 - Línguas Estrangeiras", + "19001": "19001 - Eventos de celebração à Diversidade Cultural na Escola (Feira das Nações, Feira dos Estados, etc.)", + "19002": "19002 - Promoção do respeito à Diversidade Cultural", "19999" : "19999 - Outra categoria de Cultura, Artes e Educação Patrimonial", "21001" : "21001 - Recreação (Brinquedoteca e Jogos)", "22007" : "22007 - Yoga", @@ -38,12 +40,14 @@ "22028" : "22028 - Voleibol", "22029" : "22029 - Vôlei de Praia", "22032" : "22032 - Xadrez tradicional/Xadrez virtual ", + "22033" : "22033 - Balé", "29999" : "29999 - Outra categoria de Esporte e Lazer", - "31002" : "31002 - Português", "31001" : "31001 - Matemática", + "31016" : "31016 - Linguagens", + "31017" : "31017 - Ciências da Natureza", + "31018" : "31018 - Ciências Humanas e Sociais.", "39999" : "39999 - Outra categoria de Acompanhamento Pedagógico", "41007" : "41007 - Educação em Direitos Humanos", - "71007" : "71007 - Promoção da Saúde", "10103" : "10103 - Iniciação Científica", "13301" : "13301 - Educação Ambiental e Desenvolvimento Sustentável", "13104" : "1310 - Conservação do solo e composteira: canteiros sustentáveis (horta) e/ou jardinagem escolar", @@ -59,20 +63,50 @@ "15101" : "15101 - Memória e História das Comunidades Tradicionais", "15201" : "15201 - Memória e História das Cultura Afro-Brasileira e Africana", "15301" : "15301 - Memória e História das Culturas e Indígenas", + "15401" : "15401 - Respeito à Diversidade Étnico-Racial", + "15402" : "15402 - A contribuição dos povos no Multiculturalismo Brasileiro", "17101" : "17101 - Educação para o Consumo Sustentável", - "17102" : "17102 - Economia Solidária e Criativa", + "17102" : "17102 - Fomento da Economia Solidária e Criativa", "17201" : "17201 - Educação Financeira", "17202" : "17202 - Economia", "17301" : "17301 - Controle social do gasto público", "17302" : "17302 - Educação Tributária", + "17401" : "17401 - Direitos e Deveres do Trabalhador", + "17402" : "17402 - O mundo do trabalho", + "19101" : "19101 - Promoção da Saúde", + "19102" : "19102 - Higiene e Cuidados Pessoais/ Higiene Pessoal", + "19103" : "19103 - Saúde Bucal", + "19104" : "19104 - Campanhas de vacinação", + "19105" : "19105 - Educação em saúde reprodutiva", + "19106" : "19106 - Prevenção ao uso de Álcool, Tabaco e Drogas", + "19107" : "19107 - Primeiros Socorros", + "19108" : "19108 - Ações de prevenção a doenças epidemiológicas", + "19109" : "19109 - Meditação", + "19201" : "19201 - Desenvolvimento de competências socioemocionais", + "19202" : "19202 - Atividades de autoconhecimento, identificação e gestão de sentimento", + "19203" : "19203 - Atividades de empatia e gestão de conflitos", + "20101" : "20101 - Educação alimentar e nutricional", + "20102" : "20102 - Estudos dos aspectos nutricionais dos alimentos", + "20103" : "20103 - Ações de Prevenção dos distúrbios alimentares", + "20104" : "20104 - Elaboração de Cardápio Contextualizado local", "41001" : "41001 - Direitos da criança e do adolescente", "41014" : "41014 - Respeito e valorização do idoso", "41015" : "41015 - Educação para o trânsito", - "13302" : "13302 - Educação alimentar e nutricional", + "41016" : "41016 - Estudo do Estatuto do Idoso", + "41017" : "41017 - Legislação e conduta no Trânsito", + "41018" : "41018 - Parcerias com os órgãos de Trânsito", + "41019" : "41019 - Ações de respeito à diversidade", + "41020" : "41020 - Constituição, direitos e deveres do cidadão", + "41021" : "41021 - Estudo do Estatuto da Criança e do Adolescente", + "41022" : "41022 - Ações de integração Família e Escola", + "41023" : "41023 - Ações de integração Comunidade e Escola", + "41024" : "41024 - Vida Familiar e Social", "13303" : "13303 - Reciclagem", "13304" : "13304 - Reflorestamento - Plantio de árvores", "13305" : "13305 - Consumo consciente de água,", - "18101" : "18101 - Desenvolvimento de competências socioemocionais", - "18102" : "18102 - Atividades de autoconhecimento, identificação e gestão de sentimento", - "18103" : "18103 - Atividades de empatia e gestão de conflitos" + "13306" : "13306 - Escolas sustentáveis e COM-vida", + "13307" : "13307 - Coleta seletiva/ Gestão de resíduos", + "13308" : "13308 - Captação e aproveitamento de Água de Chuva", + "13309" : "13309 - Uso de energias alternativas na escola", + "13310" : "13310 - Projetos de pesquisa na escola e entorno" } diff --git a/ieducar/intranet/educar_aluno_det.php b/ieducar/intranet/educar_aluno_det.php index aa944336f2..dff2ff7e12 100644 --- a/ieducar/intranet/educar_aluno_det.php +++ b/ieducar/intranet/educar_aluno_det.php @@ -400,8 +400,8 @@ public function Gerar() $this->addDetalhe(['Página Pessoal', $registro['url']]); } - if ($registro['ref_cod_religiao']) { - $obj_religiao = new clsPmieducarReligiao($registro['ref_cod_religiao']); + if ($det_fisica['ref_cod_religiao']) { + $obj_religiao = new clsPmieducarReligiao($det_fisica['ref_cod_religiao']); $obj_religiao_det = $obj_religiao->detalhe(); $this->addDetalhe(['Religião', $obj_religiao_det['nm_religiao']]); diff --git a/ieducar/intranet/educar_ano_letivo_modulo_cad.php b/ieducar/intranet/educar_ano_letivo_modulo_cad.php index 9e6f1d31a5..22d4d5569b 100644 --- a/ieducar/intranet/educar_ano_letivo_modulo_cad.php +++ b/ieducar/intranet/educar_ano_letivo_modulo_cad.php @@ -187,7 +187,7 @@ public function Gerar() 'ref_cod_modulo', 'Etapa', $opcoesCampoModulo, - $this->ref_cod_modulo, + \Request::get('ref_cod_modulo',$this->ref_cod_modulo), null, null, null, @@ -206,11 +206,21 @@ public function Gerar() if (is_numeric($this->ref_ano) && is_numeric($this->ref_ref_cod_escola) && !$_POST) { $qtd_registros = 0; - foreach ($this->etapas as $campo) { - $this->ano_letivo_modulo[$qtd_registros][] = dataFromPgToBr($campo['data_inicio']); - $this->ano_letivo_modulo[$qtd_registros][] = dataFromPgToBr($campo['data_fim']); - $this->ano_letivo_modulo[$qtd_registros][] = $campo['dias_letivos']; - $qtd_registros++; + + if (Request::has('data_inicio')) { + foreach (Request::get('data_inicio') as $key => $campo) { + $this->ano_letivo_modulo[$qtd_registros][] = \Request::get('data_inicio')[$key] ?? null; + $this->ano_letivo_modulo[$qtd_registros][] = \Request::get('data_fim')[$key] ?? null; + $this->ano_letivo_modulo[$qtd_registros][] = \Request::get('dias_letivos')[$key] ?? null; + $qtd_registros++; + } + } else { + foreach ($this->etapas as $key => $campo) { + $this->ano_letivo_modulo[$qtd_registros][] = dataFromPgToBr($campo['data_inicio']); + $this->ano_letivo_modulo[$qtd_registros][] = dataFromPgToBr($campo['data_fim']); + $this->ano_letivo_modulo[$qtd_registros][] = $campo['dias_letivos']; + $qtd_registros++; + } } $this->campoTabelaInicio( @@ -244,6 +254,15 @@ public function Novo() 'educar_escola_lst.php' ); + try { + $this->validaDates(); + } catch (Exception $e) { + $_POST = []; + $this->Inicializar(); + $this->mensagem = $e->getMessage(); + return false; + } + if ($this->ref_cod_modulo && $this->data_inicio && $this->data_fim) { $this->copiarTurmasUltimoAno($this->ref_ref_cod_escola, $this->ref_ano); Portabilis_Utils_Database::selectField("SELECT pmieducar.copiaAnosLetivos({$this->ref_ano}::smallint, {$this->ref_ref_cod_escola});"); @@ -315,6 +334,15 @@ public function Editar() 'educar_escola_lst.php' ); + try { + $this->validaDates(); + } catch (Exception $e) { + $_POST = []; + $this->Inicializar(); + $this->mensagem = $e->getMessage(); + return false; + } + if ($this->ref_cod_modulo && $this->data_inicio && $this->data_fim) { try { $this->validaModulos(); @@ -636,6 +664,25 @@ public function gerarJsonDosModulos() return json_encode($retorno); } + protected function validaDates(): void + { + foreach ($this->data_inicio as $key => $campo) { + $data_inicio = \Carbon\Carbon::createFromFormat('d/m/Y',$this->data_inicio[$key]); + $data_fim = \Carbon\Carbon::createFromFormat('d/m/Y',$this->data_fim[$key]); + + $etapaAntigo = Portabilis_Utils_Database::selectRow( + 'SELECT data_inicio,data_fim FROM pmieducar.ano_letivo_modulo WHERE ref_ano <> $1 AND ref_ref_cod_escola = $2 AND + ($3::date BETWEEN data_inicio AND data_fim::date OR $4::date BETWEEN data_inicio AND data_fim OR + ($3::date <= data_inicio AND $4::date >= data_fim)) limit 1', + [$this->ref_ano,$this->ref_ref_cod_escola,$data_inicio,$data_fim] + ); + + if (!empty($etapaAntigo) && isset($etapaAntigo['data_inicio'],$etapaAntigo['data_fim'])) { + throw new RuntimeException("A data informada não pode fazer parte do período configurado para outros anos letivos."); + } + } + } + protected function validaModulos() { $ano = $this->ref_ano; diff --git a/ieducar/intranet/educar_escola_cad.php b/ieducar/intranet/educar_escola_cad.php index f74390fb16..20b12b3b70 100644 --- a/ieducar/intranet/educar_escola_cad.php +++ b/ieducar/intranet/educar_escola_cad.php @@ -187,6 +187,9 @@ public $pessoaj_idpes; public $pessoaj_id; public bool $pesquisaPessoaJuridica = true; + public $poder_publico_parceria_convenio; + public $formas_contratacao_adm_publica_e_outras_instituicoes; + public $nao_ha_funcionarios_para_funcoes; public $inputsRecursos = [ 'qtd_secretario_escolar' => 'Secretário(a) escolar', @@ -206,6 +209,52 @@ 'qtd_orientador_comunitario' => 'Orientador(a) comunitário(a) ou assistente social' ]; + public $inputsMatriculasAtendidasPorConvenio = [ + 'qtd_matriculas_atividade_complementar' => 'Atividade complementar', + 'qtd_atendimento_educacional_especializado' => 'Atendimento educacional especializado', + 'qtd_ensino_regular_creche_par' => 'Ensino Regular - Creche - Parcial', + 'qtd_ensino_regular_creche_int' => 'Ensino Regular - Creche - Integral', + 'qtd_ensino_regular_pre_escola_par' => 'Ensino Regular - Pré-escola - Parcial', + 'qtd_ensino_regular_pre_escola_int' => 'Ensino Regular - Pré-escola - Integral', + 'qtd_ensino_regular_ensino_fund_anos_iniciais_par' => 'Ensino Regular - Ensino Fundamental - Anos Iniciais - Parcial', + 'qtd_ensino_regular_ensino_fund_anos_iniciais_int' => 'Ensino Regular - Ensino Fundamental - Anos Iniciais - Integral', + 'qtd_ensino_regular_ensino_fund_anos_finais_par' => 'Ensino Regular - Ensino Fundamental - Anos Finais - Parcial', + 'qtd_ensino_regular_ensino_fund_anos_finais_int' => 'Ensino Regular - Ensino Fundamental - Anos Finais - Integral', + 'qtd_ensino_regular_ensino_med_anos_iniciais_par' => 'Ensino Regular - Ensino Médio - Parcial', + 'qtd_ensino_regular_ensino_med_anos_iniciais_int' => 'Ensino Regular - Ensino Médio - Integral', + 'qtd_edu_especial_classe_especial_par' => 'Educação Especial - Classe especial - Parcial', + 'qtd_edu_especial_classe_especial_int' => 'Educação Especial - Classe especial - Integral', + 'qtd_edu_eja_ensino_fund' => 'Educação de Jovens e Adultos (EJA) - Ensino fundamental', + 'qtd_edu_eja_ensino_med' => 'Educação de Jovens e Adultos (EJA) - Ensino médio', + 'qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_par' => 'Educação Profissional - Qualificação profissional - Integrada à educação de jovens e adultos no ensino fundamental - Parcial', + 'qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_int' => 'Educação Profissional - Qualificação profissional - Integrada à educação de jovens e adultos no ensino fundamental - Integral', + 'qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_par' => 'Educação Profissional - Qualificação profissional técnica - Integrada à educação de jovens e adultos de nível médio - Parcial', + 'qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_int' => 'Educação Profissional - Qualificação profissional técnica - Integrada à educação de jovens e adultos de nível médio - Integral', + 'qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_par' => 'Educação Profissional - Qualificação profissional técnica - Concomitante à educação de jovens e adultos de nível médio - Parcial', + 'qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_int' => 'Educação Profissional - Qualificação profissional técnica - Concomitante à educação de jovens e adultos de nível médio - Integral', + 'qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_par' => 'educação Profissional - Qualificação profissional técnica - Concomitante intercomplementar à educação de jovens e adultos de nível médio - Parcial', + 'qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_int' => 'Educação Profissional - Qualificação profissional técnica - Concomitante intercomplementar à educação de jovens e adultos de nível médio - Integral', + 'qtd_edu_prof_quali_prof_tec_inte_ensino_med_par' => 'Educação Profissional - Qualificação profissional técnica - Integrada ao ensino médio - Parcial', + 'qtd_edu_prof_quali_prof_tecinte_ensino_med_int' => 'Educação Profissional - Qualificação profissional técnica - Integrada ao ensino médio - Integral', + 'qtd_edu_prof_quali_prof_tec_conc_ensino_med_par' => 'Educação Profissional - Qualificação profissional técnica - Concomitante ao ensino médio - Parcial', + 'qtd_edu_prof_quali_prof_tec_conc_ensino_med_int' => 'Educação Profissional - Qualificação profissional técnica - Concomitante ao ensino médio - Integral', + 'qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_par' => 'Educação Profissional - Qualificação profissional técnica - Concomitante intercomplementar ao ensino médio - Parcial', + 'qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_int' => 'Educação Profissional - Qualificação profissional técnica - Concomitante intercomplementar ao ensino médio - Integral', + 'qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_par' => 'Educação Profissional - Educação profissional técnica de nível médio - Integrada ao ensino médio - Parcial', + 'qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_int' => 'Educação Profissional - Educação profissional técnica de nível médio - Integrada ao ensino médio - Integral', + 'qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_par' => 'Educação Profissional - Educação profissional técnica de nível médio - Concomitante ao ensino médio - Parcial', + 'qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_int' => 'Educação Profissional - Educação profissional técnica de nível médio - Concomitante ao ensino médio - Integral', + 'qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_par' => 'Educação Profissional - Educação profissional técnica de nível médio - Concomitante intercomplementar ao ensino médio - Parcial', + 'qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_int' => 'Educação Profissional - Educação profissional técnica de nível médio - Concomitante intercomplementar ao ensino médio - Integral', + 'qtd_edu_prof_edu_prof_tec_nivel_med_subsequente_ensino_med' => 'Educação Profissional - Educação profissional técnica de nível médio - Subsequente ao ensino médio', + 'qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_par' => 'Educação Profissional - Educação profissional técnica de nível médio - Integrada à educação de jovens e adultos de nível médio - Parcial', + 'qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_int' => 'Educação Profissional - Educação profissional técnica de nível médio - Integrada à educação de jovens e adultos de nível médio - Integral', + 'qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_par' => 'Educação Profissional - Educação profissional técnica de nível médio - Concomitante à educação de jovens e adultos de nível médio - Parcial', + 'qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_int' => 'Educação Profissional - Educação profissional técnica de nível médio - Concomitante à educação de jovens e adultos de nível médio - Integral', + 'qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_par' => 'Educação Profissional - Educação profissional técnica de nível médio - Concomitante intercomplementar à educação de jovens e adultos de nível médio - Parcial', + 'qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_int' => 'Educação Profissional - Educação profissional técnica de nível médio - Concomitante intercomplementar à educação de jovens e adultos de nível médio - Integral', + ]; + public function Inicializar() { $retorno = 'Novo'; @@ -264,8 +313,6 @@ public function Inicializar() $retorno = 'Editar'; } - $this->inicializaDados(); - $this->url_cancelar = ($retorno == 'Editar') ? "educar_escola_det.php?cod_escola={$registro['cod_escola']}" : 'educar_escola_lst.php'; $this->breadcrumb('Escola', ['educar_index.php' => 'Escola']); @@ -435,6 +482,9 @@ private function inicializaDados() if (is_string($this->codigo_lingua_indigena)) { $this->codigo_lingua_indigena = explode(',', str_replace(['{', '}'], '', $this->codigo_lingua_indigena)); } + + $this->poder_publico_parceria_convenio = transformStringFromDBInArray($this->poder_publico_parceria_convenio); + $this->formas_contratacao_adm_publica_e_outras_instituicoes = transformStringFromDBInArray($this->formas_contratacao_adm_publica_e_outras_instituicoes); } private function pessoaJuridicaContemEscola($pessoaj_id) @@ -457,6 +507,8 @@ private function pessoaJuridicaContemEscola($pessoaj_id) public function Gerar() { + $this->inicializaDados(); + // assets $scripts = [ '/modules/Portabilis/Assets/Javascripts/Utils.js', @@ -760,22 +812,55 @@ public function Gerar() $this->inputsHelper()->select('categoria_escola_privada', $options); + $helperOptions = ['objectName' => 'poder_publico_parceria_convenio']; $resources = [ - '' => 'Selecione', - 1 => 'Estadual', - 2 => 'Municipal', - 3 => 'Estadual e Municipal' + 1 => 'Secretaria estadual', + 2 => 'Secretaria municipal', + 3 => 'Não possui parceria ou convênio' ]; $options = [ - 'label' => 'Conveniada com poder público', - 'resources' => $resources, - 'value' => $this->conveniada_com_poder_publico, + 'label' => 'Poder público responsável pela parceria ou convênio entre a Administração Pública e outras instituições', + 'size' => 50, 'required' => false, - 'size' => 70 + 'options' => [ + 'values' => $this->poder_publico_parceria_convenio, + 'all_values' => $resources + ] + ]; + + $this->inputsHelper()->multipleSearchCustom('', $options, $helperOptions); + + + $helperOptions = ['objectName' => 'formas_contratacao_adm_publica_e_outras_instituicoes']; + $resources = [ + 1 => 'Termo de colaboração (Lei nº 13.019/2014)', + 2 => 'Termo de fomento (Lei nº 13.019/2014)', + 3 => 'Acordo de cooperação (Lei nº 13.019/2014)', + 4 => 'Contrato de prestação de serviço', + 5 => 'Termo de cooperação técnica e financeira', + 6 => 'Contrato de consórcio público/Convênio de cooperação' + ]; + + $options = [ + 'label' => 'Formas de contratação entre a Administração Pública e outras instituições', + 'size' => 50, + 'required' => false, + 'options' => [ + 'values' => $this->formas_contratacao_adm_publica_e_outras_instituicoes, + 'all_values' => $resources + ] + ]; + + $this->inputsHelper()->multipleSearchCustom('', $options, $helperOptions); + + $resources = [ + '' => 'Selecione', + 1 => 'Estadual', + 2 => 'Municipal', + 3 => 'Estadual e Municipal' ]; - $this->inputsHelper()->select('conveniada_com_poder_publico', $options); $this->campoCnpj('cnpj_mantenedora_principal', 'CNPJ da mantenedora principal da escola privada', $this->cnpj_mantenedora_principal); $hiddenInputOptions = ['options' => ['value' => $this->secretario_id]]; @@ -913,6 +998,13 @@ public function Gerar() $this->campoOculto('incluir_curso', ''); $this->campoQuebra(); + $this->campoRotulo('matriculas_atendidas_convenio', 'Número de matrículas atendidas por meio da parceria ou convênio'); + + foreach ($this->inputsMatriculasAtendidasPorConvenio as $key => $label) { + $options = ['label' => $label, 'value' => $this->{$key}, 'required' => false, 'size' => 4, 'max_length' => 4, 'placeholder' => '']; + $this->inputsHelper()->integer($key, $options); + } + $helperOptions = ['objectName' => 'local_funcionamento']; $options = [ 'label' => 'Local de funcionamento', @@ -1175,7 +1267,7 @@ public function Gerar() $options = [ 'label' => 'Equipamentos da escola', 'size' => 50, - 'required' => false, + 'required' => $this->validarCamposObrigatoriosCenso(), 'options' => [ 'values' => $this->equipamentos, 'all_values' => Equipamentos::getDescriptiveValues() @@ -1261,6 +1353,8 @@ public function Gerar() $options = ['label' => 'Lousa digital', 'resources' => $resources, 'value' => $this->lousas_digitais, 'required' => false, 'size' => 4, 'max_length' => 4, 'placeholder' => '']; $this->inputsHelper()->integer('lousas_digitais', $options); + $this->campoCheck('nao_ha_funcionarios_para_funcoes', 'Não há funcionários para as funções listadas', $this->nao_ha_funcionarios_para_funcoes); + $this->campoRotulo( 'quantidade_profissionais', 'Quantidade de profissionais' @@ -1300,18 +1394,6 @@ public function Gerar() $obrigarOrganizacaoEnsino = $obrigarOrganizacaoEnsino->isValid(); } - $helperOptions = ['objectName' => 'organizacao_ensino']; - $options = [ - 'label' => 'Forma(s) de organização do ensino', - 'size' => 50, - 'required' => $obrigarCamposCenso && $obrigarOrganizacaoEnsino, - 'options' => [ - 'values' => $this->organizacao_ensino, - 'all_values' => OrganizacaoEnsino::getDescriptiveValues() - ] - ]; - $this->inputsHelper()->multipleSearchCustom('', $options, $helperOptions); - $helperOptions = ['objectName' => 'instrumentos_pedagogicos']; $options = [ 'label' => 'Instrumentos, materiais socioculturais e/ou pedagógicos em uso na escola para o desenvolvimento de atividades de ensino aprendizagem', @@ -1462,6 +1544,10 @@ public function Novo() $this->preparaDados(); + if (!$this->validaCnpjMantenedora()) { + return false; + } + if (!$this->validaDigitosInepEscola($this->escola_inep_id, 'Código INEP')) { return false; } @@ -1478,6 +1564,11 @@ public function Novo() return false; } + if ($this->nao_ha_funcionarios_para_funcoes === null && + $this->validaRecursos() === false) { + return false; + } + $this->validateManagersRules(); if (!$this->validaDigitosInepEscolaCompartilhada()) { @@ -1488,6 +1579,14 @@ public function Novo() return false; } + if (!$this->validaCampoEquipamentos()) { + return false; + } + + if (!$this->validaInstrumentosPedagogicos()) { + return false; + } + if (! isset($this->pessoaj_id_oculto) || ! is_int((int)$this->pessoaj_id_oculto) ) { @@ -1542,6 +1641,18 @@ private function validaDigitosInepEscolaCompartilhada() return true; } + public function validaCnpjMantenedora(): bool + { + if((int)$this->dependencia_administrativa === DependenciaAdministrativaEscola::PRIVADA && + !empty($this->cnpj_mantenedora_principal) && + !validaCNPJ($this->cnpj_mantenedora_principal)) { + $this->mensagem = 'O CNPJ da mantenedora principal é inválido. Favor verificar.'; + return false; + } + + return true; + } + private function cadastraEscolaCurso($cod_escola, $excluirEscolaCursos = false) { if ($excluirEscolaCursos === true) { @@ -1654,12 +1765,19 @@ private function constroiObjetoEscola($pessoaj_id_oculto, $escola = null) $obj->mantenedora_escola_privada = $this->mantenedora_escola_privada; $obj->cnpj_mantenedora_principal = idFederal2int($this->cnpj_mantenedora_principal); $obj->esfera_administrativa = $this->esfera_administrativa; + $obj->nao_ha_funcionarios_para_funcoes = $this->nao_ha_funcionarios_para_funcoes !== null; $obj->iddis = (int)$this->district_id; + $obj->poder_publico_parceria_convenio = $this->poder_publico_parceria_convenio; + $obj->formas_contratacao_adm_publica_e_outras_instituicoes = $this->formas_contratacao_adm_publica_e_outras_instituicoes; foreach ($this->inputsRecursos as $key => $value) { $obj->{$key} = $this->{$key}; } + foreach ($this->inputsMatriculasAtendidasPorConvenio as $key => $value) { + $obj->{$key} = $this->{$key}; + } + return $obj; } @@ -1724,6 +1842,8 @@ public function preparaDados() $this->orgaos_colegiados = $this->transformArrayInString($this->orgaos_colegiados); $this->reserva_vagas_cotas = $this->transformArrayInString($this->reserva_vagas_cotas); $this->codigo_lingua_indigena = $this->transformArrayInString($this->codigo_lingua_indigena); + $this->poder_publico_parceria_convenio = $this->transformArrayInString($this->poder_publico_parceria_convenio); + $this->formas_contratacao_adm_publica_e_outras_instituicoes = $this->transformArrayInString($this->formas_contratacao_adm_publica_e_outras_instituicoes); } private function transformArrayInString($value): ?string @@ -1739,6 +1859,10 @@ public function Editar() $this->preparaDados(); + if (!$this->validaCnpjMantenedora()) { + return false; + } + if (!$this->validaDigitosInepEscola($this->escola_inep_id, 'Código INEP')) { return false; } @@ -1755,6 +1879,11 @@ public function Editar() return false; } + if ($this->nao_ha_funcionarios_para_funcoes === null && + $this->validaRecursos() === false) { + return false; + } + $this->validateManagersRules(); if (!$this->validaDigitosInepEscolaCompartilhada()) { @@ -1765,6 +1894,14 @@ public function Editar() return false; } + if (!$this->validaCampoEquipamentos()) { + return false; + } + + if (!$this->validaInstrumentosPedagogicos()) { + return false; + } + $this->bloquear_lancamento_diario_anos_letivos_encerrados = is_null($this->bloquear_lancamento_diario_anos_letivos_encerrados) ? 0 : 1; $this->utiliza_regra_diferenciada = !is_null($this->utiliza_regra_diferenciada); @@ -1824,6 +1961,18 @@ public function Excluir() new RedirectResponse('educar_escola_lst.php') ); } + + protected function validaCampoEquipamentos() + { + $dadosEquipamentos = transformStringFromDBInArray($this->equipamentos); + + if (is_array($dadosEquipamentos) && count($dadosEquipamentos) > 1 && in_array(Equipamentos::NENHUM_EQUIPAMENTO_LISTADO, $dadosEquipamentos)) { + $this->mensagem = 'Não é possível informar mais de uma opção no campo: Equipamentos da escola, quando a opção: Nenhum dos equipamentos listados estiver selecionada.'; + return false; + } + return true; + } + protected function inputTelefone($type, $typeLabel = '') { if (!$typeLabel) { @@ -1872,10 +2021,76 @@ protected function validaCamposCenso() $this->validaSalasClimatizadas() && $this->validaSalasAcessibilidade() && $this->validaEquipamentosAcessoInternet() && - $this->validaRecursos() && $this->validaQuantidadeComputadoresAlunos() && $this->validaQuantidadeEquipamentosEnsino() && - $this->validaLinguasIndigenas(); + $this->validaLinguasIndigenas() && + $this->validaPoderPublicoParceriaConvenio() && + $this->validaFormasDeContratacaoEntreAdministracaoPublicaEOutrasInstituicoes() && + $this->validaMatriculasAtendidasPorConvenio() && + $this->validaLinguasIndigenas() + ; + } + + protected function validaFormasDeContratacaoEntreAdministracaoPublicaEOutrasInstituicoes(): bool + { + $formasDeContratacao = transformStringFromDBInArray($this->formas_contratacao_adm_publica_e_outras_instituicoes); + + $acceptDependenciaAdministrativa = [DependenciaAdministrativaEscola::FEDERAL, DependenciaAdministrativaEscola::ESTADUAL, DependenciaAdministrativaEscola::MUNICIPAL]; + $notAcceptFormasDeContratoInDependenciaAdministrativa = [1, 2, 3, 4]; + if (is_array($formasDeContratacao) && in_array((int)$this->dependencia_administrativa, $acceptDependenciaAdministrativa, true)) { + + $data = array_filter($formasDeContratacao, + static fn($forma) => in_array((int)$forma, $notAcceptFormasDeContratoInDependenciaAdministrativa, true) + ); + + if (count($data) !== 0) { + $this->mensagem = 'O campo Formas de contratação entre a Administração Pública e outras instituições foi preenchido incorretamente.'; + return false; + } + } + + $categoriaEscolaPrivadaLista = [2,3,4]; + $notAcceptFormasDeContratoInDependenciaAdministrativa = [5,6]; + if (is_array($formasDeContratacao) && in_array((int)$this->categoria_escola_privada, $categoriaEscolaPrivadaLista, true)) { + + $data = array_filter($formasDeContratacao, + static fn($forma) => !in_array((int)$forma, $notAcceptFormasDeContratoInDependenciaAdministrativa, true) + ); + + if (count($data) === 0) { + $this->mensagem = 'O campo Formas de contratação entre a Administração Pública e outras instituições foi preenchido incorretamente.'; + return false; + } + } + + if ((int)$this->categoria_escola_privada === 1) { + + if ($formasDeContratacao === null || !in_array(4, $formasDeContratacao)) { + $this->mensagem = 'Quando o campo "Categoria da escola privada" for igual à "Particular" só é possível cadastrar "Contrato de prestação de serviço"'; + return false; + } + + if (count($formasDeContratacao) > 1) { + $this->mensagem = 'Quando o campo "Categoria da escola privada" for igual à "Particular" só é possível cadastrar "Contrato de prestação de serviço"'; + return false; + } + } + + return true; + } + + protected function validaInstrumentosPedagogicos() + { + $dadosInstrumentosPedagogicos = transformStringFromDBInArray($this->instrumentos_pedagogicos); + + if (is_array($dadosInstrumentosPedagogicos) && + count($dadosInstrumentosPedagogicos) > 1 && + in_array(InstrumentosPedagogicos::NENHUM_DOS_INSTRUMENTOS_LISTADOS, $dadosInstrumentosPedagogicos)) { + $this->mensagem = 'Não é possível informar mais de uma opção no campo: Instrumentos, materiais socioculturais e/ou pedagógicos em uso na escola para o desenvolvimento de atividades de ensino aprendizagem, quando a opção: Nenhum dos instrumentos listados estiver selecionada.'; + return false; + } + + return true; } protected function validaOcupacaoPredio() @@ -1904,6 +2119,12 @@ protected function validaLocalizacaoDiferenciada() protected function validaEsferaAdministrativa() { $cidyId = $this->city_id; + + if (empty($cidyId)) { + $this->mensagem = 'Cidade não informada'; + return false; + } + $cityIBGE = City::query() ->whereKey($cidyId) ->get() @@ -1930,16 +2151,13 @@ protected function validaEscolaPrivada() if ($this->dependencia_administrativa != '4' || $this->situacao_funcionamento != 1) { return true; } + if (empty($this->categoria_escola_privada)) { $this->mensagem = 'O campo categoria da escola privada é obrigatório para escolas em atividade de administração privada.'; return false; } - if (empty($this->conveniada_com_poder_publico)) { - $this->mensagem = 'O campo conveniada com poder público é obrigatório para escolas em atividade de administração privada.'; - return false; - } if (empty($this->mantenedora_escola_privada) || (is_array($this->mantenedora_escola_privada) && count($this->mantenedora_escola_privada) == 1 && @@ -1982,6 +2200,8 @@ protected function validaDDDTelefone($valorDDD, $valorTelefone, $nomeCampo) { $msgRequereTelefone = "O campo: {$nomeCampo}, deve ser preenchido quando o DDD estiver preenchido."; $msgRequereDDD = "O campo: DDD, deve ser preenchido quando o {$nomeCampo} estiver preenchido."; + $msgDDDInvalido = "O campo: DDD, possui um valor inválido"; + $listDDDInvalidos = [0,1,2,3,4,5,6,7,8,9,10,20,23,25,26,29,30,36,39,40,50,52,56,57,58,59,60,70,72,76,78,80,90]; if (!empty($valorDDD) && empty($valorTelefone)) { $this->mensagem = $msgRequereTelefone; @@ -1995,6 +2215,12 @@ protected function validaDDDTelefone($valorDDD, $valorTelefone, $nomeCampo) return false; } + if (!empty($valorDDD) && (strlen((int)$valorDDD) !== 2 || in_array((int)$valorDDD,$listDDDInvalidos))) { + $this->mensagem = $msgDDDInvalido; + + return false; + } + return true; } @@ -2016,6 +2242,11 @@ protected function validaTelefone($telefone, $nomeCampo) protected function validaDigitosInepEscola($inep, $nomeCampo) { + if (str_starts_with($inep, '0')) { + $this->mensagem = "O campo: {$nomeCampo} não pode iniciar com 0."; + return false; + } + if (!empty($inep) && strlen($inep) != 8) { $this->mensagem = "O campo: {$nomeCampo} deve conter 8 dígitos."; @@ -2304,12 +2535,6 @@ protected function validaSalasUtilizadasDentroEscola() return true; } - if ((int)$this->numero_salas_utilizadas_fora_predio <= 0 && (int)$this->numero_salas_utilizadas_dentro_predio <= 0) { - $this->mensagem = 'O campo: Número de salas de aula utilizadas na escola dentro do prédio escolar deve ser preenchido quando o campo: Local de funcionamento for: Prédio escolar e o campo: Número de salas de aula utilizadas na escola fora do prédio escolar não for preenchido'; - - return false; - } - return true; } @@ -2321,12 +2546,6 @@ protected function validaSalasUtilizadasForaEscola() return false; } - if ((int)$this->numero_salas_utilizadas_fora_predio <= 0 && (int)$this->numero_salas_utilizadas_dentro_predio <= 0) { - $this->mensagem = 'O campo: Número de salas de aula utilizadas na escola fora do prédio escolar deve ser preenchido quando o campo: Número de salas de aula utilizadas na escola dentro do prédio escolar não for preenchido'; - - return false; - } - return true; } @@ -2439,11 +2658,6 @@ protected function validaOpcoesUnicasMultipleSearch() return false; } - if (is_array($this->rede_local) && in_array(RedeLocal::NENHUMA, $this->rede_local) && count($this->rede_local) > 1) { - $this->mensagem = 'Não é possível informar mais de uma opção no campo: Rede local de interligação de computadores, quando a opção: Não há rede local interligando computadores estiver selecionada.'; - - return false; - } if (is_array($this->orgaos_colegiados) && in_array(OrgaosColegiados::NENHUM, $this->orgaos_colegiados) && count($this->orgaos_colegiados) > 1) { $this->mensagem = 'Não é possível informar mais de uma opção no campo: Órgãos colegiados em funcionamento na escola, quando a opção: Não há órgãos colegiados em funcionamento estiver selecionada.'; @@ -2466,12 +2680,6 @@ protected function validaEquipamentosAcessoInternet() return true; } - if (in_array(2, $this->equipamentos_acesso_internet) && !in_array(3, $this->rede_local)) { - $this->mensagem = 'O campo: Equipamentos que os aluno(a)s usam para acessar a internet da escola não deve ser preenchido com a opção: Dispositivos pessoais (computadores portáteis, celulares, tablets, etc.) quando o campo: Rede local de interligação de computadores não possuir a opção: Wireless selecionada.'; - - return false; - } - return true; } @@ -2494,7 +2702,41 @@ protected function validaRecursos() return true; } - $this->mensagem = 'Preencha pelo menos um dos campos da seção Quantidade de profissionais da aba Recursos.'; + $this->mensagem = 'Preencha pelo menos um dos campos da seção Quantidade de profissionais da aba Recursos.'; + + return false; + } + + protected function validaMatriculasAtendidasPorConvenio() + { + $poderPulicoParceriaConvenio = transformStringFromDBInArray($this->poder_publico_parceria_convenio); + + if ($poderPulicoParceriaConvenio === null) { + return true; + } + + if (!in_array(1, $poderPulicoParceriaConvenio) && !in_array(2, $poderPulicoParceriaConvenio)){ + return true; + } + + $algumCampoPreenchido = false; + foreach ($this->inputsMatriculasAtendidasPorConvenio as $key => $label) { + if ($this->{$key} == '0') { + $this->mensagem = "O campo: {$label} não pode ser preenchido com 0"; + + return false; + } + + if ((int) $this->{$key} > 0) { + $algumCampoPreenchido = true; + } + } + + if ($algumCampoPreenchido) { + return true; + } + + $this->mensagem = 'Preencha pelo menos um dos campos da seção Número de matrículas atendidas por meio da parceria ou convênio da aba Matrículas atendidas por convênio.'; return false; } @@ -2597,6 +2839,23 @@ protected function validaLinguasIndigenas() return true; } + private function validaPoderPublicoParceriaConvenio() + { + $values = transformStringFromDBInArray($this->poder_publico_parceria_convenio); + + if ($values === null) { + return true; + } + + if (count($values) > 1 && in_array(3, $values)) { + $this->mensagem = 'Não é possível informar mais de uma opção no campo: Poder público responsável pela parceria ou convênio entre a Administração Pública e outras instituições, quando a opção: Não possui parceria ou convênio estiver selecionada.'; + + return false; + } + + return true; + } + public function Formular() { $this->title = 'Escola'; diff --git a/ieducar/intranet/educar_escola_serie_cad.php b/ieducar/intranet/educar_escola_serie_cad.php index a3ae61e976..ea8158c8cd 100644 --- a/ieducar/intranet/educar_escola_serie_cad.php +++ b/ieducar/intranet/educar_escola_serie_cad.php @@ -97,11 +97,8 @@ public function Gerar() } arsort($anosLetivos); - $anoLetivoSelected = empty($anoLetivoSelected) ? null : max($anosLetivos); - if (request('ano_letivo')) { - $anoLetivoSelected = request('ano_letivo'); - } + $anoLetivoSelected = request('ano_letivo') ?? (empty($anosLetivos) ? null : max($anosLetivos)); $this->definirComponentePorEtapa = $this->escolaSerieService->levelAllowDefineDisciplinePerStage( $this->ref_cod_serie, @@ -326,13 +323,13 @@ public function Gerar() multiple='multiple' class='anos_letivos' id='anos_letivos_{$registro->id}' data-id='$registro->id'> "; foreach ($this->anos_letivos as $anoLetivo) { - $seletected = in_array($anoLetivo, $anosLetivosComponente) ? 'selected=selected' : ''; + $seletected = in_array($anoLetivo, $anosLetivosComponente, true) ? 'selected=selected' : ''; $conteudo .= ""; } $conteudo .= ' '; if ($this->definirComponentePorEtapa) { - $conteudo .= " '; + $conteudo .= " '; $conteudo .= " "; } diff --git a/ieducar/intranet/educar_matricula_cad.php b/ieducar/intranet/educar_matricula_cad.php index c26416d7d3..c54ffc51ae 100644 --- a/ieducar/intranet/educar_matricula_cad.php +++ b/ieducar/intranet/educar_matricula_cad.php @@ -338,6 +338,11 @@ public function Novo() $dependencia = $this->dependencia == 'on'; + if (!$this->validaPeriodoDeMatriculasPelaDataFechamento()) { + $this->mensagem = 'Não é possível matricular alunos após a data de fechamento.'; + return false; + } + if ($dependencia && !$this->verificaQtdeDependenciasPermitida()) { return false; } @@ -1087,6 +1092,21 @@ public function permiteMatriculaSerieDestino() return false; } + private function validaPeriodoDeMatriculasPelaDataFechamento() : bool + { + $instituicao = app(LegacyInstitution::class); + + if (empty($instituicao->data_fechamento)) { + return true; + } + + $dataFechamento = explode('-', $instituicao->data_fechamento); + $dataFechamento = $this->ano . '-' . $dataFechamento[1] . '-' . $dataFechamento[2]; + $dataMatricula = Portabilis_Date_Utils::brToPgSQL($this->data_matricula); + + return $dataMatricula <= $dataFechamento; + } + public function desativaEnturmacoesMatricula($matriculaId) { $result = true; diff --git a/ieducar/intranet/educar_matricula_det.php b/ieducar/intranet/educar_matricula_det.php index b284608cfd..6053eaf4d7 100644 --- a/ieducar/intranet/educar_matricula_det.php +++ b/ieducar/intranet/educar_matricula_det.php @@ -157,18 +157,30 @@ public function Gerar() $existeTurmaMulti = false; $existeTurmaTurnoIntegral = false; $existeAtendimentoEspecializado = false; + $existeTurmaItineraria = false; $nomesTurmas = []; $datasEnturmacoes = []; + $nomesTurnos = []; foreach ($enturmacoes as $enturmacao) { $turma = new clsPmieducarTurma($enturmacao['ref_cod_turma']); - $turma = $turma->detalhe(); + $turma = $turma->detalhe() ?? []; $turma_id = $enturmacao['ref_cod_turma']; if (in_array($turma['etapa_educacenso'], App_Model_Educacenso::etapas_multisseriadas())) { $existeTurmaMulti = true; } + $estruturaCurricular = transformStringFromDBInArray($turma['estrutura_curricular']) ?? []; + $turmaItineraria = in_array(2, $estruturaCurricular); + $turmaFormacaoBasica = in_array(1, $estruturaCurricular); + $etapasItinerario = [25, 26, 27, 28, 30, 31, 32, 33, 35, 36, 37, 38, 71, 74]; + + if (($turmaItineraria && count($estruturaCurricular) === 1) || + ($turmaItineraria && $turmaFormacaoBasica && in_array($turma['etapa_educacenso'], $etapasItinerario))) { + $existeTurmaItineraria = true; + } + if ($enturmacao['ativo'] == 0) { continue; } @@ -183,16 +195,25 @@ public function Gerar() if ($turma['tipo_atendimento'] == TipoAtendimentoTurma::AEE) { $existeAtendimentoEspecializado = true; } + + $nomesTurnos[] = match ((int)$enturmacao['turno_id']) { + clsPmieducarTurma::TURNO_MATUTINO => 'Matutino', + clsPmieducarTurma::TURNO_VESPERTINO => 'Vespertino', + default => 'Integral', + }; } $nomesTurmas = implode('
', $nomesTurmas); $datasEnturmacoes = implode('
', $datasEnturmacoes); + $nomesTurnos = implode('
', $nomesTurnos); if ($nomesTurmas) { $this->addDetalhe(['Turma', $nomesTurmas]); + $this->addDetalhe(['Turno', $nomesTurnos]); $this->addDetalhe(['Data Enturmação', $datasEnturmacoes]); $existeTurma = true; } else { $this->addDetalhe(['Turma', '']); + $this->addDetalhe(['Turno', '']); $this->addDetalhe(['Data Enturmação', '']); } @@ -347,6 +368,12 @@ public function Gerar() $this->array_botao_url_script[] = "go(\"educar_matricula_turma_turno_cad.php?ref_cod_matricula={$registro['cod_matricula']}&ref_cod_aluno={$registro['ref_cod_aluno']}\")"; } + if ($existeTurmaItineraria) { + $this->array_botao[] = 'Itinerário formativo'; + $link = route('enrollments.enrollment-formative-itinerary-list', ['id' => $registro['cod_matricula']]); + $this->array_botao_url_script[] = "go(\"{$link}\")"; + } + if ($registro['aprovado'] != 4 && $registro['aprovado'] != 6) { if (is_array($lst_transferencia) && isset($data_transferencia)) { $this->array_botao[] = 'Cancelar solicitação transferência'; diff --git a/ieducar/intranet/educar_matricula_turma_turno_cad.php b/ieducar/intranet/educar_matricula_turma_turno_cad.php index 817448f110..ed62aec7b5 100644 --- a/ieducar/intranet/educar_matricula_turma_turno_cad.php +++ b/ieducar/intranet/educar_matricula_turma_turno_cad.php @@ -1,5 +1,7 @@ campoOculto('cod_matricula', $this->cod_matricula); $this->campoOculto('ref_cod_aluno', $this->ref_cod_aluno); - $this->nome_url_cancelar = 'Voltar'; - $this->url_cancelar = "educar_matricula_det.php?cod_matricula={$this->cod_matricula}"; + $this->array_botao[] = 'Voltar'; + $this->array_botao_url[] = "educar_matricula_det.php?cod_matricula={$this->cod_matricula}"; $this->breadcrumb('Turno do aluno', [ $_SERVER['SERVER_NAME'] . '/intranet' => 'Início', @@ -95,6 +97,8 @@ public function Gerar() $this->campoLista("turno[{$enturmacao['ref_cod_turma']}-{$enturmacao['sequencial']}]", "Turno do aluno na turma: {$enturmacao['nm_turma']}", $turnos, $enturmacao['turno_id'], '', false, 'Não é necessário preencher o campo quando o aluno cursar o turno INTEGRAL', '', false, false); } + + $this->acao_enviar = 'showConfirmationMessage(this)'; } public function Editar() @@ -102,20 +106,33 @@ public function Editar() $this->validaPermissao(); $this->validaParametros(); + $is_change = false; foreach ($this->turno as $codTurmaESequencial => $turno) { // Necessário pois chave é Turma + Matrícula + Sequencial $codTurmaESequencial = explode('-', $codTurmaESequencial); $codTurma = $codTurmaESequencial[0]; $sequencial = $codTurmaESequencial[1]; - $obj = new clsPmieducarMatriculaTurma($this->cod_matricula, $codTurma, $this->pessoa_logada); - $obj->sequencial = $sequencial; - $obj->turno_id = $turno; - $obj->edita(); + + + if (Enrollment::where('ref_cod_matricula',$this->cod_matricula)->where('ref_cod_turma',$codTurma)->value('turno_id') != (int)$turno) { + $is_change = true; + + $obj = new clsPmieducarMatriculaTurma($this->cod_matricula, $codTurma, $this->pessoa_logada); + $obj->sequencial = $sequencial; + $obj->turno_id = $turno; + $obj->edita(); + } } - $this->mensagem .= 'Turno atualizado com sucesso.
'; - return true; + session()->flash('success', $is_change ? 'Turno alterado com sucesso!' : 'Não houve alteração no valor do campo Turno.'); + + return $this->simpleRedirect(url('intranet/educar_matricula_det.php?cod_matricula='.$this->cod_matricula)); + } + + public function makeExtra() + { + return file_get_contents(__DIR__ . '/scripts/extra/educar-matricula-turma-turno.js'); } private function validaPermissao() diff --git a/ieducar/intranet/educar_servidor_cad.php b/ieducar/intranet/educar_servidor_cad.php index 313a56394b..8dec47e800 100644 --- a/ieducar/intranet/educar_servidor_cad.php +++ b/ieducar/intranet/educar_servidor_cad.php @@ -1,10 +1,15 @@ cod_servidor}", $funcoes); } - if (is_string($this->pos_graduacao)) { - $this->pos_graduacao = explode(',', str_replace(['{', '}'], '', $this->pos_graduacao)); - } - if (is_string($this->curso_formacao_continuada)) { $this->curso_formacao_continuada = explode(',', str_replace(['{', '}'], '', $this->curso_formacao_continuada)); } @@ -384,22 +384,6 @@ public function Gerar() $this->inputsHelper()->select('tipo_ensino_medio_cursado', $options); - $helperOptions = ['objectName' => 'pos_graduacao']; - $options = [ - 'label' => 'Pós-Graduações concluídas', - 'required' => false, - 'options' => [ - 'values' => $this->pos_graduacao, - 'all_values' => [ - 1 => 'Especialização', - 2 => 'Mestrado', - 3 => 'Doutorado', - 4 => 'Não tem pós-graduação concluída' - ] - ] - ]; - $this->inputsHelper()->multipleSearchCustom('', $options, $helperOptions); - $helperOptions = ['objectName' => 'curso_formacao_continuada']; $options = [ 'label' => 'Outros cursos de formação continuada (Mínimo de 80 horas)', @@ -437,6 +421,8 @@ public function Gerar() $this->addGraduationsTable(); + $this->addPosgraduateTable(); + $scripts = ['/modules/Cadastro/Assets/Javascripts/Servidor.js']; Portabilis_View_Helper_Application::loadJavascript($this, $scripts); @@ -476,13 +462,6 @@ public function Novo() $this->carga_horaria = $hour + $min; $this->carga_horaria = $hour + $min; - $posGraduacao = []; - if (is_array($this->pos_graduacao)) { - $posGraduacao = array_filter($this->pos_graduacao); - } - - $this->pos_graduacao = '{' . implode(',', $posGraduacao) . '}'; - $cursoFormacaoContinuada = []; if (is_array($this->curso_formacao_continuada)) { $cursoFormacaoContinuada = array_filter($this->curso_formacao_continuada); @@ -511,6 +490,7 @@ public function Novo() $this->createOrUpdateDeficiencias(); $this->storeGraduations($this->cod_servidor); + $this->storePosgraduate($this->cod_servidor); include 'educar_limpa_sessao_curso_disciplina_servidor.php'; @@ -534,6 +514,7 @@ public function Novo() $this->createOrUpdateDeficiencias(); $this->storeGraduations($this->cod_servidor); + $this->storePosgraduate($this->cod_servidor); include 'educar_limpa_sessao_curso_disciplina_servidor.php'; @@ -554,13 +535,6 @@ public function Editar() $this->carga_horaria = $hour + $min; $this->carga_horaria = $hour + $min; - $posGraduacao = []; - if (is_array($this->pos_graduacao)) { - $posGraduacao = array_filter($this->pos_graduacao); - } - - $this->pos_graduacao = '{' . implode(',', $posGraduacao) . '}'; - $cursoFormacaoContinuada = []; if (is_array($this->curso_formacao_continuada)) { $cursoFormacaoContinuada = array_filter($this->curso_formacao_continuada); @@ -585,6 +559,7 @@ public function Editar() $this->createOrUpdateDeficiencias(); $this->storeGraduations($this->cod_servidor); + $this->storePosgraduate($this->cod_servidor); include 'educar_limpa_sessao_curso_disciplina_servidor.php'; @@ -680,6 +655,7 @@ public function Editar() $this->createOrUpdateDeficiencias(); $this->storeGraduations($this->cod_servidor); + $this->storePosgraduate($this->cod_servidor); include 'educar_limpa_sessao_curso_disciplina_servidor.php'; @@ -755,7 +731,6 @@ public function Excluir() public function addCamposCenso($obj) { $obj->tipo_ensino_medio_cursado = $this->tipo_ensino_medio_cursado; - $obj->pos_graduacao = $this->pos_graduacao; $obj->curso_formacao_continuada = $this->curso_formacao_continuada; return $obj; @@ -953,6 +928,42 @@ protected function addGraduationsTable() $this->campoTabelaFim(); } + protected function addPosgraduateTable() + { + $posgraduate = EmployeePosgraduate::query() + ->where('employee_id', $this->cod_servidor) + ->get() + ->map(function ($posgraduate) { + return [ + $posgraduate->type_id, + $posgraduate->area_id, + $posgraduate->completion_year, + $posgraduate->id, + ]; + }) + ->toArray(); + + $types = [null => 'Selecione uma opção'] + PosGraduacao::getDescriptiveValues(); + $areas = [null => 'Selecione uma opção'] + AreaPosGraduacao::getDescriptiveValues(); + + $this->campoTabelaInicio( + 'posgraduate', + 'Pós-graduações concluídas', + [ + 'Tipo de pós graduação', + 'Área', + 'Ano de conclusão', + ], + $posgraduate + ); + + $this->inputsHelper()->select('posgraduate_type_id', ['resources' => $types, 'required' => false]); + $this->inputsHelper()->select('posgraduate_area_id', ['resources' => $areas, 'required' => false]); + $this->campoTexto('posgraduate_completion_year', null, null, null, 4); + + $this->campoTabelaFim(); + } + /** * @param $employeeId * @@ -1036,6 +1047,36 @@ protected function storeGraduations($employeeId) } } + protected function storePosgraduate($employeeId) + { + /** @var EmployeePosgraduateService $employeePosgraduateService */ + $employeePosgraduateService = app(EmployeePosgraduateService::class); + + $employeePosgraduateService->deleteAll($employeeId); + + if (empty($this->ref_idesco)) { + return true; + } + + if (LegacySchoolingDegree::find($this->ref_idesco)->escolaridade != Escolaridade::EDUCACAO_SUPERIOR) { + return true; + } + + foreach ($this->posgraduate_type_id as $key => $typeId) { + if (empty($typeId)) { + continue; + } + + $valueObject = new EmployeePosgraduateValueObject(); + $valueObject->employeeId = $employeeId; + $valueObject->entityId = $this->ref_cod_instituicao; + $valueObject->typeId = $this->posgraduate_type_id[$key] ?: null; + $valueObject->areaId = $this->posgraduate_area_id[$key] ?: null; + $valueObject->completionYear = $this->posgraduate_completion_year[$key] ?: null; + $employeePosgraduateService->storePosgraduate($valueObject); + } + } + protected function getCourseName($courseId) { $academicLevels = [ diff --git a/ieducar/intranet/educar_servidor_vinculo_turma_cad.php b/ieducar/intranet/educar_servidor_vinculo_turma_cad.php index b7d099bb58..42ece7ee29 100644 --- a/ieducar/intranet/educar_servidor_vinculo_turma_cad.php +++ b/ieducar/intranet/educar_servidor_vinculo_turma_cad.php @@ -5,6 +5,7 @@ use App\Services\iDiarioService; use iEducar\Modules\Educacenso\Model\TipoAtendimentoTurma; use iEducar\Modules\Educacenso\Model\TipoMediacaoDidaticoPedagogico; +use iEducar\Modules\Educacenso\Model\UnidadesCurriculares; use iEducar\Modules\Servidores\Model\FuncaoExercida; use iEducar\Support\View\SelectOptions; @@ -21,6 +22,8 @@ public $ref_cod_curso; public $ref_cod_serie; public $ref_cod_turma; + public $unidades_curriculares; + public $turma_estrutura_curricular; public function Inicializar() { @@ -62,6 +65,11 @@ public function Inicializar() $this->ref_cod_curso = $obj_turma['ref_cod_curso']; $this->ref_cod_serie = $obj_turma['ref_ref_cod_serie']; + $this->turma_estrutura_curricular = $obj_turma['estrutura_curricular']; + + if (is_string($registro['unidades_curriculares'])) { + $this->unidades_curriculares = explode(',', str_replace(['{', '}'], '', $registro['unidades_curriculares'])); + } if (!isset($_GET['copia'])) { $retorno = 'Editar'; @@ -116,6 +124,19 @@ public function Gerar() ]; $this->inputsHelper()->select('funcao_exercida', $options); + $helperOptions = ['objectName' => 'unidades_curriculares']; + $options = [ + 'label' => 'Unidade(s) curricular(es) que leciona', + 'label_hint' => 'Campo referente a unidade(s) curricular(es) da turma', + 'size' => 50, + 'required' => false, + 'options' => [ + 'values' => $this->unidades_curriculares, + 'all_values' => UnidadesCurriculares::getDescriptiveValues() + ] + ]; + $this->inputsHelper()->multipleSearchCustom('', $options, $helperOptions); + $resources = SelectOptions::tiposVinculoServidor(); $options = [ 'label' => 'Tipo do vínculo', @@ -171,35 +192,28 @@ public function Novo() $obj_permissoes = new clsPermissoes(); $obj_permissoes->permissao_cadastra(635, $this->pessoa_logada, 7, $backUrl); - if ($this->ref_cod_turma) { - if (!$this->validaCamposCenso()) { - return false; - } + if (!isset($this->ref_cod_turma)) { + $this->mensagem = 'É necessário selecionar uma turma'; + return false; + } - if (!$this->validaVinculoEscola()) { - return false; - } + if (!$this->validaCamposCenso()) { + return false; + } - $professorTurma = new clsModulesProfessorTurma(null, $this->ano, $this->ref_cod_instituicao, $this->servidor_id, $this->ref_cod_turma, $this->funcao_exercida, $this->tipo_vinculo, $this->permite_lancar_faltas_componente, $this->turma_turno_id); - if ($professorTurma->existe2()) { - $this->mensagem .= 'Não é possível cadastrar pois já existe um vínculo com essa turma.
'; + if (!$this->validaVinculoEscola()) { + return false; + } - return false; - } else { - $professorTurmaId = $professorTurma->cadastra(); - $professorTurma->gravaComponentes($professorTurmaId, $this->componentecurricular); - } - } else { - $turmas = new clsPmieducarTurmas(); - foreach ($turmas->lista(null, null, null, $this->ref_cod_serie, $this->ref_cod_escola, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, $this->ano) as $reg) { - $professorTurma = new clsModulesProfessorTurma(null, $this->ano, $this->ref_cod_instituicao, $this->servidor_id, $reg['cod_turma'], $this->funcao_exercida, $this->tipo_vinculo, $this->permite_lancar_faltas_componente, $this->turma_turno_id); - // FIxME entender qual é o objeto correto - $professorTurmaId = $obj->cadastra(); - // FIXME #parameters - $professorTurma->gravaComponentes($professorTurmaId, null); - } + $professorTurma = new clsModulesProfessorTurma(null, $this->ano, $this->ref_cod_instituicao, $this->servidor_id, $this->ref_cod_turma, $this->funcao_exercida, $this->tipo_vinculo, $this->permite_lancar_faltas_componente, $this->turma_turno_id); + if ($professorTurma->existe2()) { + $this->mensagem = 'Não é possível cadastrar pois já existe um vínculo com essa turma.
'; + return false; } + $professorTurmaId = $professorTurma->cadastra(); + $professorTurma->gravaComponentes($professorTurmaId, $this->componentecurricular); + $this->mensagem .= 'Cadastro efetuado com sucesso.
'; $this->simpleRedirect($backUrl); } @@ -215,6 +229,8 @@ public function Editar() $obj_permissoes = new clsPermissoes(); $obj_permissoes->permissao_cadastra(635, $this->pessoa_logada, 7, $backUrl); + $this->unidades_curriculares = $this->transformArrayInString($this->unidades_curriculares); + $professorTurma = new clsModulesProfessorTurma( $this->id, $this->ano, @@ -224,7 +240,8 @@ public function Editar() $this->funcao_exercida, $this->tipo_vinculo, $this->permite_lancar_faltas_componente, - $this->turma_turno_id + $this->turma_turno_id, + $this->unidades_curriculares ); if (!$this->validaCamposCenso()) { @@ -325,6 +342,15 @@ private function validaFuncaoExercida() FuncaoExercida::DOCENTE_TUTOR_EAD, ]; + $etapas_instrutor_educacao_pŕofissional = [30,31,32,33,34,39,40,73,74,64,67,68]; + + if ($this->funcao_exercida == FuncaoExercida::INSTRUTOR_EDUCACAO_PROFISSIONAL && (($turma['estrutura_curricular'] && !in_array('2', transformStringFromDBInArray($turma['estrutura_curricular']), true)) || !in_array($turma['etapa_educacenso'],$etapas_instrutor_educacao_pŕofissional, true))){ + $opcoes = \Str::replaceLast(', ',' ou ',implode(', ',$etapas_instrutor_educacao_pŕofissional)); + $this->mensagem = "O campo: Função exercida pode ser Instrutor da Educação Profissional apenas quando o campo Estrutura Curricular da turma for: Itinerário formativo e o campo Etapa de ensino for uma das opções: {$opcoes}."; + + return false; + } + if ($turma['tipo_mediacao_didatico_pedagogico'] == TipoMediacaoDidaticoPedagogico::EDUCACAO_A_DISTANCIA && !in_array($this->funcao_exercida, $funcoesEad)) { $this->mensagem = 'O campo: Função exercida deve ser Docente titular ou Docente tutor, quando o campo: Tipo de mediação didático-pedagógica da turma for: Educação a Distância.'; @@ -370,6 +396,11 @@ private function existeLancamentoIDiario($professorId, $turmaId) return false; } + private function transformArrayInString($value): ?string + { + return is_array($value) ? implode(',', $value) : null; + } + public function Formular() { $this->title = 'Servidores - Servidor vínculo turma'; diff --git a/ieducar/intranet/educar_servidor_vinculo_turma_det.php b/ieducar/intranet/educar_servidor_vinculo_turma_det.php index dd3fd8f266..a02c351177 100644 --- a/ieducar/intranet/educar_servidor_vinculo_turma_det.php +++ b/ieducar/intranet/educar_servidor_vinculo_turma_det.php @@ -32,7 +32,10 @@ public function Gerar() 3 => 'Profissional/Monitor de atividade complementar', 4 => 'Tradutor Intérprete de LIBRAS', 5 => 'Docente titular - Coordenador de tutoria (de módulo ou disciplina) - EAD', - 6 => 'Docente tutor - Auxiliar (de módulo ou disciplina) - EAD']; + 6 => 'Docente tutor - Auxiliar (de módulo ou disciplina) - EAD', + 7 => 'Guia-Intérprete', + 8 => 'Profissional de apoio escolar para aluno(a)s com deficiência (Lei 13.146/2015)', + 9 => 'Instrutor da Educação Profissional']; $resources_tipo = [ null => 'Selecione', 1 => 'Concursado/efetivo/estável', diff --git a/ieducar/intranet/educar_turma_cad.php b/ieducar/intranet/educar_turma_cad.php index 09ff0bff4c..134906f43b 100644 --- a/ieducar/intranet/educar_turma_cad.php +++ b/ieducar/intranet/educar_turma_cad.php @@ -2,6 +2,7 @@ use App\Models\LegacyDisciplineSchoolClass; use App\Models\LegacySchoolCourse; +use iEducar\Modules\Educacenso\Model\UnidadesCurriculares; use iEducar\Support\View\SelectOptions; return new class extends clsCadastro { @@ -641,23 +642,13 @@ public function Gerar() $this->inputsHelper()->select('formas_organizacao_turma', $options); $helperOptions = ['objectName' => 'unidade_curricular']; - $resources = [ - 1 => 'Eletivas', - 2 => 'Libras', - 3 => 'Língua indígena', - 4 => 'Língua/Literatura estrangeira - Espanhol', - 5 => 'Língua/Literatura estrangeira - Francês', - 6 => 'Língua/Literatura estrangeira - outra', - 7 => 'Projeto de vida', - 8 => 'Trilhas de aprofundamento/aprendizagens' - ]; $options = [ 'label' => 'Unidade curricular', 'required' => false, 'size' => 70, 'options' => [ 'values' => $this->unidade_curricular, - 'all_values'=> $resources + 'all_values'=> UnidadesCurriculares::getDescriptiveValues() ] ]; diff --git a/ieducar/intranet/educar_turma_det.php b/ieducar/intranet/educar_turma_det.php index 8477f58716..0d627ed610 100644 --- a/ieducar/intranet/educar_turma_det.php +++ b/ieducar/intranet/educar_turma_det.php @@ -458,6 +458,7 @@ public function montaListaComponentesMulti() if (is_array($componentes) && count($componentes)) { $this->tabela3 .= '
'; $this->tabela3 .= ' Nome'; + $this->tabela3 .= ' Serie'; $this->tabela3 .= ' Carga horária'; $this->tabela3 .= '
'; $this->tabela3 .= '
'; @@ -465,6 +466,7 @@ public function montaListaComponentesMulti() foreach ($componentes as $componente) { $this->tabela3 .= '
'; $this->tabela3 .= " " . $componente->nome . ""; + $this->tabela3 .= " " . $componente->serie . ""; $this->tabela3 .= " " . $componente->carga_horaria . ""; $this->tabela3 .= '
'; $this->tabela3 .= '
'; @@ -486,8 +488,9 @@ public function montaListaComponentesMulti() public function getComponentesTurmaMulti($turmaId) { return DB::table('pmieducar.turma as t') - ->selectRaw('cc.id, cc.nome, coalesce(esd.carga_horaria, ccae.carga_horaria)::int AS carga_horaria') + ->selectRaw("cc.id, cc.nome, coalesce(esd.carga_horaria, ccae.carga_horaria)::int AS carga_horaria,s.nm_serie as serie") ->join('pmieducar.turma_serie as ts', 'ts.turma_id', '=', 't.cod_turma') + ->leftJoin('pmieducar.serie as s', 's.cod_serie', 'ts.serie_id') ->join('pmieducar.escola_serie as es', function($join) { $join->on('es.ref_cod_serie', '=', 'ts.serie_id'); $join->on('es.ref_cod_escola', '=', 't.ref_ref_cod_escola'); @@ -504,8 +507,11 @@ public function getComponentesTurmaMulti($turmaId) { ->where('t.cod_turma', $turmaId) ->whereRaw('t.ano = ANY(esd.anos_letivos)') ->where('t.multiseriada', 1) - ->distinct() ->get() + ->unique(function ($item) { + return $item->id.$item->nome.$item->carga_horaria; + }) + ->sortBy('nome') ->toArray(); } diff --git a/ieducar/intranet/include/funcoes.inc.php b/ieducar/intranet/include/funcoes.inc.php index e5953c7d7d..5905036c44 100644 --- a/ieducar/intranet/include/funcoes.inc.php +++ b/ieducar/intranet/include/funcoes.inc.php @@ -49,6 +49,7 @@ function loadJson($file) function int2CNPJ($int) { + $int = preg_replace('/[\D]/', '', $int ); if (strlen($int) < 14) { $str = str_repeat('0', 14 - strlen($int)) . $int; } else { @@ -397,7 +398,7 @@ function isArrayEmpty($value): bool function transformStringFromDBInArray($string): ?array { - if (is_string($string) && str_contains($string, '{') && str_contains($string, '}')) { + if (is_string($string)) { return explode(',', str_replace(['{', '}'], '', $string)); } diff --git a/ieducar/intranet/include/modules/clsModulesProfessorTurma.inc.php b/ieducar/intranet/include/modules/clsModulesProfessorTurma.inc.php index 7ec012bdb5..27bb93d47c 100644 --- a/ieducar/intranet/include/modules/clsModulesProfessorTurma.inc.php +++ b/ieducar/intranet/include/modules/clsModulesProfessorTurma.inc.php @@ -24,6 +24,8 @@ class clsModulesProfessorTurma extends Model public $codUsuario; + public $unidades_curriculares; + /** * Construtor. * @@ -46,12 +48,13 @@ public function __construct( $funcao_exercida = null, $tipo_vinculo = null, $permite_lancar_faltas_componente = null, - $turno_id = null + $turno_id = null, + $unidades_curriculares = null ) { $this->_schema = 'modules.'; $this->_tabela = "{$this->_schema}professor_turma"; - $this->_campos_lista = $this->_todos_campos = ' pt.id, pt.ano, pt.instituicao_id, pt.servidor_id, pt.turma_id, pt.funcao_exercida, pt.tipo_vinculo, pt.permite_lancar_faltas_componente, pt.turno_id'; + $this->_campos_lista = $this->_todos_campos = ' pt.id, pt.ano, pt.instituicao_id, pt.servidor_id, pt.turma_id, pt.funcao_exercida, pt.tipo_vinculo, pt.permite_lancar_faltas_componente, pt.turno_id, pt.unidades_curriculares'; if (is_numeric($id)) { $this->id = $id; @@ -85,6 +88,10 @@ public function __construct( $this->turno_id = $turno_id; } + if (is_string($unidades_curriculares)) { + $this->unidades_curriculares = $unidades_curriculares; + } + if (isset($permite_lancar_faltas_componente)) { $this->permite_lancar_faltas_componente = '1'; } else { @@ -161,9 +168,19 @@ public function cadastra() $gruda = ', '; } + if (is_string($this->unidades_curriculares)) { + $campos .= "{$gruda}unidades_curriculares"; + $valores .= "{$gruda}='{{$this->unidades_curriculares}}'"; + $gruda = ', '; + } else { + $campos .= "{$gruda}unidades_curriculares"; + $valores .= "{$gruda}NULL"; + $gruda = ', '; + } + $campos .= "{$gruda}updated_at"; $valores .= "{$gruda} CURRENT_TIMESTAMP"; - $gruda = ', '; + $db->Consulta("INSERT INTO {$this->_tabela} ( $campos ) VALUES( $valores )"); @@ -243,6 +260,14 @@ public function edita() $gruda = ', '; } + if (is_string($this->unidades_curriculares)) { + $set .= "{$gruda}unidades_curriculares ='{{$this->unidades_curriculares}}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}unidades_curriculares = NULL"; + $gruda = ', '; + } + $set .= "{$gruda}updated_at = CURRENT_TIMESTAMP"; $gruda = ', '; diff --git a/ieducar/intranet/include/pmieducar/clsPmieducarAluno.inc.php b/ieducar/intranet/include/pmieducar/clsPmieducarAluno.inc.php index eb2c116083..2e624699fe 100644 --- a/ieducar/intranet/include/pmieducar/clsPmieducarAluno.inc.php +++ b/ieducar/intranet/include/pmieducar/clsPmieducarAluno.inc.php @@ -18,7 +18,7 @@ class clsPmieducarAluno extends Model public $nm_pai; public $nm_mae; public $tipo_responsavel = ''; - public $recursos_prova_inep; + public $recursos_prova_inep = false; public $recebe_escolarizacao_em_outro_espaco; public $justificativa_falta_documentacao = false; public $url_laudo_medico; @@ -416,6 +416,9 @@ public function edita() if (is_string($this->recursos_prova_inep)) { $set .= "{$gruda}recursos_prova_inep = '{$this->recursos_prova_inep}'"; $gruda = ', '; + } elseif ($this->recursos_prova_inep !== false) { + $set .= "{$gruda}recursos_prova_inep = NULL"; + $gruda = ', '; } if (is_numeric($this->recebe_escolarizacao_em_outro_espaco)) { diff --git a/ieducar/intranet/include/pmieducar/clsPmieducarEscola.inc.php b/ieducar/intranet/include/pmieducar/clsPmieducarEscola.inc.php index 35f2ff05ba..02649ba17f 100644 --- a/ieducar/intranet/include/pmieducar/clsPmieducarEscola.inc.php +++ b/ieducar/intranet/include/pmieducar/clsPmieducarEscola.inc.php @@ -124,7 +124,53 @@ class clsPmieducarEscola extends Model public $qtd_fonoaudiologo; public $qtd_vice_diretor; public $qtd_orientador_comunitario; + public $nao_ha_funcionarios_para_funcoes; public $iddis; + public $poder_publico_parceria_convenio; + public $formas_contratacao_adm_publica_e_outras_instituicoes; + public $qtd_matriculas_atividade_complementar; + public $qtd_atendimento_educacional_especializado; + public $qtd_ensino_regular_creche_par; + public $qtd_ensino_regular_creche_int; + public $qtd_ensino_regular_pre_escola_par; + public $qtd_ensino_regular_pre_escola_int; + public $qtd_ensino_regular_ensino_fund_anos_iniciais_par; + public $qtd_ensino_regular_ensino_fund_anos_iniciais_int; + public $qtd_ensino_regular_ensino_fund_anos_finais_par; + public $qtd_ensino_regular_ensino_fund_anos_finais_int; + public $qtd_ensino_regular_ensino_med_anos_iniciais_par; + public $qtd_ensino_regular_ensino_med_anos_iniciais_int; + public $qtd_edu_especial_classe_especial_par; + public $qtd_edu_especial_classe_especial_int; + public $qtd_edu_eja_ensino_fund; + public $qtd_edu_eja_ensino_med; + public $qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_par; + public $qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_int; + public $qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_par; + public $qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_int; + public $qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_par; + public $qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_int; + public $qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_par; + public $qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_int; + public $qtd_edu_prof_quali_prof_tec_inte_ensino_med_par; + public $qtd_edu_prof_quali_prof_tecinte_ensino_med_int; + public $qtd_edu_prof_quali_prof_tec_conc_ensino_med_par; + public $qtd_edu_prof_quali_prof_tec_conc_ensino_med_int; + public $qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_par; + public $qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_int; + public $qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_par; + public $qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_int; + public $qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_par; + public $qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_int; + public $qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_par; + public $qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_int; + public $qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_par; + public $qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_int; + public $qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_par; + public $qtd_edu_prof_edu_prof_tec_nivel_med_subsequente_ensino_med; + public $qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_int; + public $qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_par; + public $qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_int; public function __construct( $cod_escola = null, @@ -146,34 +192,80 @@ public function __construct( $this->_tabela = $this->_schema . 'escola'; $this->_campos_lista = $this->_todos_campos = 'e.cod_escola, e.ref_usuario_cad, e.ref_usuario_exc, e.ref_cod_instituicao, e.zona_localizacao, e.ref_cod_escola_rede_ensino, e.ref_idpes, e.sigla, e.data_cadastro, - e.data_exclusao, e.ativo, e.bloquear_lancamento_diario_anos_letivos_encerrados, e.situacao_funcionamento, e.dependencia_administrativa, e.latitude, e.longitude, e.regulamentacao, e.acesso, e.cargo_gestor, e.ref_idpes_gestor, - e.condicao, e.predio_compartilhado_outra_escola, e.decreto_criacao, e.agua_potavel_consumo, e.abastecimento_agua, e.abastecimento_energia, e.esgoto_sanitario, e.destinacao_lixo, e.tratamento_lixo, - e.alimentacao_escolar_alunos, e.compartilha_espacos_atividades_integracao, e.usa_espacos_equipamentos_atividades_regulares, - e.salas_gerais, e.salas_funcionais, e.banheiros, e.laboratorios, e.salas_atividades, e.dormitorios, e.areas_externas, e.recursos_acessibilidade, e.possui_dependencias, e.numero_salas_utilizadas_dentro_predio, - e.numero_salas_utilizadas_fora_predio, e.numero_salas_climatizadas, e.numero_salas_acessibilidade, - e.total_funcionario, e.atendimento_aee, e.fundamental_ciclo, e.organizacao_ensino, e.instrumentos_pedagogicos, e.orgaos_colegiados, e.exame_selecao_ingresso, e.reserva_vagas_cotas, e.projeto_politico_pedagogico, e.localizacao_diferenciada, e.materiais_didaticos_especificos, e.educacao_indigena, e.lingua_ministrada, - e.codigo_lingua_indigena, e.atividade_complementar, e.local_funcionamento, e.codigo_inep_escola_compartilhada, e.codigo_inep_escola_compartilhada2, e.codigo_inep_escola_compartilhada3, e.codigo_inep_escola_compartilhada4, - e.codigo_inep_escola_compartilhada5, e.codigo_inep_escola_compartilhada6, e.equipamentos, e.uso_internet, e.rede_local, e.equipamentos_acesso_internet, e.televisoes, e.videocassetes, e.dvds, e.antenas_parabolicas, e.copiadoras, e.retroprojetores, e.impressoras, e.aparelhos_de_som, - e.quantidade_computadores_alunos_mesa, e.quantidade_computadores_alunos_portateis, e.quantidade_computadores_alunos_tablets, - e.lousas_digitais, e.projetores_digitais, e.faxs, e.maquinas_fotograficas, e.computadores, e.computadores_administrativo, e.computadores_alunos, e.impressoras_multifuncionais, e.acesso_internet, e.ato_criacao, - e.ato_autorizativo, e.ref_idpes_secretario_escolar, e.utiliza_regra_diferenciada, e.categoria_escola_privada, e.conveniada_com_poder_publico, e.mantenedora_escola_privada, e.cnpj_mantenedora_principal, - e.email_gestor, e.orgao_vinculado_escola, e.esfera_administrativa, e.unidade_vinculada_outra_instituicao, e.inep_escola_sede, e.codigo_ies, - e.qtd_secretario_escolar, - e.qtd_auxiliar_administrativo, - e.qtd_apoio_pedagogico, - e.qtd_coordenador_turno, - e.qtd_tecnicos, - e.qtd_bibliotecarios, - e.qtd_segurancas, - e.qtd_auxiliar_servicos_gerais, - e.qtd_nutricionistas, - e.qtd_profissionais_preparacao, - e.qtd_bombeiro, - e.qtd_psicologo, - e.qtd_fonoaudiologo, - e.qtd_vice_diretor, - e.qtd_orientador_comunitario, - e.iddis + e.data_exclusao, e.ativo, e.bloquear_lancamento_diario_anos_letivos_encerrados, e.situacao_funcionamento, e.dependencia_administrativa, e.latitude, e.longitude, e.regulamentacao, e.acesso, e.cargo_gestor, e.ref_idpes_gestor, + e.condicao, e.predio_compartilhado_outra_escola, e.decreto_criacao, e.agua_potavel_consumo, e.abastecimento_agua, e.abastecimento_energia, e.esgoto_sanitario, e.destinacao_lixo, e.tratamento_lixo, + e.alimentacao_escolar_alunos, e.compartilha_espacos_atividades_integracao, e.usa_espacos_equipamentos_atividades_regulares, + e.salas_gerais, e.salas_funcionais, e.banheiros, e.laboratorios, e.salas_atividades, e.dormitorios, e.areas_externas, e.recursos_acessibilidade, e.possui_dependencias, e.numero_salas_utilizadas_dentro_predio, + e.numero_salas_utilizadas_fora_predio, e.numero_salas_climatizadas, e.numero_salas_acessibilidade, + e.total_funcionario, e.atendimento_aee, e.fundamental_ciclo, e.organizacao_ensino, e.instrumentos_pedagogicos, e.orgaos_colegiados, e.exame_selecao_ingresso, e.reserva_vagas_cotas, e.projeto_politico_pedagogico, e.localizacao_diferenciada, e.materiais_didaticos_especificos, e.educacao_indigena, e.lingua_ministrada, + e.codigo_lingua_indigena, e.atividade_complementar, e.local_funcionamento, e.codigo_inep_escola_compartilhada, e.codigo_inep_escola_compartilhada2, e.codigo_inep_escola_compartilhada3, e.codigo_inep_escola_compartilhada4, + e.codigo_inep_escola_compartilhada5, e.codigo_inep_escola_compartilhada6, e.equipamentos, e.uso_internet, e.rede_local, e.equipamentos_acesso_internet, e.televisoes, e.videocassetes, e.dvds, e.antenas_parabolicas, e.copiadoras, e.retroprojetores, e.impressoras, e.aparelhos_de_som, + e.quantidade_computadores_alunos_mesa, e.quantidade_computadores_alunos_portateis, e.quantidade_computadores_alunos_tablets, + e.lousas_digitais, e.projetores_digitais, e.faxs, e.maquinas_fotograficas, e.computadores, e.computadores_administrativo, e.computadores_alunos, e.impressoras_multifuncionais, e.acesso_internet, e.ato_criacao, + e.ato_autorizativo, e.ref_idpes_secretario_escolar, e.utiliza_regra_diferenciada, e.categoria_escola_privada, e.conveniada_com_poder_publico, e.mantenedora_escola_privada, e.cnpj_mantenedora_principal, + e.email_gestor, e.orgao_vinculado_escola, e.esfera_administrativa, e.unidade_vinculada_outra_instituicao, e.inep_escola_sede, e.codigo_ies, + e.qtd_secretario_escolar, + e.qtd_auxiliar_administrativo, + e.qtd_apoio_pedagogico, + e.qtd_coordenador_turno, + e.qtd_tecnicos, + e.qtd_bibliotecarios, + e.qtd_segurancas, + e.qtd_auxiliar_servicos_gerais, + e.qtd_nutricionistas, + e.qtd_profissionais_preparacao, + e.qtd_bombeiro, + e.qtd_psicologo, + e.qtd_fonoaudiologo, + e.qtd_vice_diretor, + e.qtd_orientador_comunitario, + e.nao_ha_funcionarios_para_funcoes, + e.iddis, + e.poder_publico_parceria_convenio, + e.formas_contratacao_adm_publica_e_outras_instituicoes, + e.qtd_matriculas_atividade_complementar, + e.qtd_atendimento_educacional_especializado, + e.qtd_ensino_regular_creche_par, + e.qtd_ensino_regular_creche_int, + e.qtd_ensino_regular_pre_escola_par, + e.qtd_ensino_regular_pre_escola_int, + e.qtd_ensino_regular_ensino_fund_anos_iniciais_par, + e.qtd_ensino_regular_ensino_fund_anos_iniciais_int, + e.qtd_ensino_regular_ensino_fund_anos_finais_par, + e.qtd_ensino_regular_ensino_fund_anos_finais_int, + e.qtd_ensino_regular_ensino_med_anos_iniciais_par, + e.qtd_ensino_regular_ensino_med_anos_iniciais_int, + e.qtd_edu_especial_classe_especial_par, + e.qtd_edu_especial_classe_especial_int, + e.qtd_edu_eja_ensino_fund, + e.qtd_edu_eja_ensino_med, + e.qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_par, + e.qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_int, + e.qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_par, + e.qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_int, + e.qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_par, + e.qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_int, + e.qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_par, + e.qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_int, + e.qtd_edu_prof_quali_prof_tec_inte_ensino_med_par, + e.qtd_edu_prof_quali_prof_tecinte_ensino_med_int, + e.qtd_edu_prof_quali_prof_tec_conc_ensino_med_par, + e.qtd_edu_prof_quali_prof_tec_conc_ensino_med_int, + e.qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_par, + e.qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_int, + e.qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_par, + e.qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_int, + e.qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_par, + e.qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_int, + e.qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_par, + e.qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_int, + e.qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_par, + e.qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_int, + e.qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_par, + e.qtd_edu_prof_edu_prof_tec_nivel_med_subsequente_ensino_med, + e.qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_int, + e.qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_par, + e.qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_int '; if (is_numeric($ref_usuario_cad)) { @@ -948,6 +1040,16 @@ public function cadastra() $gruda = ', '; } + if ($this->nao_ha_funcionarios_para_funcoes) { + $campos .= "{$gruda}nao_ha_funcionarios_para_funcoes"; + $valores .= "{$gruda}true"; + $gruda = ', '; + } else { + $campos .= "{$gruda}nao_ha_funcionarios_para_funcoes"; + $valores .= "{$gruda}false"; + $gruda = ', '; + } + $campos .= "{$gruda}data_cadastro"; $valores .= "{$gruda}NOW()"; $gruda = ', '; @@ -955,6 +1057,273 @@ public function cadastra() $campos .= "{$gruda}ativo"; $valores .= "{$gruda}'1'"; + if (is_string($this->poder_publico_parceria_convenio)) { + $campos .= "{$gruda}poder_publico_parceria_convenio"; + $valores .= "{$gruda}'{{$this->poder_publico_parceria_convenio}}'"; + } + + if (is_string($this->formas_contratacao_adm_publica_e_outras_instituicoes)) { + $campos .= "{$gruda}formas_contratacao_adm_publica_e_outras_instituicoes"; + $valores .= "{$gruda}'{{$this->formas_contratacao_adm_publica_e_outras_instituicoes}}'"; + } + + if (is_numeric($this->qtd_matriculas_atividade_complementar)) { + $campos .= "{$gruda}qtd_matriculas_atividade_complementar"; + $valores .= "{$gruda}'{$this->qtd_matriculas_atividade_complementar}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_atendimento_educacional_especializado)) { + $campos .= "{$gruda}qtd_atendimento_educacional_especializado"; + $valores .= "{$gruda}'{$this->qtd_atendimento_educacional_especializado}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_ensino_regular_creche_par)) { + $campos .= "{$gruda}qtd_ensino_regular_creche_par"; + $valores .= "{$gruda}'{$this->qtd_ensino_regular_creche_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_ensino_regular_creche_int)) { + $campos .= "{$gruda}qtd_ensino_regular_creche_int"; + $valores .= "{$gruda}'{$this->qtd_ensino_regular_creche_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_ensino_regular_pre_escola_par)) { + $campos .= "{$gruda}qtd_ensino_regular_pre_escola_par"; + $valores .= "{$gruda}'{$this->qtd_ensino_regular_pre_escola_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_ensino_regular_pre_escola_int)) { + $campos .= "{$gruda}qtd_ensino_regular_pre_escola_int"; + $valores .= "{$gruda}'{$this->qtd_ensino_regular_pre_escola_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_ensino_regular_ensino_fund_anos_iniciais_par)) { + $campos .= "{$gruda}qtd_ensino_regular_ensino_fund_anos_iniciais_par"; + $valores .= "{$gruda}'{$this->qtd_ensino_regular_ensino_fund_anos_iniciais_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_ensino_regular_ensino_fund_anos_iniciais_int)) { + $campos .= "{$gruda}qtd_ensino_regular_ensino_fund_anos_iniciais_int"; + $valores .= "{$gruda}'{$this->qtd_ensino_regular_ensino_fund_anos_iniciais_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_ensino_regular_ensino_fund_anos_finais_par)) { + $campos .= "{$gruda}qtd_ensino_regular_ensino_fund_anos_finais_par"; + $valores .= "{$gruda}'{$this->qtd_ensino_regular_ensino_fund_anos_finais_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_ensino_regular_ensino_fund_anos_finais_int)) { + $campos .= "{$gruda}qtd_ensino_regular_ensino_fund_anos_finais_int"; + $valores .= "{$gruda}'{$this->qtd_ensino_regular_ensino_fund_anos_finais_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_ensino_regular_ensino_med_anos_iniciais_par)) { + $campos .= "{$gruda}qtd_ensino_regular_ensino_med_anos_iniciais_par"; + $valores .= "{$gruda}'{$this->qtd_ensino_regular_ensino_med_anos_iniciais_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_ensino_regular_ensino_med_anos_iniciais_int)) { + $campos .= "{$gruda}qtd_ensino_regular_ensino_med_anos_iniciais_int"; + $valores .= "{$gruda}'{$this->qtd_ensino_regular_ensino_med_anos_iniciais_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_especial_classe_especial_par)) { + $campos .= "{$gruda}qtd_edu_especial_classe_especial_par"; + $valores .= "{$gruda}'{$this->qtd_edu_especial_classe_especial_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_especial_classe_especial_int)) { + $campos .= "{$gruda}qtd_edu_especial_classe_especial_int"; + $valores .= "{$gruda}'{$this->qtd_edu_especial_classe_especial_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_eja_ensino_fund)) { + $campos .= "{$gruda}qtd_edu_eja_ensino_fund"; + $valores .= "{$gruda}'{$this->qtd_edu_eja_ensino_fund}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_eja_ensino_med)) { + $campos .= "{$gruda}qtd_edu_eja_ensino_med"; + $valores .= "{$gruda}'{$this->qtd_edu_eja_ensino_med}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_par)) { + $campos .= "{$gruda}qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_par"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_int)) { + $campos .= "{$gruda}qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_int"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_par)) { + $campos .= "{$gruda}qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_par"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_int)) { + $campos .= "{$gruda}qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_int"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_par)) { + $campos .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_par"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_int)) { + $campos .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_int"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_par)) { + $campos .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_par"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_int)) { + $campos .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_int"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_inte_ensino_med_par)) { + $campos .= "{$gruda}qtd_edu_prof_quali_prof_tec_inte_ensino_med_par"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_quali_prof_tec_inte_ensino_med_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tecinte_ensino_med_int)) { + $campos .= "{$gruda}qtd_edu_prof_quali_prof_tecinte_ensino_med_int"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_quali_prof_tecinte_ensino_med_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_conc_ensino_med_par)) { + $campos .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_ensino_med_par"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_quali_prof_tec_conc_ensino_med_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_conc_ensino_med_int)) { + $campos .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_ensino_med_int"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_quali_prof_tec_conc_ensino_med_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_par)) { + $campos .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_par"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_int)) { + $campos .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_int"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_par)) { + $campos .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_par"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_int)) { + $campos .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_int"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_par)) { + $campos .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_par"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_int)) { + $campos .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_int"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_par)) { + $campos .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_par"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_int)) { + $campos .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_int"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_par)) { + $campos .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_par"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_int)) { + $campos .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_int"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_par)) { + $campos .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_par"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_subsequente_ensino_med)) { + $campos .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_subsequente_ensino_med"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_edu_prof_tec_nivel_med_subsequente_ensino_med}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_int)) { + $campos .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_int"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_int}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_par)) { + $campos .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_par"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_par}'"; + $gruda = ', '; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_int)) { + $campos .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_int"; + $valores .= "{$gruda}'{$this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_int}'"; + } + $db->Consulta("INSERT INTO {$this->_tabela} ($campos) VALUES ($valores)"); $recordId = $db->InsertId("{$this->_tabela}_cod_escola_seq"); @@ -1032,6 +1401,14 @@ public function edita() $gruda = ', '; } + if ($this->nao_ha_funcionarios_para_funcoes) { + $set .= "{$gruda}nao_ha_funcionarios_para_funcoes = true"; + $gruda = ', '; + } else { + $set .= "{$gruda}nao_ha_funcionarios_para_funcoes = false"; + $gruda = ', '; + } + if ($this->utiliza_regra_diferenciada) { $set .= "{$gruda}utiliza_regra_diferenciada = 't'"; } else { @@ -1837,6 +2214,326 @@ public function edita() $set .= "{$gruda}iddis = NULL "; } + if (is_string($this->poder_publico_parceria_convenio)) { + $gruda .= "poder_publico_parceria_convenio"; + $set .= "{$gruda}='{{$this->poder_publico_parceria_convenio}}'"; + } else { + $gruda .= "poder_publico_parceria_convenio"; + $set .= "{$gruda}=NULL"; + } + + if (is_string($this->formas_contratacao_adm_publica_e_outras_instituicoes)) { + $gruda = ', '; + $gruda .= "formas_contratacao_adm_publica_e_outras_instituicoes"; + $set .= "{$gruda}='{{$this->formas_contratacao_adm_publica_e_outras_instituicoes}}'"; + } else { + $gruda = ', '; + $gruda .= "formas_contratacao_adm_publica_e_outras_instituicoes"; + $set .= "{$gruda}=NULL"; + } + + $gruda = ', '; + if (is_numeric($this->qtd_matriculas_atividade_complementar)) { + $set .= "{$gruda}qtd_matriculas_atividade_complementar = '{$this->qtd_matriculas_atividade_complementar}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_matriculas_atividade_complementar = NULL"; + } + + if (is_numeric($this->qtd_atendimento_educacional_especializado)) { + $set .= "{$gruda}qtd_atendimento_educacional_especializado = '{$this->qtd_atendimento_educacional_especializado}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_atendimento_educacional_especializado = NULL"; + } + + if (is_numeric($this->qtd_ensino_regular_creche_par)) { + $set .= "{$gruda}qtd_ensino_regular_creche_par = '{$this->qtd_ensino_regular_creche_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_ensino_regular_creche_par = NULL"; + } + + if (is_numeric($this->qtd_ensino_regular_creche_int)) { + $set .= "{$gruda}qtd_ensino_regular_creche_int = '{$this->qtd_ensino_regular_creche_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_ensino_regular_creche_int = NULL"; + } + + if (is_numeric($this->qtd_ensino_regular_pre_escola_par)) { + $set .= "{$gruda}qtd_ensino_regular_pre_escola_par = '{$this->qtd_ensino_regular_pre_escola_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_ensino_regular_pre_escola_par = NULL"; + } + + if (is_numeric($this->qtd_ensino_regular_pre_escola_int)) { + $set .= "{$gruda}qtd_ensino_regular_pre_escola_int = '{$this->qtd_ensino_regular_pre_escola_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_ensino_regular_pre_escola_int = NULL"; + } + + if (is_numeric($this->qtd_ensino_regular_ensino_fund_anos_iniciais_par)) { + $set .= "{$gruda}qtd_ensino_regular_ensino_fund_anos_iniciais_par = '{$this->qtd_ensino_regular_ensino_fund_anos_iniciais_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_ensino_regular_ensino_fund_anos_iniciais_par = NULL"; + } + + if (is_numeric($this->qtd_ensino_regular_ensino_fund_anos_iniciais_int)) { + $set .= "{$gruda}qtd_ensino_regular_ensino_fund_anos_iniciais_int = '{$this->qtd_ensino_regular_ensino_fund_anos_iniciais_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_ensino_regular_ensino_fund_anos_iniciais_int = NULL"; + } + + if (is_numeric($this->qtd_ensino_regular_ensino_fund_anos_finais_par)) { + $set .= "{$gruda}qtd_ensino_regular_ensino_fund_anos_finais_par = '{$this->qtd_ensino_regular_ensino_fund_anos_finais_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_ensino_regular_ensino_fund_anos_finais_par = NULL"; + } + + if (is_numeric($this->qtd_ensino_regular_ensino_fund_anos_finais_int)) { + $set .= "{$gruda}qtd_ensino_regular_ensino_fund_anos_finais_int = '{$this->qtd_ensino_regular_ensino_fund_anos_finais_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_ensino_regular_ensino_fund_anos_finais_int = NULL"; + } + + if (is_numeric($this->qtd_ensino_regular_ensino_med_anos_iniciais_par)) { + $set .= "{$gruda}qtd_ensino_regular_ensino_med_anos_iniciais_par = '{$this->qtd_ensino_regular_ensino_med_anos_iniciais_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_ensino_regular_ensino_med_anos_iniciais_par = NULL"; + } + + if (is_numeric($this->qtd_ensino_regular_ensino_med_anos_iniciais_int)) { + $set .= "{$gruda}qtd_ensino_regular_ensino_med_anos_iniciais_int = '{$this->qtd_ensino_regular_ensino_med_anos_iniciais_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_ensino_regular_ensino_med_anos_iniciais_int = NULL"; + } + + if (is_numeric($this->qtd_edu_especial_classe_especial_par)) { + $set .= "{$gruda}qtd_edu_especial_classe_especial_par = '{$this->qtd_edu_especial_classe_especial_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_especial_classe_especial_par = NULL"; + } + + if (is_numeric($this->qtd_edu_especial_classe_especial_int)) { + $set .= "{$gruda}qtd_edu_especial_classe_especial_int = '{$this->qtd_edu_especial_classe_especial_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_especial_classe_especial_int = NULL"; + } + + if (is_numeric($this->qtd_edu_eja_ensino_fund)) { + $set .= "{$gruda}qtd_edu_eja_ensino_fund = '{$this->qtd_edu_eja_ensino_fund}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_eja_ensino_fund = NULL"; + } + + if (is_numeric($this->qtd_edu_eja_ensino_med)) { + $set .= "{$gruda}qtd_edu_eja_ensino_med = '{$this->qtd_edu_eja_ensino_med}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_eja_ensino_med = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_par)) { + $set .= "{$gruda}qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_par = '{$this->qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_par = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_int)) { + $set .= "{$gruda}qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_int = '{$this->qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_quali_prof_inte_edu_eja_no_ensino_fund_int = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_par)) { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_par = '{$this->qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_par = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_int)) { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_int = '{$this->qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_inte_edu_eja_nivel_med_int = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_par)) { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_par = '{$this->qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_par = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_int)) { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_int = '{$this->qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_edu_eja_nivel_med_int = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_par)) { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_par = '{$this->qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_par = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_int)) { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_int = '{$this->qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_inter_edu_eja_nivel_med_int = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_inte_ensino_med_par)) { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_inte_ensino_med_par = '{$this->qtd_edu_prof_quali_prof_tec_inte_ensino_med_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_inte_ensino_med_par = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tecinte_ensino_med_int)) { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tecinte_ensino_med_int = '{$this->qtd_edu_prof_quali_prof_tecinte_ensino_med_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tecinte_ensino_med_int = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_conc_ensino_med_par)) { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_ensino_med_par = '{$this->qtd_edu_prof_quali_prof_tec_conc_ensino_med_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_ensino_med_par = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_conc_ensino_med_int)) { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_ensino_med_int = '{$this->qtd_edu_prof_quali_prof_tec_conc_ensino_med_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_ensino_med_int = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_par)) { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_par = '{$this->qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_par = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_int)) { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_int = '{$this->qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_quali_prof_tec_conc_inter_ensino_med_int = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_par)) { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_par = '{$this->qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_par = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_int)) { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_int = '{$this->qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_inte_edu_eja_nivel_med_int = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_par)) { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_par = '{$this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_par = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_int)) { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_int = '{$this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_edu_eja_nivel_med_int = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_par)) { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_par = '{$this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_par = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_int)) { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_int = '{$this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_edu_eja_med_int = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_par)) { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_par = '{$this->qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_par = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_int)) { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_int = '{$this->qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_inte_ensino_med_int = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_par)) { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_par = '{$this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_par = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_subsequente_ensino_med)) { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_subsequente_ensino_med = '{$this->qtd_edu_prof_edu_prof_tec_nivel_med_subsequente_ensino_med}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_subsequente_ensino_med = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_int)) { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_int = '{$this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_ensino_med_int = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_par)) { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_par = '{$this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_par}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_par = NULL"; + } + + if (is_numeric($this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_int)) { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_int = '{$this->qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_int}'"; + $gruda = ', '; + } else { + $set .= "{$gruda}qtd_edu_prof_edu_prof_tec_nivel_med_conc_inter_ensino_med_int = NULL"; + } + if ($set) { $db->Consulta("UPDATE {$this->_tabela} SET $set WHERE cod_escola = '{$this->cod_escola}'"); diff --git a/ieducar/intranet/scripts/etapas.js b/ieducar/intranet/scripts/etapas.js index c37fcb367d..8af0897024 100644 --- a/ieducar/intranet/scripts/etapas.js +++ b/ieducar/intranet/scripts/etapas.js @@ -164,7 +164,7 @@ $j(function () { dateParts = that.getDateParts(val), ts = that.makeTimestamp(dateParts), parentLine = $elm.closest('tr'), - previousLine = parentLine.prev(that.getSelector('stepsRows')); + previousLine = parentLine.prevAll(that.getSelector('stepsRows')).first(); if (previousLine.length < 1) { var validYears = [currentYear, previousYear]; diff --git a/ieducar/intranet/scripts/extra/educar-matricula-turma-turno.js b/ieducar/intranet/scripts/extra/educar-matricula-turma-turno.js new file mode 100644 index 0000000000..27543ca83c --- /dev/null +++ b/ieducar/intranet/scripts/extra/educar-matricula-turma-turno.js @@ -0,0 +1,49 @@ +function makeDialog(params) { + params.closeOnEscape = false; + params.draggable = false; + params.modal = true; + + var container = $j('#dialog-container'); + + if (container.length < 1) { + $j('body').append('
'); + container = $j('#dialog-container'); + } + + if (container.hasClass('ui-dialog-content')) { + container.dialog('destroy'); + } + + container.empty(); + container.html(params.content); + + delete params['content']; + + container.dialog(params); +} + + +function showConfirmationMessage(e) { + makeDialog({ + content: 'Você está alterando o turno da matrícula desse(a) aluno(a). Deseja continuar?', + title: 'Atenção!', + maxWidth: 600, + width: 600, + close: function () { + $j('#dialog-container').dialog('destroy'); + }, + buttons: [{ + text: 'Continuar', + click: function () { + $j('#formcadastro').removeAttr('onsubmit'); + $j('#formcadastro').submit(); + $j('#dialog-container').dialog('destroy'); + } + }, { + text: 'Cancelar', + click: function () { + $j('#dialog-container').dialog('destroy'); + } + }] + }); +} diff --git a/ieducar/intranet/scripts/padrao.js b/ieducar/intranet/scripts/padrao.js index 9498695574..bc27c8ca28 100644 --- a/ieducar/intranet/scripts/padrao.js +++ b/ieducar/intranet/scripts/padrao.js @@ -455,46 +455,10 @@ function formataMonetario(campo, e) function formataCNPJ(campo, e) { - if (typeof window.event != 'undefined') { - if (window.event.keyCode != 46) { - if ((campo.value.length == 2) || (campo.value.length == 6)) { - campo.value += '.'; - } - } - - if (window.event.keyCode != 47) { - if (campo.value.length == 10) { - campo.value += '/'; - } - } - - if (window.event.keyCode != 45) { - if (campo.value.length == 15) { - campo.value += '-'; - } - } - } - else { - if (e.which != 8) { - if (e.which != 46) { - if ((campo.value.length == 2) || (campo.value.length == 6)) { - campo.value += '.'; - } - } - - if (e.which != 47) { - if (campo.value.length == 10) { - campo.value += '/'; - } - } - - if (e.which != 45) { - if (campo.value.length == 15) { - campo.value += '-'; - } - } - } - } + document.getElementById(campo.id).addEventListener('input', function (e) { + let x = e.target.value.replace(/\D/g, '').match(/(\d{0,2})(\d{0,3})(\d{0,3})(\d{0,4})(\d{0,2})/); + e.target.value = !x[2] ? x[1] : x[1] + '.' + x[2] + '.' + x[3] + '/' + x[4] + (x[5] ? '-' + x[5] : ''); + }); } /** diff --git a/ieducar/intranet/styles/custom.css b/ieducar/intranet/styles/custom.css index c9f665e5b3..f93e4ce4fc 100644 --- a/ieducar/intranet/styles/custom.css +++ b/ieducar/intranet/styles/custom.css @@ -1325,7 +1325,7 @@ p.title-table-matricula { width: auto !important; font-size: 14px; font-weight: normal; - padding: 6px 20px 12px 20px; + padding: 6px 20px 12px 10px; border-radius: 0px !important; border: 0 !important; color: #47728f; diff --git a/ieducar/modules/Api/Views/EducacensoAnaliseController.php b/ieducar/modules/Api/Views/EducacensoAnaliseController.php index 0dcf7efa0c..bb7d432e7f 100644 --- a/ieducar/modules/Api/Views/EducacensoAnaliseController.php +++ b/ieducar/modules/Api/Views/EducacensoAnaliseController.php @@ -26,20 +26,27 @@ use iEducar\Modules\Educacenso\Data\Registro40 as Registro40Data; use iEducar\Modules\Educacenso\Data\Registro50 as Registro50Data; use iEducar\Modules\Educacenso\Data\Registro60 as Registro60Data; +use iEducar\Modules\Educacenso\ExportRule\PoderPublicoConveniado as ExportRulePoderPublicoConveniado; use iEducar\Modules\Educacenso\Model\DependenciaAdministrativaEscola; +use iEducar\Modules\Educacenso\Model\EstruturaCurricular; use iEducar\Modules\Educacenso\Model\LinguaMinistrada; use iEducar\Modules\Educacenso\Model\LocalFuncionamento; use iEducar\Modules\Educacenso\Model\LocalizacaoDiferenciadaEscola; use iEducar\Modules\Educacenso\Model\MantenedoraDaEscolaPrivada; use iEducar\Modules\Educacenso\Model\ModalidadeCurso; +use iEducar\Modules\Educacenso\Model\PoderPublicoConveniado; use iEducar\Modules\Educacenso\Model\Regulamentacao; use iEducar\Modules\Educacenso\Model\SchoolManagerAccessCriteria; use iEducar\Modules\Educacenso\Model\SchoolManagerRole; use iEducar\Modules\Educacenso\Model\SituacaoFuncionamento; use iEducar\Modules\Educacenso\Model\TipoAtendimentoTurma; +use iEducar\Modules\Educacenso\Model\TipoItinerarioFormativo; use iEducar\Modules\Educacenso\Model\TipoMediacaoDidaticoPedagogico; +use iEducar\Modules\Educacenso\Model\UnidadeVinculadaComOutraInstituicao; use iEducar\Modules\Educacenso\Validator\AdministrativeDomainValidator; use iEducar\Modules\Educacenso\Validator\CnpjMantenedoraPrivada; +use iEducar\Modules\Educacenso\Validator\FormasContratacaoEscolaValidator; +use iEducar\Modules\Educacenso\Validator\FormaOrganizacaoTurma; use iEducar\Modules\Educacenso\Validator\InepNumberValidator; use iEducar\Modules\Educacenso\Validator\Telefone; use iEducar\Modules\Servidores\Model\FuncaoExercida; @@ -157,7 +164,7 @@ protected function analisaEducacensoRegistro00() ]; } - if ($escola->telefone == $escola->telefoneOutro) { + if ($escola->telefone && $escola->telefoneOutro && ($escola->telefone == $escola->telefoneOutro)) { $mensagem[] = [ 'text' => "Dados para formular o registro 00 da escola {$nomeEscola} possui valor inválido. O campo (DDD) / Telefone 2 não pode ser igual ao campo (DDD) / Telefone 1;", 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Dados gerais > Campo: (DDD) / Telefone 2)', @@ -221,20 +228,6 @@ protected function analisaEducacensoRegistro00() ]; } - if ($escola->situacaoFuncionamento == SituacaoFuncionamento::EM_ATIVIDADE && - $escola->dependenciaAdministrativa == DependenciaAdministrativaEscola::PRIVADA && - empty($escola->cnpjEscolaPrivada) - ) { - $idpesEscola = School::find($codEscola)->ref_idpes; - - $mensagem[] = [ - 'text' => "Dados para formular o registro 00 da escola {$nomeEscola} não encontrados. Verifique se o CNPJ da escola foi informado. Quando a escola possui o tipo de 'Dependência administrativa' como 'Privada', deve ser informado CNPJ.", - 'path' => '(Pessoas > Cadastros > Pessoas jurídicas > Editar > Campo: CNPJ)', - 'linkPath' => "/intranet/empresas_cad.php?idpes={$idpesEscola}", - 'fail' => true - ]; - } - if (!$escola->esferaAdministrativa && ($escola->regulamentacao == Regulamentacao::SIM || $escola->regulamentacao == Regulamentacao::EM_TRAMITACAO)) { $mensagem[] = [ 'text' => "Dados para formular o registro 00 da escola {$nomeEscola} não encontrados. Verificamos que a escola é regulamentada ou está em tramitação pelo conselho/órgão, portanto é necessário informar qual a esfera administrativa;", @@ -322,15 +315,6 @@ protected function analisaEducacensoRegistro00() ]; } - if (!$escola->conveniadaPoderPublico) { - $mensagem[] = [ - 'text' => "Dados para formular o registro 00 da escola {$nomeEscola} não encontrados. Verificamos que a dependência administrativa da escola é privada, portanto é necessário informar qual o tipo de convênio desta unidade escolar.", - 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Dados gerais > Campo: Conveniada com poder público)', - 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$codEscola}", - 'fail' => true - ]; - } - if (!$escola->mantenedoraEscolaPrivada) { $mensagem[] = [ 'text' => "Dados para formular o registro 00 da escola {$nomeEscola} não encontrados. Verificamos que a dependência administrativa da escola é privada, portanto é necessário informar qual o tipo de mantenedora desta unidade escolar.", @@ -341,6 +325,92 @@ protected function analisaEducacensoRegistro00() } } + if ($escola->situacaoFuncionamento == SituacaoFuncionamento::EM_ATIVIDADE && empty(array_filter($escola->poderPublicoConveniado))) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 00 da escola {$nomeEscola} não encontrados. Verifique se o poder público responsável pela parceria ou convênio entre a Administração Pública e outras instituições foi informado.", + 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Dados gerais > Campo: Poder público responsável pela parceria ou convênio entre a Administração Pública e outras instituições)', + 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$codEscola}", + 'fail' => true + ]; + } + + if (in_array(PoderPublicoConveniado::NAO_POSSUI, $escola->poderPublicoConveniado) && count($escola->poderPublicoConveniado) > 1) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 10 da escola {$nomeEscola} possui valor inválido. Verificamos que o Poder público responsável pela parceria ou convênio entre a Administração Pública e outras instituições foi preenchido incorretamente.", + 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Dados gerais > Campo: Poder público responsável pela parceria ou convênio entre a Administração Pública e outras instituições)', + 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$codEscola}", + 'fail' => true + ]; + } + + if ( + (in_array(PoderPublicoConveniado::MUNICIPAL, $escola->poderPublicoConveniado) || + in_array(PoderPublicoConveniado::ESTADUAL, $escola->poderPublicoConveniado)) + && empty(array_filter($escola->formasContratacaoPoderPublico)) + ) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 00 da escola {$nomeEscola} não encontrados. Verifique se as formas de contratação entre a Administração Pública e outras instituições foram informadas.", + 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Dados gerais > Campo: Formas de contratação entre a Administração Pública e outras instituições)', + 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$codEscola}", + 'fail' => true + ]; + } + + $formasContratacaoValidator = new FormasContratacaoEscolaValidator( + $escola->dependenciaAdministrativa, + $escola->categoriaEscolaPrivada, + $escola->formasContratacaoPoderPublico + ); + + if (!$formasContratacaoValidator->isValid()) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 00 da escola {$nomeEscola} possui valor inválido. Verificamos que as formas de contratação entre a Administração Pública e outras instituições foram informadas incorretamente.", + 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Dados gerais > Campo: Formas de contratação entre a Administração Pública e outras instituições)', + 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$codEscola}", + 'fail' => true + ]; + } + + if ( + (in_array(PoderPublicoConveniado::MUNICIPAL, $escola->poderPublicoConveniado) || + in_array(PoderPublicoConveniado::ESTADUAL, $escola->poderPublicoConveniado)) && + $escola->NaoPossuiQuantidadeDeMatriculasAtendidas() + ) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 00 da escola {$nomeEscola} não encontrados. Verificamos que a escola não preencheu nenhuma informação referente ao Número de matrículas atendidas por meio da parceria ou convênio, portanto é necessário informar pelo menos um dos campos.", + 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Matrículas atendidas por convênio > Seção: Número de matrículas atendidas por meio da parceria ou convênio)', + 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$codEscola}", + 'fail' => true + ]; + } + + if ($escola->unidadeVinculada === UnidadeVinculadaComOutraInstituicao::EDUCACAO_BASICA && empty($escola->inepEscolaSede)) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 00 da escola {$nomeEscola} não encontrados. Verificamos que essa unidade está vinculada à uma escola da educação básica, portanto é necessário informar o código INEP da escola sede.", + 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Dados do ensino > Campo: Código da Escola Sede)', + 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$codEscola}", + 'fail' => true + ]; + } + + if ($escola->unidadeVinculada === UnidadeVinculadaComOutraInstituicao::EDUCACAO_BASICA && $escola->inepEscolaSede == $escola->codigoInep) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 00 da escola {$nomeEscola} possui valor inválido. Verificamos que essa unidade está vinculada à uma escola da educação básica, portanto o código INEP da escola sede deve ser diferente do INEP da escola atual.", + 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Dados do ensino > Campo: Código da Escola Sede)', + 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$codEscola}", + 'fail' => true + ]; + } + + if ($escola->unidadeVinculada === UnidadeVinculadaComOutraInstituicao::ENSINO_SUPERIOR && empty($escola->codigoIes)) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 00 da escola {$nomeEscola} não encontrados. Verificamos que essa unidade está vinculada à uma instituição de ensino superior, portanto é necessário informar o código da instituição.", + 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Dados do ensino > Campo: Código da IES)', + 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$codEscola}", + 'fail' => true + ]; + } + return [ 'mensagens' => $mensagem, 'title' => 'Análise exportação - Registro 00' @@ -520,7 +590,7 @@ protected function analisaEducacensoRegistro10() ]; } - if ((!$escola->numeroSalasUtilizadasForaPredio || $escola->predioEscolar()) && !$escola->numeroSalasUtilizadasDentroPredio) { + if ($escola->predioEscolar() && !$escola->numeroSalasUtilizadasDentroPredio) { $mensagem[] = [ 'text' => "Dados para formular o registro 10 da escola {$escola->nomeEscola} não encontrados. Verifique se o número de salas de aula utilizadas na escola dentro do prédio escolar da escola foi informado.", 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Dependências > Campo: Número de salas de aula utilizadas na escola dentro do prédio escolar)', @@ -529,7 +599,7 @@ protected function analisaEducacensoRegistro10() ]; } - if (!$escola->numeroSalasUtilizadasDentroPredio && !$escola->numeroSalasUtilizadasForaPredio) { + if (!$escola->predioEscolar() && !$escola->numeroSalasUtilizadasForaPredio) { $mensagem[] = [ 'text' => "Dados para formular o registro 10 da escola {$escola->nomeEscola} não encontrados. Verifique se o número de salas de aula utilizadas na escola fora do prédio escolar da escola foi informado.", 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Dependências > Campo: Número de salas de aula utilizadas na escola fora do prédio escolar)', @@ -538,6 +608,22 @@ protected function analisaEducacensoRegistro10() ]; } + if (count(array_filter($escola->equipamentos)) == 0) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 10 da escola {$escola->nomeEscola} não encontrados. Verifique se os equipamentos da escola foram informados.", + 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Equipamentos > Campo: Equipamentos da escola)', + 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$escola->codEscola}", + 'fail' => true + ]; + } elseif ($escola->equipamentosPreenchidosIncorretamente()) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 10 da escola {$escola->nomeEscola} possui valor inválido. Verificamos que os equipamentos da escola foram preenchidos incorretamente.", + 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Equipamentos > Campo: Equipamentos da escola)', + 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$escola->codEscola}", + 'fail' => true + ]; + } + if (!$escola->existeUsoInternet()) { $mensagem[] = [ 'text' => "Dados para formular o registro 10 da escola {$escola->nomeEscola} não encontrados. Verifique se alguma opção de acesso à internet foi informada.", @@ -574,24 +660,6 @@ protected function analisaEducacensoRegistro10() ]; } - if ($escola->possuiComputadores() && empty($escola->redeLocal)) { - $mensagem[] = [ - 'text' => "Dados para formular o registro 10 da escola {$escola->nomeEscola} não encontrados. Verifique a rede local de interligação de computadores foi informada.", - 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Equipamentos > Campo: Rede local de interligação de computadores)', - 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$escola->codEscola}", - 'fail' => true - ]; - } - - if ($escola->redeLocalInexistenteEOutrosCamposPreenchidos()) { - $mensagem[] = [ - 'text' => "Dados para formular o registro 10 da escola {$escola->nomeEscola} possui valor inválido. Verificamos que a rede local de interligação de computadores foi preenchida incorretamente.", - 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Equipamentos > Campo: Rede local de interligação de computadores)', - 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$escola->codEscola}", - 'fail' => true - ]; - } - if ($escola->equipamentosAcessoInternetComputadorMesa() && $escola->quantidadeComputadoresAlunosNaoPreenchida()) { $mensagem[] = [ 'text' => "Dados para formular o registro 10 da escola {$escola->nomeEscola} não encontrados. Verifique se pelo menos um dos campos da seção Quantidade de computadores de uso dos alunos foi preenchido.", @@ -601,7 +669,7 @@ protected function analisaEducacensoRegistro10() ]; } - if (!$escola->quantidadeProfissionaisPreenchida()) { + if (!$escola->semFuncionariosParaFuncoes && !$escola->quantidadeProfissionaisPreenchida()) { $mensagem[] = [ 'text' => "Dados para formular o registro 10 da escola {$escola->nomeEscola} não encontrados. Verificamos que a escola não preencheu nenhuma informação referente à quantidade de profissionais, portanto é necessário informar pelo menos um profissional.", 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Recursos > Seção: Quantidade de profissionais)', @@ -619,10 +687,17 @@ protected function analisaEducacensoRegistro10() ]; } - if (empty($escola->organizacaoEnsino) && $escola->HasDifferentStepsOfChildEducation()) { + if (count(array_filter($escola->instrumentosPedagogicos)) == 0) { $mensagem[] = [ - 'text' => "Dados para formular o registro 10 da escola {$escola->nomeEscola} não encontrados. Verificamos que o campo: Forma(s) de organização do ensino não foi informado.", - 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Dados do ensino > Campo: Forma(s) de organização do ensino)', + 'text' => "Dados para formular o registro 10 da escola {$escola->nomeEscola} não encontrados. Verifique se os instrumentos, materiais socioculturais e/ou pedagógicos da escola foram informados.", + 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Dados do ensino > Campo: Instrumentos, materiais socioculturais e/ou pedagógicos em uso na escola para o desenvolvimento de atividades de ensino aprendizagem)', + 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$escola->codEscola}", + 'fail' => true + ]; + } elseif ($escola->instrumentosPedagogicosPreenchidosIncorretamente()) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 10 da escola {$escola->nomeEscola} possui valor inválido. Verificamos que os instrumentos, materiais socioculturais e/ou pedagógicos da escola foram preenchidos incorretamente.", + 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Dados do ensino > Campo: Instrumentos, materiais socioculturais e/ou pedagógicos em uso na escola para o desenvolvimento de atividades de ensino aprendizagem)', 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$escola->codEscola}", 'fail' => true ]; @@ -851,6 +926,28 @@ protected function analisaEducacensoRegistro20() ]; } + if ($turma->tipoAtendimento == TipoAtendimentoTurma::ESCOLARIZACAO && count(array_filter($turma->estruturaCurricular)) == 0) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 20 da escola {$turma->nomeEscola} não encontrados. Verifique se a estrutura curricular da turma {$nomeTurma} foi informada.", + 'path' => '(Escola > Cadastros > Turmas > Editar > Aba: Dados adicionais > Campo: Estrutura curricular)', + 'linkPath' => "/intranet/educar_turma_cad.php?cod_turma={$turma->codTurma}", + 'fail' => true + ]; + } + + 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.", @@ -860,6 +957,15 @@ protected function analisaEducacensoRegistro20() ]; } + if ($turma->modalidadeCurso == ModalidadeCurso::EJA && $turma->tipoAtendimento == TipoAtendimentoTurma::ATIVIDADE_COMPLEMENTAR) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 20 da escola {$turma->nomeEscola} possui valor inválido. Verificamos que a modalidade do curso da turma {$nomeTurma} é Educação de Jovens e Adultos (EJA), portanto o tipo de atendimento da turma não pode ser atividade complementar.", + 'path' => '(Escola > Cadastros > Cursos > Editar > Campo: Modalidade do curso)', + 'linkPath' => "/intranet/educar_curso_cad.php?cod_curso={$turma->codCurso}", + 'fail' => true + ]; + } + 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 ou semipresencial, portanto é necessário informar se ela possui local de funcionamento diferenciado.", @@ -892,14 +998,14 @@ protected function analisaEducacensoRegistro20() ]; } - if ($turma->tipoAtendimento == 0 && is_null($turma->etapaEducacenso)) { + if (($turma->formacaoGeralBasica() || $turma->estruturaCurricularNaoSeAplica()) && is_null($turma->etapaEducacenso)) { $mensagem[] = [ 'text' => "Dados para formular o registro 20 da escola {$turma->nomeEscola} não encontrados. Verifique se alguma opção de etapa de ensino da turma {$nomeTurma} foi informada.", 'path' => '(Escola > Cadastros > Turmas > Editar > Aba: Dados adicionais > Campo: Etapa de ensino)', 'linkPath' => "/intranet/educar_turma_cad.php?cod_turma={$turma->codTurma}", 'fail' => true ]; - } elseif ($turma->tipoAtendimento == 0) { + } elseif ($turma->formacaoGeralBasica() || $turma->estruturaCurricularNaoSeAplica()) { $valid = true; $opcoesEtapaEducacenso = ''; @@ -951,8 +1057,8 @@ protected function analisaEducacensoRegistro20() } break; case App_Model_TipoMediacaoDidaticoPedagogico::EDUCACAO_A_DISTANCIA: - if (!in_array($turma->etapaEducacenso, [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 70, 71, 73, 74, 64, 67, 68])) { - $opcoesEtapaEducacenso = '30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 70, 71, 73, 74, 64, 67 ou 68'; + 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'; $valid = false; } break; @@ -968,6 +1074,31 @@ protected function analisaEducacensoRegistro20() ]; } + $opcoesValidas = []; + $estruturaCurricularDescritiva = ''; + + if ($turma->itinerarioFormativo() && $turma->etapaEducacenso) { + $estruturaCurricularDescritiva = 'Itinerário formativo'; + $opcoesValidas = [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 71, 74, 67]; + $valid = in_array($turma->etapaEducacenso, $opcoesValidas); + } + + if ($turma->estruturaCurricularNaoSeAplica() && $turma->etapaEducacenso) { + $estruturaCurricularDescritiva = 'Não se aplica'; + $opcoesValidas = [1, 2, 3, 24, 39, 40, 64, 68]; + $valid = in_array($turma->etapaEducacenso, $opcoesValidas); + } + + if(!$valid) { + $opcoesValidas = implode(', ', $opcoesValidas); + $mensagem[] = [ + 'text' => "Dados para formular o registro 20 da escola {$turma->nomeEscola} possui valor inválido. Verificamos que a estrutura curricular da turma {$nomeTurma} é: {$estruturaCurricularDescritiva}, portanto a etapa de ensino deve ser uma das seguintes opções: {$opcoesValidas}", + 'path' => '(Escola > Cadastros > Turmas > Editar > Aba: Dados adicionais > Campo: Etapa de ensino)', + 'linkPath' => "/intranet/educar_turma_cad.php?cod_turma={$turma->codTurma}", + 'fail' => true + ]; + } + if (in_array($turma->localFuncionamentoDiferenciado, [App_Model_LocalFuncionamentoDiferenciado::UNIDADE_ATENDIMENTO_SOCIOEDUCATIVO, App_Model_LocalFuncionamentoDiferenciado::UNIDADE_PRISIONAL]) && in_array($turma->etapaEducacenso, [1, 2, 3, 56])) { $descricaoLocalDiferenciado = $turma->getLocalFuncionamentoDiferenciadoDescription(); $mensagem[] = [ @@ -979,6 +1110,56 @@ protected function analisaEducacensoRegistro20() } } + if ($turma->formacaoGeralBasica() && $turma->itinerarioFormativo() && in_array($turma->etapaEducacenso, [25, 30, 35])) { + $descricaoEtapa = $turma->etapaEducacensoDescritiva(); + $mensagem[] = [ + 'text' => "Aviso não impeditivo: Dados para formular o registro 20 da escola {$turma->nomeEscola} sujeito à valor inválido. Verificamos que a turma {$nomeTurma} é de formação geral básica e itinerário formativo, e a etapa de ensino é {$descricaoEtapa}, portanto você pode definir os itinerários dos alunos individualmente.", + 'path' => '(Escola > Cadastros > Alunos > Visualizar > Itinerário formativo > Campo: Tipo do itinerário formativo)', + 'linkPath' => "/intranet/educar_aluno_lst.php", + 'fail' => false + ]; + } + + $formasDeOrganizacaoDaTurma = new FormaOrganizacaoTurma($turma); + + if (!empty($turma->etapaEducacenso) && !in_array($turma->etapaEducacenso, [1, 2, 3, 24]) && empty($turma->formasOrganizacaoTurma)) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 20 da escola {$turma->nomeEscola} não encontrados. Verifique se a forma de organização da turma {$nomeTurma} foi informada.", + 'path' => '(Escola > Cadastros > Turmas > Editar > Aba: Dados adicionais > Campo: Formas de organização da turma)', + 'linkPath' => "/intranet/educar_turma_cad.php?cod_turma={$turma->codTurma}", + 'fail' => true + ]; + } elseif (!$formasDeOrganizacaoDaTurma->isValid()) { + $descricaoEtapa = $turma->etapaEducacensoDescritiva(); + $descricaoFormaOrganizacao = $turma->formaOrganizacaoTurmaDescritiva(); + $mensagem[] = [ + 'text' => "Dados para formular o registro 20 da escola {$turma->nomeEscola} possui valor inválido. Verificamos que etapa de ensino da turma {$nomeTurma} é {$descricaoEtapa}, portanto a forma de organização da turma não pode ser {$descricaoFormaOrganizacao}.", + 'path' => '(Escola > Cadastros > Turmas > Editar > Aba: Dados adicionais > Campo: Formas de organização da turma)', + 'linkPath' => "/intranet/educar_turma_cad.php?cod_turma={$turma->codTurma}", + 'fail' => true + ]; + } + + if ($turma->itinerarioFormativo() && count(array_filter($turma->unidadesCurriculares)) == 0) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 20 da escola {$turma->nomeEscola} não encontrados. Verifique se as unidades curriculares da turma {$nomeTurma} foram informadas.", + 'path' => '(Escola > Cadastros > Turmas > Editar > Aba: Dados adicionais > Campo: Unidade curricular)', + 'linkPath' => "/intranet/educar_turma_cad.php?cod_turma={$turma->codTurma}", + 'fail' => true + ]; + } + + if (count($turma->unidadesCurricularesSemDocenteVinculado()) > 0) { + foreach ($turma->unidadesCurricularesSemDocenteVinculado() as $unidadeCurricular) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 20 da escola {$turma->nomeEscola} não encontrados. Verificamos que a unidade curricular {$unidadeCurricular} faz parte da turma {$nomeTurma}, portanto deve haver um docente vinculado à mesma.", + 'path' => '(Escola > Cadastros > Turmas > Editar > Aba: Dados adicionais > Campo: Unidade(s) curricular(es) que leciona)', + 'linkPath' => '/intranet/educar_servidor_lst.php', + 'fail' => true + ]; + } + } + if (empty($turma->codCursoProfissional) && in_array($turma->etapaEducacenso, [30, 31, 32, 33, 34, 39, 40, 64, 74])) { $mensagem[] = [ 'text' => "Dados para formular o registro 20 da escola {$turma->nomeEscola} não encontrados. Verifique se o código dos cursos de educação profissional da turma {$nomeTurma} foi informado", @@ -1172,20 +1353,12 @@ protected function analisaEducacensoRegistro40() $registro40 = new Registro40Data($educacensoRepository, $registro40Model); $gestores = $registro40->getData($escolaId); - /** @var todo Refatorar para usar o model School */ - $escola = DB::select(DB::raw('SELECT relatorio.get_nome_escola(:escolaId) as nome'), [$escolaId])[0]; - $nomeEscola = $escola->nome; + $escola = LegacySchool::query()->find($escolaId); + + $nomeEscola = $escola->name; $codEscola = $escolaId; $mensagem = []; - if (count($gestores) > 3) { - $mensagem[] = [ - 'text' => "Dados para formular o registro 40 da escola {$nomeEscola} possui valor inválido. A escola não pode ter mais de 3 gestores escolares.", - 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: dados gerais > Tabela Gestores escolares)', - 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$codEscola}", - 'fail' => true - ]; - } if (empty($gestores)) { $mensagem[] = [ @@ -1201,6 +1374,15 @@ protected function analisaEducacensoRegistro40() ]; } + if (count($gestores) > 3) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 40 da escola {$nomeEscola} possui valor inválido. A escola não pode ter mais de 3 gestores escolares.", + 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: dados gerais > Tabela Gestores escolares)', + 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$codEscola}", + 'fail' => true + ]; + } + foreach ($gestores as $gestor) { $nomeGestor = Individual::find($gestor->codigoPessoa)->realName; @@ -1259,9 +1441,13 @@ protected function analisaEducacensoRegistro40() ]; } - if (!$gestor->tipoVinculo && $gestor->cargo == SchoolManagerRole::DIRETOR && $gestor->isDependenciaAdministrativaPublica()) { + if (!$gestor->tipoVinculo && + $gestor->cargo === SchoolManagerRole::DIRETOR && + $gestor->isDependenciaAdministrativaPublica() && + $escola->situacao_funcionamento === SituacaoFuncionamento::EM_ATIVIDADE + ) { $mensagem[] = [ - 'text' => "Dados para formular o registro 40 da escola {$nomeEscola} não encontrados. Verificamos que o gestor escolar {$nomeGestor} é diretor(a) e a dependência administrativa da escola é {$dependenciaAdministraticaDesc}, portanto é necessário informar o tipo de vínculo.", + 'text' => "Dados para formular o registro 40 da escola {$nomeEscola} não encontrados. Verificamos que o gestor escolar {$nomeGestor} é diretor(a) e a dependência administrativa da escola é {$dependenciaAdministraticaDesc} e a situação de funcionamento da escola é em atividade, portanto é necessário informar o tipo de vínculo.", 'path' => '(Escola > Cadastros > Escolas > Editar > Aba: Dados gerais > Tabela Gestores escolares > Link: Dados adicionais do(a) gestor(a) > Campo: Tipo de vínculo)', 'linkPath' => "/intranet/educar_escola_cad.php?cod_escola={$codEscola}", 'fail' => true @@ -1340,6 +1526,21 @@ protected function analisaEducacensoRegistro50() ]; } + $etapasValidasParaInstrutor = [30, 31, 32, 33, 34, 39, 40, 73, 74, 64, 67, 68]; + + if ($docente->funcaoDocente == FuncaoExercida::INSTRUTOR_EDUCACAO_PROFISSIONAL && + ( + !in_array(EstruturaCurricular::ITINERARIO_FORMATIVO, $docente->estruturaCurricular) + || !in_array($docente->etapaEducacensoTurma, $etapasValidasParaInstrutor) + )) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 50 da escola {$docente->nomeEscola} possui valor inválido. Verificamos que estrutura curricular da turma {$docente->nomeTurma} é {$docente->estruturasCurricularesDescritivas()} e a etapa de ensino é {$docente->estapaEducacensoDescritiva()}, portanto a função exercida do(a) docente {$docente->nomeDocente} não pode ser instrutor da Educação Profissional.", + 'path' => '(Servidores > Cadastros > Servidores > Vincular professor a turmas > Editar > Campo: Função exercida)', + 'linkPath' => "/intranet/educar_servidor_vinculo_turma_cad.php?id={$docente->idAlocacao}&ref_cod_instituicao={$docente->idInstituicao}&ref_cod_servidor={$docente->idServidor}", + 'fail' => true + ]; + } + if (!$docente->tipoVinculo) { $mensagem[] = [ 'text' => "Dados para formular o registro 50 da escola {$docente->nomeEscola} não encontrados. Verifique se o tipo de vínculo do(a) docente {$docente->nomeDocente} foi informada.", @@ -1411,7 +1612,7 @@ protected function analisaEducacensoRegistro60() ]; } - if ($aluno->tipoAtendimentoTurma == $aluno->isAtividadeComplementarOrAee()) { + if ($aluno->isAtividadeComplementarOrAee()) { $countAtividadesComplementar[$codigoAluno][] = [ 'codigoAluno' => $codigoAluno, 'nomeAluno' => $nomeAluno, @@ -1428,6 +1629,64 @@ protected function analisaEducacensoRegistro60() ]; } + if ($aluno->analisaDadosItinerario()) { + if ( + in_array(EstruturaCurricular::ITINERARIO_FORMATIVO, $aluno->estruturaCurricularTurma) && + count($aluno->estruturaCurricularTurma) === 1 && + $aluno->tipoItinerarioNaoPreenchido() + ) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 60 da escola {$nomeEscola} não encontrados. Verificamos que a estrutura curricular da turma {$nomeTurma} é itinerário formativo, portanto é necessário informar o tipo do itinerário formativo do(a) aluno(a) {$nomeAluno}.", + 'path' => '(Escola > Cadastros > Alunos > Visualizar > Itinerário formativo > Campo: Tipo do itinerário formativo)', + 'linkPath' => "/enrollment-formative-itinerary/{$aluno->enturmacaoId}", + 'fail' => true + ]; + } + + $etapasObrigatorias = [26, 27, 28, 31, 32, 33, 36, 37, 38, 71, 74]; + + if ( + in_array(EstruturaCurricular::ITINERARIO_FORMATIVO, $aluno->estruturaCurricularTurma) && + in_array(EstruturaCurricular::FORMACAO_GERAL_BASICA, $aluno->estruturaCurricularTurma) && + in_array($aluno->etapaTurma, $etapasObrigatorias) && + $aluno->tipoItinerarioNaoPreenchido() + ) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 60 da escola {$nomeEscola} não encontrados. Verificamos que a estrutura curricular da turma {$nomeTurma} é formação geral básica/itinerário formativo e a etapa de ensino é {$aluno->etapaTurmaDescritiva()}, portanto é necessário informar o tipo do itinerario formativo do(a) aluno(a) {$nomeAluno}.", + 'path' => '(Escola > Cadastros > Alunos > Visualizar > Itinerário formativo > Campo: Tipo do itinerário formativo)', + 'linkPath' => "/enrollment-formative-itinerary/{$aluno->enturmacaoId}", + 'fail' => true + ]; + } + + if ($aluno->tipoItinerarioIntegrado && $aluno->composicaoItinerarioNaoPreenchido()) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 60 da escola {$nomeEscola} não encontrados. Verificamos que o tipo de itinerário formativo do(a) aluno(a) {$nomeAluno} foi preenchido com a opção de itinerário formativo integrado, portanto é necessário informar a composição do itinerário formativo integrado.", + 'path' => '(Escola > Cadastros > Alunos > Visualizar > Itinerário formativo > Campo: Composição do itinerário formativo integrado)', + 'linkPath' => "/enrollment-formative-itinerary/{$aluno->enturmacaoId}", + 'fail' => true + ]; + } + + if ($aluno->composicaoItinerarioFormacaoTecnica && empty($aluno->cursoItinerario)) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 60 da escola {$nomeEscola} não encontrados. Verificamos que a composição do itinerário formativo do(a) aluno(a) {$nomeAluno} foi preenchido com a opção de formação técnica e profissional, portanto é necessário informar o tipo do curso do itinerário de formação técnica e profissional.", + 'path' => '(Escola > Cadastros > Alunos > Visualizar > Itinerário formativo > Campo: Tipo do curso do itinerário de formação técnica e profissional)', + 'linkPath' => "/enrollment-formative-itinerary/{$aluno->enturmacaoId}", + 'fail' => true + ]; + } + + if ($aluno->composicaoItinerarioFormacaoTecnica && $aluno->itinerarioConcomitante === null) { + $mensagem[] = [ + 'text' => "Dados para formular o registro 60 da escola {$nomeEscola} não encontrados. Verificamos que a composição do itinerário formativo do(a) aluno(a) {$nomeAluno} foi preenchido com a opção de formação técnica e profissional, portanto é necessário informar se é um itinerário concomitante intercomplementar à matrícula de formação geral básica.", + 'path' => '(Escola > Cadastros > Alunos > Visualizar > Itinerário formativo > Campo: Itinerário concomitante intercomplementar à matrícula de formação geral básica)', + 'linkPath' => "/enrollment-formative-itinerary/{$aluno->enturmacaoId}", + 'fail' => true + ]; + } + } + if (isArrayEmpty($aluno->tipoAtendimentoMatricula) && $aluno->tipoAtendimentoTurma == TipoAtendimentoTurma::AEE) { $mensagem[] = [ 'text' => "Dados para formular o registro 60 da escola {$nomeEscola} não encontrados. Verificamos que a turma {$nomeTurma} é de atendimento educacional especializado, portanto é necessário informar qual a tipo de atendimento do(a) aluno(a) {$nomeAluno}.", diff --git a/ieducar/modules/Api/Views/EducacensoExportController.php b/ieducar/modules/Api/Views/EducacensoExportController.php index 340a0a7b51..a8b62f9726 100644 --- a/ieducar/modules/Api/Views/EducacensoExportController.php +++ b/ieducar/modules/Api/Views/EducacensoExportController.php @@ -22,6 +22,7 @@ use iEducar\Modules\Educacenso\ExportRule\CriterioAcessoGestor; use iEducar\Modules\Educacenso\ExportRule\DependenciaAdministrativa; use iEducar\Modules\Educacenso\ExportRule\EsferaAdministrativa; +use iEducar\Modules\Educacenso\ExportRule\ItinerarioFormativoAluno; use iEducar\Modules\Educacenso\ExportRule\PoderPublicoResponsavelTransporte; use iEducar\Modules\Educacenso\ExportRule\RecebeEscolarizacaoOutroEspaco; use iEducar\Modules\Educacenso\ExportRule\RegrasEspecificasRegistro30; @@ -29,11 +30,14 @@ use iEducar\Modules\Educacenso\ExportRule\Regulamentacao; use iEducar\Modules\Educacenso\ExportRule\SituacaoFuncionamento; use iEducar\Modules\Educacenso\ExportRule\TiposAee; +use iEducar\Modules\Educacenso\ExportRule\TipoVinculoGestor; use iEducar\Modules\Educacenso\ExportRule\TipoVinculoServidor; use iEducar\Modules\Educacenso\ExportRule\TransporteEscolarPublico; use iEducar\Modules\Educacenso\ExportRule\TurmaMulti; +use iEducar\Modules\Educacenso\ExportRule\UnidadesCurricularesServidor; use iEducar\Modules\Educacenso\ExportRule\VeiculoTransporte; use iEducar\Modules\Educacenso\Formatters; +use iEducar\Modules\Educacenso\Model\SituacaoFuncionamento as ModelSituacaoFuncionamento; /** * Class EducacensoExportController @@ -269,64 +273,14 @@ protected function exportaDadosRegistro00($escolaId, $ano, &$continuaExportacao) $educacensoRepository = new EducacensoRepository(); $registro00Model = new Registro00(); $registro00 = new Registro00Data($educacensoRepository, $registro00Model); - $escola = $registro00->getExportFormatData($escolaId, $ano); + $data = $registro00->getExportFormatData($escolaId, $ano); - if (empty($escola->codigoInep)) { - $this->msg .= "Dados para formular o registro 00 da escola {$escolaId} não encontrados. Verifique se a escola possuí endereço normalizado, código do INEP e dados do gestor cadastrados.
"; + if (empty($registro00->codigoInep)) { + $this->msg .= "Dados para formular o registro 00 da escola {$registro00->nomeEscola} não encontrados. Verifique se a escola possuí endereço normalizado, código do INEP e dados do gestor cadastrados.
"; $this->error = true; } - $escola = SituacaoFuncionamento::handle($escola); - $escola = DependenciaAdministrativa::handle($escola); - $escola = Regulamentacao::handle($escola); - $escola = EsferaAdministrativa::handle($escola); - - $continuaExportacao = !in_array($escola->situacaoFuncionamento, [2, 3]); - - $data = [ - $escola->registro, - $escola->codigoInep, - $escola->situacaoFuncionamento, - $escola->inicioAnoLetivo, - $escola->fimAnoLetivo, - $escola->nome, - $escola->cep, - $escola->codigoIbgeMunicipio, - $escola->codigoIbgeDistrito, - $escola->logradouro, - $escola->numero, - $escola->complemento, - $escola->bairro, - $escola->ddd, - $escola->telefone, - $escola->telefoneOutro, - $escola->email, - $escola->orgaoRegional, - $escola->zonaLocalizacao, - $escola->localizacaoDiferenciada, - $escola->dependenciaAdministrativa, - $escola->orgaoEducacao, - $escola->orgaoSeguranca, - $escola->orgaoSaude, - $escola->orgaoOutro, - $escola->mantenedoraEmpresa, - $escola->mantenedoraSindicato, - $escola->mantenedoraOng, - $escola->mantenedoraInstituicoes, - $escola->mantenedoraSistemaS, - $escola->mantenedoraOscip, - $escola->categoriaEscolaPrivada, - $escola->conveniadaPoderPublico, - $escola->cnpjMantenedoraPrincipal, - $escola->cnpjEscolaPrivada, - $escola->regulamentacao, - $escola->esferaFederal, - $escola->esferaEstadual, - $escola->esferaMunicipal, - $escola->unidadeVinculada, - $escola->inepEscolaSede, - $escola->codigoIes, - ]; + $continuaExportacao = !in_array($registro00->situacaoFuncionamento, [ModelSituacaoFuncionamento::EXTINTA, ModelSituacaoFuncionamento::PARALISADA]); return ArrayToCenso::format($data) . PHP_EOL; } @@ -427,7 +381,6 @@ protected function exportaDadosRegistro30($escolaId, $ano) $pessoa->recursoVideoLibras, $pessoa->recursoBraile, $pessoa->recursoNenhum, - $pessoa->nis, $pessoa->certidaoNascimento, $pessoa->paisResidencia, $pessoa->cep, @@ -448,9 +401,24 @@ protected function exportaDadosRegistro30($escolaId, $ano) $pessoa->formacaoComponenteCurricular[0], $pessoa->formacaoComponenteCurricular[1], $pessoa->formacaoComponenteCurricular[2], - $pessoa->posGraduacaoEspecializacao, - $pessoa->posGraduacaoMestrado, - $pessoa->posGraduacaoDoutorado, + $pessoa->posGraduacoes[0]->type_id, + $pessoa->posGraduacoes[0]->area_id, + $pessoa->posGraduacoes[0]->completion_year, + $pessoa->posGraduacoes[1]->type_id, + $pessoa->posGraduacoes[1]->area_id, + $pessoa->posGraduacoes[1]->completion_year, + $pessoa->posGraduacoes[2]->type_id, + $pessoa->posGraduacoes[2]->area_id, + $pessoa->posGraduacoes[2]->completion_year, + $pessoa->posGraduacoes[3]->type_id, + $pessoa->posGraduacoes[3]->area_id, + $pessoa->posGraduacoes[3]->completion_year, + $pessoa->posGraduacoes[4]->type_id, + $pessoa->posGraduacoes[4]->area_id, + $pessoa->posGraduacoes[4]->completion_year, + $pessoa->posGraduacoes[5]->type_id, + $pessoa->posGraduacoes[5]->area_id, + $pessoa->posGraduacoes[5]->completion_year, $pessoa->posGraduacaoNaoPossui, $pessoa->formacaoContinuadaCreche, $pessoa->formacaoContinuadaPreEscola, @@ -492,6 +460,8 @@ protected function exportaDadosRegistro40($escolaId) $gestor = CargoGestor::handle($gestor); /** @var Registro40 $gestor */ $gestor = CriterioAcessoGestor::handle($gestor); + /** @var Registro40 $gestor */ + $gestor = TipoVinculoGestor::handle($gestor); $data = [ $gestor->registro, @@ -516,6 +486,7 @@ protected function exportaDadosRegistro50($escolaId, $ano) $registro50 = new Registro50Data($educacensoRepository, $registro50Model); $quantidadeComponentes = 15; + $quantidadeUnidadesCurriculares = 8; /** @var Registro50[] $docentes */ $docentes = $registro50->getExportFormatData($escolaId, $ano); @@ -525,6 +496,8 @@ protected function exportaDadosRegistro50($escolaId, $ano) $docente = TipoVinculoServidor::handle($docente); /** @var Registro50 $docente */ $docente = ComponentesCurriculares::handle($docente); + /** @var Registro50 $docente */ + $docente = UnidadesCurricularesServidor::handle($docente); $data = [ $docente->registro, @@ -541,6 +514,10 @@ protected function exportaDadosRegistro50($escolaId, $ano) $data[] = $docente->componentes[$count]; } + for ($count = 1; $count <= $quantidadeUnidadesCurriculares; $count++) { + $data[] = $docente->unidadesCurriculares === null ? '' : (int) in_array($count, $docente->unidadesCurriculares); + } + $stringCenso .= ArrayToCenso::format($data) . PHP_EOL; } @@ -565,6 +542,7 @@ protected function exportaDadosRegistro60($escolaId, $ano) $aluno = VeiculoTransporte::handle($aluno); /** @var Registro60 $aluno */ $aluno = PoderPublicoResponsavelTransporte::handle($aluno); + $aluno = ItinerarioFormativoAluno::handle($aluno); $data = [ $aluno->registro, @@ -575,6 +553,19 @@ protected function exportaDadosRegistro60($escolaId, $ano) $aluno->inepTurma, $aluno->matriculaAluno, $aluno->etapaAluno, + $aluno->tipoItinerarioLinguagens, + $aluno->tipoItinerarioMatematica, + $aluno->tipoItinerarioCienciasNatureza, + $aluno->tipoItinerarioCienciasHumanas, + $aluno->tipoItinerarioFormacaoTecnica, + $aluno->tipoItinerarioIntegrado, + $aluno->composicaoItinerarioLinguagens, + $aluno->composicaoItinerarioMatematica, + $aluno->composicaoItinerarioCienciasNatureza, + $aluno->composicaoItinerarioCienciasHumanas, + $aluno->composicaoItinerarioFormacaoTecnica, + $aluno->cursoItinerario, + $aluno->itinerarioConcomitante, $aluno->tipoAtendimentoDesenvolvimentoFuncoesGognitivas, $aluno->tipoAtendimentoDesenvolvimentoVidaAutonoma, $aluno->tipoAtendimentoEnriquecimentoCurricular, diff --git a/ieducar/modules/Api/Views/ServidorController.php b/ieducar/modules/Api/Views/ServidorController.php index 10593d0c3a..16f42ae514 100644 --- a/ieducar/modules/Api/Views/ServidorController.php +++ b/ieducar/modules/Api/Views/ServidorController.php @@ -145,7 +145,7 @@ protected function getServidoresDisciplinasTurmas() tmp.permite_lancar_faltas_componente, string_agg(distinct concat(tmp.componente_curricular_id, ' ', tmp.tipo_nota)::varchar, ',') as disciplinas, max(tmp.updated_at) as updated_at, - null as deleted_at + deleted_at from ( select pt.id, @@ -156,7 +156,10 @@ protected function getServidoresDisciplinasTurmas() ptd.componente_curricular_id, ccae.tipo_nota, greatest(pt.updated_at, ccae.updated_at) as updated_at, - null as deleted_at + CASE + WHEN s.ativo = 0 THEN coalesce(s.data_exclusao::timestamp(0),s.updated_at::timestamp(0)) + ELSE NULL + END AS deleted_at from modules.professor_turma pt left join modules.professor_turma_disciplina ptd on ptd.professor_turma_id = pt.id @@ -166,13 +169,14 @@ protected function getServidoresDisciplinasTurmas() inner join modules.componente_curricular_ano_escolar ccae on ccae.ano_escolar_id = coalesce(ts.serie_id, t.ref_ref_cod_serie) and ccae.componente_curricular_id = ptd.componente_curricular_id + left join pmieducar.servidor s on s.cod_servidor = pt.servidor_id where true and pt.instituicao_id = $1 and pt.ano = $2 and t.ref_ref_cod_escola in ({$escola}) {$where} ) as tmp - group by tmp.id, tmp.servidor_id, tmp.turma_id, tmp.turno_id, tmp.permite_lancar_faltas_componente + group by tmp.id, tmp.servidor_id, tmp.turma_id, tmp.turno_id, tmp.permite_lancar_faltas_componente,deleted_at ) union all ( diff --git a/ieducar/modules/Avaliacao/Service/Boletim.php b/ieducar/modules/Avaliacao/Service/Boletim.php index 03eaa7b984..fc62fa9ecb 100644 --- a/ieducar/modules/Avaliacao/Service/Boletim.php +++ b/ieducar/modules/Avaliacao/Service/Boletim.php @@ -1498,8 +1498,8 @@ public function exibeNotaNecessariaExame($componenteCurricularId): bool private function valorMediaSituacao(Avaliacao_Model_NotaComponenteMedia $mediaComponente) { $regraNotaNumerica = $this->getRegraAvaliacaoTipoNota() == RegraAvaliacao_Model_Nota_TipoValor::NUMERICA; - - return $regraNotaNumerica ? $mediaComponente->mediaArredondada : $mediaComponente->media; + $media = $regraNotaNumerica ? $mediaComponente->mediaArredondada : $mediaComponente->media; + return empty($media) ? 0 : $media; } /** @@ -2393,8 +2393,8 @@ public function arredondaMedia($media) return $this->getRegraAvaliacaoTabelaArredondamentoConceitual()->round($media, 2); } - //Arredonda média para quantidade de casas decimais permitidas - $media = round($media, $this->getRegraAvaliacaoQtdCasasDecimais()); + //Reduz a média sem arredondar para quantidade de casas decimais permitidas + $media = bcdiv($media, 1, $this->getRegraAvaliacaoQtdCasasDecimais()); return $this->getRegraAvaliacaoTabelaArredondamento()->round($media, 2); } diff --git a/ieducar/modules/Cadastro/Assets/Javascripts/Escola.js b/ieducar/modules/Cadastro/Assets/Javascripts/Escola.js index 7eeee41d0c..9011c42bdc 100644 --- a/ieducar/modules/Cadastro/Assets/Javascripts/Escola.js +++ b/ieducar/modules/Cadastro/Assets/Javascripts/Escola.js @@ -56,7 +56,13 @@ const EQUIPAMENTOS_ACESSO_INTERNET = { COMPUTADORES: '1' }; -var submitForm = function(){ +const PODER_PUBLICO_PARCERIA_CONVENIO = { + SECRETARIA_ESTADUAL: 1, + SECRETARIA_MUNICIPAL: 2, + NAO_POSSUI_PARCERIA_OU_CONVENIO: 3 +}; + +var submitForm = function() { var canSubmit = validationUtils.validatesFields(true); // O campo escolaInepId somente é atualizado ao cadastrar escola, uma vez que este @@ -115,14 +121,79 @@ $submitButton.click(submitForm); let obrigarCamposCenso = $j('#obrigar_campos_censo').val() == '1'; +window.addEventListener( + 'load', function () { + obrigaCampoFormaDeContratacao(); + habilitaCampoFormaDeContratacao(); + habilitaAbaMatriculasAtendidas(); + obrigarCnpjMantenedora(); + },false +); + +function obrigarCnpjMantenedora() { + dependenciaPrivada = $j('#dependencia_administrativa').val() == DEPENDENCIA_ADMINISTRATIVA.PRIVADA; + mantenedoraSemFinsLucrativos = $j.inArray(MANTENEDORA_ESCOLA_PRIVADA.INSTITUICOES_SIM_FINS_LUCRATIVOS.toString(), $j('#mantenedora_escola_privada').val()) != -1; + escolaRegulamentada = $j('#regulamentacao').val() == 1; + emAtividade = $j('#situacao_funcionamento').val() == SITUACAO_FUNCIONAMENTO.EM_ATIVIDADE; + + $j('#cnpj_mantenedora_principal').makeUnrequired(); + if (obrigarCamposCenso && dependenciaPrivada && mantenedoraSemFinsLucrativos && escolaRegulamentada && emAtividade) { + $j('#cnpj_mantenedora_principal').makeRequired(); + } +} + $j('#local_funcionamento').on('change', function () { - changeLocalFuncionamento() + changeLocalFuncionamento(); + changeNumeroDeSalas(); +}); + +$j('#nao_ha_funcionarios_para_funcoes').on('change', function () { + habilitaRecuros() }); $j('#predio_compartilhado_outra_escola').on('change', function () { changePredioCompartilhadoEscola() }); +$j('#poder_publico_parceria_convenio').on('change', function () { + obrigaCampoFormaDeContratacao(); + habilitaCampoFormaDeContratacao(); +}); + +function habilitaRecuros() { + + const camposDosRecuros = [ + $j('#qtd_secretario_escolar'), + $j('#qtd_auxiliar_administrativo'), + $j('#qtd_apoio_pedagogico'), + $j('#qtd_coordenador_turno'), + $j('#qtd_tecnicos'), + $j('#qtd_bibliotecarios'), + $j('#qtd_segurancas'), + $j('#qtd_auxiliar_servicos_gerais'), + $j('#qtd_nutricionistas'), + $j('#qtd_profissionais_preparacao'), + $j('#qtd_bombeiro'), + $j('#qtd_psicologo'), + $j('#qtd_fonoaudiologo'), + $j('#qtd_vice_diretor'), + $j('#qtd_orientador_comunitario') + ]; + + const isChecked = $j('#nao_ha_funcionarios_para_funcoes').is(':checked'); + if (isChecked) { + camposDosRecuros.forEach(function (campo) { + campo.val(''); + campo.prop('disabled', true); + }); + return; + } + + camposDosRecuros.forEach(function (campo) { + campo.prop('disabled', false); + }); +} + function obrigaCampoRegulamentacao() { escolaEmAtividade = $j('#situacao_funcionamento').val() == SITUACAO_FUNCIONAMENTO.EM_ATIVIDADE; @@ -135,6 +206,62 @@ function obrigaCampoRegulamentacao() { } } +$j('#poder_publico_parceria_convenio').on('change', function () { + habilitaAbaMatriculasAtendidas(); +}); + +function habilitaAbaMatriculasAtendidas() { + const secretariaEstadual = $j.inArray(PODER_PUBLICO_PARCERIA_CONVENIO.SECRETARIA_ESTADUAL.toString(), $j('#poder_publico_parceria_convenio').val()) != -1 + const secretariaMunicipal = $j.inArray(PODER_PUBLICO_PARCERIA_CONVENIO.SECRETARIA_MUNICIPAL.toString(), $j('#poder_publico_parceria_convenio').val()) != -1 + + if (secretariaEstadual || secretariaMunicipal) { + $j('#tab2').show(); + return; + } + $j('#tab2').hide(); +} + +function obrigaCampoFormaDeContratacao() { + const secretariaEstadual = $j.inArray(PODER_PUBLICO_PARCERIA_CONVENIO.SECRETARIA_ESTADUAL.toString(), $j('#poder_publico_parceria_convenio').val()) != -1 + const secretariaMunicipal = $j.inArray(PODER_PUBLICO_PARCERIA_CONVENIO.SECRETARIA_MUNICIPAL.toString(), $j('#poder_publico_parceria_convenio').val()) != -1 + const naoPossueParceriaOuConvenio = $j.inArray(PODER_PUBLICO_PARCERIA_CONVENIO.NAO_POSSUI_PARCERIA_OU_CONVENIO.toString(), $j('#poder_publico_parceria_convenio').val()) != -1 + + if (obrigarCamposCenso && (secretariaEstadual || secretariaMunicipal)) { + $j('#formas_contratacao_adm_publica_e_outras_instituicoes').makeRequired(); + $j("#formas_contratacao_adm_publica_e_outras_instituicoes").prop('disabled', false); + } else { + $j('#formas_contratacao_adm_publica_e_outras_instituicoes').makeUnrequired(); + $j("#formas_contratacao_adm_publica_e_outras_instituicoes").prop('disabled', true); + } + + if (naoPossueParceriaOuConvenio) { + $j('#formas_contratacao_adm_publica_e_outras_instituicoes').makeUnrequired(); + $j("#formas_contratacao_adm_publica_e_outras_instituicoes").prop('disabled', true); + } +} + +function habilitaCampoFormaDeContratacao() { + const poderPublico = $j('#poder_publico_parceria_convenio').val(); + const naoPossueParceriaOuConvenio = $j.inArray(PODER_PUBLICO_PARCERIA_CONVENIO.NAO_POSSUI_PARCERIA_OU_CONVENIO.toString(), $j('#poder_publico_parceria_convenio').val()) != -1 + + if (!poderPublico) { + $j("#formas_contratacao_adm_publica_e_outras_instituicoes").prop('disabled', true); + $j("#formas_contratacao_adm_publica_e_outras_instituicoes").val(''); + $j("#formas_contratacao_adm_publica_e_outras_instituicoes").trigger("chosen:updated"); + return; + } + + if (naoPossueParceriaOuConvenio) { + $j("#formas_contratacao_adm_publica_e_outras_instituicoes").prop('disabled', true); + $j("#formas_contratacao_adm_publica_e_outras_instituicoes").val(''); + $j("#formas_contratacao_adm_publica_e_outras_instituicoes").trigger("chosen:updated"); + return; + } + + $j("#formas_contratacao_adm_publica_e_outras_instituicoes").prop('disabled', false); + $j("#formas_contratacao_adm_publica_e_outras_instituicoes").trigger("chosen:updated"); +} + function habilitaCampoOrgaoVinculadoEscola() { if ($j('#dependencia_administrativa').val() != DEPENDENCIA_ADMINISTRATIVA.PRIVADA) { $j("#orgao_vinculado_escola").prop('disabled', false); @@ -168,6 +295,21 @@ function habilitaCampoEsferaAdministrativa() { } } } +function changeNumeroDeSalas() { + const containsPredioEscolar = $j.inArray(LOCAL_FUNCIONAMENTO.PREDIO_ESCOLAR.toString(), $j('#local_funcionamento').val()) > -1; + + $j('#numero_salas_utilizadas_dentro_predio').prop('disabled', !containsPredioEscolar); + if (obrigarCamposCenso) { + if (containsPredioEscolar) { + $j('#numero_salas_utilizadas_dentro_predio').makeRequired(); + $j('#numero_salas_utilizadas_fora_predio').makeUnrequired(); + } else { + $j('#numero_salas_utilizadas_dentro_predio').makeUnrequired(); + $j('#numero_salas_utilizadas_fora_predio').makeRequired(); + $j('#numero_salas_utilizadas_dentro_predio').val(''); + } + } +} function changeLocalFuncionamento(){ var disabled = $j.inArray(LOCAL_FUNCIONAMENTO.PREDIO_ESCOLAR.toString(), $j('#local_funcionamento').val()) == -1; @@ -215,7 +357,16 @@ $j('#pessoaj_idpes').after(link); // hide nos campos das outras abas (deixando só os campos da primeira aba) if (!$j('#pessoaj_idpes').is(':visible')) { - $j('td .formdktd:first').append('
'); + $j('td .formdktd:first').append( + '
'); $j('td .formdktd b').remove(); $j('#tab1').addClass('escolaTab-active').removeClass('escolaTab'); @@ -224,19 +375,23 @@ if (!$j('#pessoaj_idpes').is(':visible')) { $j('#atendimento_aee').closest('tr').attr('id','tatendimento_aee'); // Pega o número dessa linha + linha_inicial_matriculas_atendidas_convenio = $j('#tr_matriculas_atendidas_convenio').index()-2; linha_inicial_infra = $j('#tlocal_funcionamento').index()-2; linha_inicial_dependencia = $j('#tr_possui_dependencias').index()-2; linha_inicial_equipamento = $j('#tr_equipamentos').index()-2; - linha_inicial_recursos = $j('#tr_quantidade_profissionais').index()-2; + linha_inicial_recursos = $j('#tr_quantidade_profissionais').index()-3; linha_inicial_dados = $j('#tatendimento_aee').index()-2; + // Esconde os campos da primeira ao carregar a tela. + $j('#tab2').hide(); + // Adiciona um ID à linha que termina o formulário para parar de esconder os campos $j('.tableDetalheLinhaSeparador').closest('tr').attr('id','stop'); - $j('.tablecadastro >tbody > tr').each(function(index, row) { - if (index>=linha_inicial_infra){ - if (row.id!='stop') + $j('.tablecadastro > tbody > tr').each(function(index, row) { + if ( index >= linha_inicial_matriculas_atendidas_convenio){ + if (row.id !== 'stop') { row.hide(); - else{ + } else { return false; } } @@ -246,20 +401,20 @@ if (!$j('#pessoaj_idpes').is(':visible')) { $j(document).ready(function() { // on click das abas - + habilitaCampoPoderPublicoOuConvenio(); // DADOS GERAIS $j('#tab1').click( - function(){ - + function() { $j('.escolaTab-active').toggleClass('escolaTab-active escolaTab'); $j('#tab1').toggleClass('escolaTab escolaTab-active') - $j('.tablecadastro >tbody > tr').each(function(index, row) { - if (index>=linha_inicial_infra){ - if (row.id!='stop') + $j('.tablecadastro > tbody > tr').each(function(index, row) { + if (index >= linha_inicial_matriculas_atendidas_convenio) { + if (row.id !== 'stop') { row.hide(); - else + } else { return false; - }else{ + } + } else { row.show(); } }); @@ -271,18 +426,17 @@ $j(document).ready(function() { function(){ $j('.escolaTab-active').toggleClass('escolaTab-active escolaTab'); $j('#tab2').toggleClass('escolaTab escolaTab-active') - $j('.tablecadastro >tbody > tr').each(function(index, row) { - if (row.id!='stop'){ - if (index>=linha_inicial_infra && index < linha_inicial_dependencia){ + $j('.tablecadastro > tbody > tr').each(function(index, row) { + if (row.id !== 'stop'){ + if (index >= linha_inicial_matriculas_atendidas_convenio && index < linha_inicial_infra) { row.show(); - }else if (index>0){ + } else if (index > 0){ row.hide(); } - }else + }else { return false; + } }); - changeLocalFuncionamento(); - changePredioCompartilhadoEscola(); }); // DEPENDENCIAS @@ -290,17 +444,20 @@ $j(document).ready(function() { function(){ $j('.escolaTab-active').toggleClass('escolaTab-active escolaTab'); $j('#tab3').toggleClass('escolaTab escolaTab-active') - $j('.tablecadastro >tbody > tr').each(function(index, row) { - if (row.id!='stop'){ - if (index>=linha_inicial_dependencia && index < linha_inicial_equipamento){ + $j('.tablecadastro > tbody > tr').each(function(index, row) { + if (row.id !== 'stop') { + if (index >= linha_inicial_infra && index < linha_inicial_dependencia) { row.show(); - }else if (index>0){ + } else if (index > 0) { row.hide(); } - }else + } else { return false; + } }); - habilitaCamposNumeroSalas(); + changeLocalFuncionamento(); + changePredioCompartilhadoEscola(); + changeNumeroDeSalas(); }); // EQUIPAMENTOS @@ -308,20 +465,18 @@ $j(document).ready(function() { function(){ $j('.escolaTab-active').toggleClass('escolaTab-active escolaTab'); $j('#tab4').toggleClass('escolaTab escolaTab-active') - $j('.tablecadastro >tbody > tr').each(function(index, row) { - if (row.id!='stop'){ - if (index>=linha_inicial_equipamento && index < linha_inicial_recursos){ + $j('.tablecadastro > tbody > tr').each(function(index, row) { + if (row.id !== 'stop') { + if (index >= linha_inicial_dependencia && index < linha_inicial_equipamento){ row.show(); - }else if (index>0){ + } else if (index > 0) { row.hide(); } - }else + } else { return false; + } }); - habilitaCampoAcessoInternet(); - habilitaCampoEquipamentosAcessoInternet(); - habilitaCampoRedeLocal(); - habilitaCamposQuantidadeComputadoresAlunos(); + habilitaCamposNumeroSalas(); }); // Dados educacionais @@ -329,32 +484,64 @@ $j(document).ready(function() { function(){ $j('.escolaTab-active').toggleClass('escolaTab-active escolaTab'); $j('#tab5').toggleClass('escolaTab escolaTab-active') - $j('.tablecadastro >tbody > tr').each(function(index, row) { - if (row.id!='stop'){ - if (index>=linha_inicial_recursos && index < linha_inicial_dados){ + $j('.tablecadastro > tbody > tr').each(function(index, row) { + if (row.id !== 'stop'){ + if (index >= linha_inicial_equipamento && index < linha_inicial_recursos){ row.show(); - }else if (index>0){ + }else if ( index > 0){ row.hide(); } - }else + } else { return false; + } }); - }); + habilitaCampoAcessoInternet(); + habilitaCampoEquipamentosAcessoInternet(); + habilitaCamposQuantidadeComputadoresAlunos(); + obrigaEquipamentos(); + }); + + function obrigaEquipamentos() { + $j('#equipamentos').makeUnrequired(); + if(obrigarCamposCenso) { + $j('#equipamentos').makeRequired(); + } + } // Dados educacionais $j('#tab6').click( - function(){ + function() { $j('.escolaTab-active').toggleClass('escolaTab-active escolaTab'); $j('#tab6').toggleClass('escolaTab escolaTab-active') - $j('.tablecadastro >tbody > tr').each(function(index, row) { - if (row.id!='stop'){ - if (index>=linha_inicial_dados){ + $j('.tablecadastro > tbody > tr').each(function(index, row) { + if (row.id !== 'stop'){ + if (index >= linha_inicial_recursos && index < linha_inicial_dados){ row.show(); - }else if (index>0){ + } else if (index > 0) { row.hide(); } - }else + habilitaRecuros(); + } else { return false; + } + }); + }); + + // Dados educacionais + $j('#tab7').click( + function() { + $j('.escolaTab-active').toggleClass('escolaTab-active escolaTab'); + $j('#tab7').toggleClass('escolaTab escolaTab-active') + $j('.tablecadastro > tbody > tr').each(function(index, row) { + if (row.id !== 'stop') { + if (index >= linha_inicial_dados) { + row.show(); + } else if (index > 0){ + row.hide(); + } + } else { + return false; + } }); habilitarCampoUnidadeVinculada(); @@ -364,8 +551,17 @@ $j(document).ready(function() { habilitaCampoEducacaoIndigena(); habilitaCampoLinguaMinistrada(); habilitaReservaVagasCotas(); + obrigraInstrumentosPedagogicos(); }); + + function obrigraInstrumentosPedagogicos() { + $j('#instrumentos_pedagogicos').makeUnrequired(); + if (obrigarCamposCenso) { + $j('#instrumentos_pedagogicos').makeRequired(); + } + } + // fix checkboxs $j('input:checked').val('on'); @@ -473,34 +669,41 @@ $j(document).ready(function() { } } + $j('#mantenedora_escola_privada').on('change', () => obrigarCnpjMantenedora()); - $j('#mantenedora_escola_privada').change( - function (){ - obrigarCnpjMantenedora(); - } - ); - - function obrigarCnpjMantenedora() { - dependenciaPrivada = $j('#dependencia_administrativa').val() == DEPENDENCIA_ADMINISTRATIVA.PRIVADA; - mantenedoraSemFinsLucrativos = $j.inArray(MANTENEDORA_ESCOLA_PRIVADA.INSTITUICOES_SIM_FINS_LUCRATIVOS.toString(), $j('#mantenedora_escola_privada').val()) != -1; - escolaRegulamentada = $j('#regulamentacao').val() == 1; - emAtividade = $j('#situacao_funcionamento').val() == SITUACAO_FUNCIONAMENTO.EM_ATIVIDADE; - $j('#cnpj_mantenedora_principal').makeUnrequired(); - - if (obrigarCamposCenso && dependenciaPrivada && mantenedoraSemFinsLucrativos && escolaRegulamentada && emAtividade) { - $j('#cnpj_mantenedora_principal').makeRequired(); - } - } $j('#situacao_funcionamento').change( function(){ verificaCamposDepAdm(); obrigaCampoRegulamentacao(); habilitarCampoUnidadeVinculada(); + habilitaCampoPoderPublicoOuConvenio(); + obrigaCampoFormaDeContratacao(); + habilitaCampoFormaDeContratacao(); } ); + function habilitaCampoPoderPublicoOuConvenio() { + + let situacaoFuncionamento = $j('#situacao_funcionamento').val(); + + if (obrigarCamposCenso && situacaoFuncionamento == SITUACAO_FUNCIONAMENTO.EM_ATIVIDADE) { + $j('#poder_publico_parceria_convenio').makeRequired(); + $j("#poder_publico_parceria_convenio").val(''); + $j("#poder_publico_parceria_convenio").prop('disabled', false); + $j("#poder_publico_parceria_convenio").trigger("chosen:updated"); + return; + } + + if (obrigarCamposCenso && situacaoFuncionamento != SITUACAO_FUNCIONAMENTO.EM_ATIVIDADE) { + $j('#poder_publico_parceria_convenio').makeUnrequired(); + $j("#poder_publico_parceria_convenio").val('disabled', true); + $j("#poder_publico_parceria_convenio").prop('disabled', true); + $j("#poder_publico_parceria_convenio").trigger("chosen:updated"); + } + } + $j('#regulamentacao').change( function(){ habilitaCampoEsferaAdministrativa(); @@ -772,19 +975,6 @@ $j('#uso_internet').on('change', function () { habilitaCampoEquipamentosAcessoInternet(); }); -function habilitaCampoRedeLocal() { - let disabled = $j.inArray(EQUIPAMENTOS.COMPUTADORES.toString(), $j('#equipamentos').val()) == -1; - - if (disabled) { - makeUnrequired('rede_local'); - } else if(obrigarCamposCenso){ - makeRequired('rede_local'); - } - - $j('#rede_local').prop('disabled', disabled); - - $j("#rede_local").trigger("chosen:updated"); -} function habilitaCamposQuantidadeComputadoresAlunos() { let disabled = $j.inArray(EQUIPAMENTOS_ACESSO_INTERNET.COMPUTADORES, $j('#equipamentos_acesso_internet').val()) == -1; @@ -792,10 +982,6 @@ function habilitaCamposQuantidadeComputadoresAlunos() { $j("#quantidade_computadores_alunos_mesa, #quantidade_computadores_alunos_portateis, #quantidade_computadores_alunos_tablets").trigger("chosen:updated"); } -$j('#equipamentos').on('change', function () { - habilitaCampoRedeLocal(); -}); - $j('#equipamentos_acesso_internet').on('change', function () { habilitaCamposQuantidadeComputadoresAlunos(); }); diff --git a/ieducar/modules/Cadastro/Assets/Javascripts/EscolaSerie.js b/ieducar/modules/Cadastro/Assets/Javascripts/EscolaSerie.js index e35c95d7b7..d7dd580eb3 100644 --- a/ieducar/modules/Cadastro/Assets/Javascripts/EscolaSerie.js +++ b/ieducar/modules/Cadastro/Assets/Javascripts/EscolaSerie.js @@ -28,6 +28,8 @@ function getDisciplina(xml_disciplina) { var conteudo = ''; if (DOM_array.length) { + const first_key = DOM_array[0].getAttribute("cod_disciplina"); + conteudo += '
'; conteudo += ' Nome'; conteudo += ' Carga horária'; @@ -37,8 +39,20 @@ function getDisciplina(xml_disciplina) { conteudo += '
'; conteudo += '
'; - conteudo += " "; - conteudo += " "; + conteudo += " "; + conteudo += "" + + ""; + conteudo += " "; + conteudo += "" + + ""; conteudo += '
'; conteudo += '
'; @@ -46,11 +60,11 @@ function getDisciplina(xml_disciplina) { id = DOM_array[i].getAttribute("cod_disciplina"); conteudo += '
'; - conteudo += ' '; - conteudo += ' '; - conteudo += ' '; + conteudo += ' '; + conteudo += ' '; + conteudo += ' '; conteudo += ` - `; conteudo += '
'; @@ -335,3 +349,7 @@ function cloneValues(componente_id, classe){ } }, this); } + +$j('#disciplinas').on('change','input[name^="disciplinas"]',function () { + $j(this).closest('div').find('input[name^="usar_componente"]').prop('checked', $j(this).is(':checked')); +}) diff --git a/ieducar/modules/Cadastro/Assets/Javascripts/SchoolManagersModal.js b/ieducar/modules/Cadastro/Assets/Javascripts/SchoolManagersModal.js index ff537d8791..dc5dbebde9 100644 --- a/ieducar/modules/Cadastro/Assets/Javascripts/SchoolManagersModal.js +++ b/ieducar/modules/Cadastro/Assets/Javascripts/SchoolManagersModal.js @@ -150,8 +150,8 @@ function validateLinkType() { return true; } - if ($j('#managers_link_type_id').val() == '') { - messageUtils.error("O campo: Tipo de vínculo deve ser preenchido quando o campo: Cargo for: Diretor e o campo: Dependência administrativa não for: Privada"); + if ($j('#managers_link_type_id').val() == '' && $j('#situacao_funcionamento').val() == SITUACAO_FUNCIONAMENTO.EM_ATIVIDADE) { + messageUtils.error("O campo: Tipo de vínculo deve ser preenchido quando Situação de funcionamento for: Em atividade, o campo: Cargo for: Diretor e o campo: Dependência administrativa não for: Privada"); return false; } diff --git a/ieducar/modules/Cadastro/Assets/Javascripts/Servidor.js b/ieducar/modules/Cadastro/Assets/Javascripts/Servidor.js index 15cd35a336..fcf8672ed6 100644 --- a/ieducar/modules/Cadastro/Assets/Javascripts/Servidor.js +++ b/ieducar/modules/Cadastro/Assets/Javascripts/Servidor.js @@ -32,7 +32,12 @@ function verificaDeficiencias() { } function submitForm() { - if (!validaServidor() || !validaPosGraduacao() || !validaCursoFormacaoContinuada() || !validationUtils.validatesFields(false) || !validateGraduations() || !validaCargaHoraria()) { + if (!validaServidor() || + !validaCursoFormacaoContinuada() || + !validationUtils.validatesFields(false) || + !validateGraduations() || + !validaCargaHoraria() || + !validatePosgraduate()) { return false; } @@ -104,19 +109,6 @@ function validaServidor() { return true } -function validaPosGraduacao() { - posGraduacao = $j('#pos_graduacao').val() || []; - possuiOpcaoNenhuma = $j.inArray('4', posGraduacao) !== -1; - possuiMaisDeUmaOpcao = posGraduacao.filter(Boolean).length > 1; - - if (possuiOpcaoNenhuma && possuiMaisDeUmaOpcao) { - messageUtils.error('Não é possível informar mais de uma opção no campo: Pós-Graduações concluídas, quando a opção: Não tem pós-graduação concluída estiver selecionada.'); - return false; - } - - return true; -} - function validaCursoFormacaoContinuada() { cursoFormacaoContinuada = $j('#curso_formacao_continuada').val() || []; possuiOpcaoNenhum = $j.inArray('16', cursoFormacaoContinuada) != -1; @@ -184,6 +176,14 @@ function checkGraduationsTable() { } } +function checkPosgraduateTable() { + if (escolaridadeSuperior && $j('#tab2').hasClass('servidorTab-active')) { + $j('#tr_posgraduate').show(); + } else { + $j('#tr_posgraduate').hide(); + } +} + function verificaCamposObrigatorio() { if($j('#ref_idesco').val()) { var options = { @@ -195,26 +195,18 @@ function verificaCamposObrigatorio() { ), success : function(dataResponse) { escolaridadeSuperior = dataResponse.escolaridade.escolaridade == '6' - habilitaCampoPosGraduacao(); checkGraduationsTable(); + checkPosgraduateTable(); } } getResource(options); } else { escolaridadeSuperior = false; checkGraduationsTable(); + checkPosgraduateTable(); } } - -function habilitaCampoPosGraduacao() { - $j('#pos_graduacao').removeAttr('disabled'); - if (!escolaridadeSuperior) { - $j('#pos_graduacao').attr('disabled', 'disabled').makeUnrequired().val(''); - } - $j("#pos_graduacao").trigger("chosen:updated"); -} - //abas $j('.tablecadastro').children().children('tr:first').children('td:first').append('
  • Dados gerais
  • Dados adicionais
'); @@ -240,6 +232,7 @@ $j('.tablecadastro >tbody > tr').each(function(index, row) { $j(document).ready(function() { $j('#tr_graduations_tit td').addClass('formdktd'); + $j('#tr_posgraduate_tit td').addClass('formdktd'); // on click das abas // DADOS GERAIS @@ -284,8 +277,8 @@ $j(document).ready(function() { }else return false; }); - habilitaCampoPosGraduacao(); checkGraduationsTable(); + checkPosgraduateTable(); }); // fix checkboxs @@ -492,3 +485,63 @@ function validaCargaHoraria() { $j('#carga_horaria').change(function () { validaCargaHoraria() }); + +function validatePosgraduate() { + + if (!escolaridadeSuperior) { + return true; + } + + var posgraduacoesHash = []; + + var result = true; + + $j.each($j('select[id^="posgraduate_type_id["]'), function (index, field) { + var id = $j(field).attr('id'); + var idNum = id.match(/\[(\d+)\]/); + var typeId = $j(field), + areaId = $j('select[id="posgraduate_area_id[' + idNum[1] + ']"]'), + completionYear = $j('input[id="posgraduate_completion_year[' + idNum[1] + ']"]'); + + posgraduacoesHash[index] = typeId.val().concat(areaId.val(), completionYear.val()); + + if (obrigarCamposCenso && (areaId.val() != '' || completionYear.val() != '') && typeId.val() == '') { + messageUtils.error('O campo: Tipo da pós-graduação é obrigatório.', typeId); + result = false; + } + + if (obrigarCamposCenso && (typeId.val() != '' || completionYear.val() != '') && areaId.val() == '') { + messageUtils.error('O campo: Área da pós-graduação é obrigatório.', areaId); + result = false; + } + + if (obrigarCamposCenso && (typeId.val() != '' || areaId.val() != '') && completionYear.val() == '') { + messageUtils.error('O campo: Ano de conclusão da pós-graduação é obrigatório.', completionYear); + result = false; + } + + if (completionYear.val().length != 0 && completionYear.val().length != 4) { + messageUtils.error('O campo: Ano de conclusão da pós-graduação deve conter 4 dígitos.', completionYear); + result = false; + } + + if (parseInt(completionYear.val()) < 1940) { + messageUtils.error('O campo: Ano de conclusão da pós-graduação deve ser maior que 1940.', completionYear); + result = false; + } + + if (parseInt(completionYear.val()) > (new Date().getFullYear())) { + messageUtils.error('O campo: Ano de conclusão da pós-graduação não deve ser maior que o ano atual.', completionYear); + result = false; + } + }); + + posgraduacoesHash.sort(); + + if (posgraduacoesHash.length != $j.unique(posgraduacoesHash).length) { + messageUtils.error('Não é possível cadastrar mais de uma vez a mesma Pós-graduação.'); + result = false; + } + + return result; +} diff --git a/ieducar/modules/Cadastro/Assets/Javascripts/ServidorVinculoTurma.js b/ieducar/modules/Cadastro/Assets/Javascripts/ServidorVinculoTurma.js index 3ae97f7efc..933edc2ed1 100644 --- a/ieducar/modules/Cadastro/Assets/Javascripts/ServidorVinculoTurma.js +++ b/ieducar/modules/Cadastro/Assets/Javascripts/ServidorVinculoTurma.js @@ -1,92 +1,133 @@ $j(document).ready(function() { - let obrigarCamposCenso = $j('#obrigar_campos_censo').val() == '1'; + const addComponenteCurricular = function(id) { + + const searchPath = '/module/Api/ComponenteCurricular?oper=get&resource=componente_curricular-search'; + const params = {query: id}; + + $j.get(searchPath, params, function(dataResponse) { + handleAddComponenteCurricular(dataResponse, id); + }); + }; + const obrigarCamposCenso = $j('#obrigar_campos_censo').val() == '1'; function fiupMultipleSearchSize(){ $j('.search-field input').css('height', '25px'); } fiupMultipleSearchSize(); - $componentecurricular = $j('#componentecurricular'); - $selecionarTodosElement = $j('#selecionar_todos'); - $componentecurricular.trigger('chosen:updated'); - $anoLetivoField = $j('#ano'); - $serieField = $j('#ref_cod_serie'); - $turmaField = $j('#ref_cod_turma'); - $turnoField = $j('#turma_turno_id'); - $professorAreaEspecificaField = $j('#permite_lancar_faltas_componente'); + const componentecurricular = $j('#componentecurricular'); + const selecionarTodosElement = $j('#selecionar_todos'); + componentecurricular.trigger('chosen:updated'); + const anoLetivoField = $j('#ano'); + const serieField = $j('#ref_cod_serie'); + const turmaField = $j('#ref_cod_turma'); + const turnoField = $j('#turma_turno_id'); + const professorAreaEspecificaField = $j('#permite_lancar_faltas_componente'); getRegraAvaliacao(); getTurnoTurma(); - var handleGetComponenteCurricular = function(dataResponse) { + const handleGetComponenteCurricular = function (dataResponse) { setTimeout(function () { - $j.each(dataResponse['componentecurricular'], function(id, value) { + $j.each(dataResponse['componentecurricular'], function (id, value) { // Insere o componente no multipleSearch caso não exista - if (0 == $componentecurricular.children("[value=" + value + "]").length) { + if (0 == componentecurricular.children("[value=" + value + "]").length) { addComponenteCurricular(value); } else { - $componentecurricular.children("[value=" + value + "]").attr('selected', ''); + componentecurricular.children("[value=" + value + "]").attr('selected', ''); } }); - $componentecurricular.trigger('chosen:updated'); + componentecurricular.trigger('chosen:updated'); }, 1000); - } + }; - var handleAddComponenteCurricular = function(dataResponse, id) { - $componentecurricular.append(''); - $componentecurricular.children("[value=" + id + "]").attr('selected', ''); - $componentecurricular.trigger('chosen:updated'); - } + const handleAddComponenteCurricular = function (dataResponse, id) { + componentecurricular.append(''); + componentecurricular.children("[value=" + id + "]").attr('selected', ''); + componentecurricular.trigger('chosen:updated'); + }; - var addComponenteCurricular = function(id) { + $j('#ref_cod_turma').change(function () { + getTurnoTurma(); + }); - var searchPath = '/module/Api/ComponenteCurricular?oper=get&resource=componente_curricular-search'; - var params = { query : id }; + $j('#funcao_exercida').change(function () { + getTurnoTurma(); + }); - $j.get(searchPath, params, function(dataResponse) { - handleAddComponenteCurricular(dataResponse, id); - }); + const unidadesCurriculares = (data) => { + + const unidadesCurriculares = $j('#tr_unidades_curriculares'); + const funcaoExercida = $j('#funcao_exercida').val(); + + unidadesCurriculares.hide(); + if (!!data && 'estrutura_curricular' in data && + data.estrutura_curricular.length > 0 && + data.estrutura_curricular.includes("2") && + funcaoExercida && + $j.inArray($j('#funcao_exercida').val(),["1", "5"]) > -1 + ) { + filtraUnidadesCurricularesDaTurma(data); + unidadesCurriculares.show(); + } + + function filtraUnidadesCurricularesDaTurma(data) { + $j("#unidades_curriculares option").each(function() { + $j(this).prop('disabled', true)} + ).trigger('chosen:updated'); + + if ('unidade_curricular' in data && !!data.unidade_curricular) { + let unidadesCurricularesDaTurma = data.unidade_curricular.slice(1,-1).split(','); + $j("#unidades_curriculares option").each(function() { + if(unidadesCurricularesDaTurma.includes($j(this).val())){ + $j(this).prop('disabled', false) + } + }).trigger('chosen:updated'); + } + } } - var getComponenteCurricular = function() { - var $id = $j('#id'); - if ($id.val()!='') { - var additionalVars = { - id : $id.val(), + unidadesCurriculares(); + + const getComponenteCurricular = function () { + const $id = $j('#id'); + if ($id.val() != '') { + const additionalVars = { + id: $id.val(), }; - var options = { - url : getResourceUrlBuilder.buildUrl('/module/Api/componenteCurricular', 'componentecurricular-search', additionalVars), - dataType : 'json', - data : {}, - success : handleGetComponenteCurricular, + const options = { + url: getResourceUrlBuilder.buildUrl('/module/Api/componenteCurricular', 'componentecurricular-search', additionalVars), + dataType: 'json', + data: {}, + success: handleGetComponenteCurricular, }; getResource(options); } - } + }; getComponenteCurricular(); - var dependenciaAdministrativa = undefined; + let dependenciaAdministrativa = undefined; function getDependenciaAdministrativaEscola(){ - var options = { - dataType : 'json', - url : getResourceUrlBuilder.buildUrl( + const options = { + dataType: 'json', + url: getResourceUrlBuilder.buildUrl( '/module/Api/Escola', 'escola-dependencia-administrativa', - {escola_id : $j('#ref_cod_escola').val()} + {escola_id: $j('#ref_cod_escola').val()} ), - success : function(dataResponse) { + success: function (dataResponse) { dependenciaAdministrativa = parseInt(dataResponse.dependencia_administrativa); verificaObrigatoriedadeTipoVinculo(); } - } + }; getResource(options); } @@ -103,36 +144,36 @@ $j(document).ready(function() { $j('#ref_cod_escola').on('change', getDependenciaAdministrativaEscola); getDependenciaAdministrativaEscola(); - $selecionarTodosElement.on('change',function(){ + selecionarTodosElement.on('change',function(){ $j('#componentecurricular option').attr('selected', $j(this).prop('checked')); - $componentecurricular.trigger("chosen:updated"); + componentecurricular.trigger("chosen:updated"); }); $j('#funcao_exercida').on('change', verificaObrigatoriedadeTipoVinculo); - var toggleProfessorAreaEspecifica = function(tipoPresenca){ + let toggleProfessorAreaEspecifica = function (tipoPresenca) { //se o tipo de presença for falta global - if(tipoPresenca == '1'){ - $professorAreaEspecificaField.closest('tr').show(); - }else{ - $professorAreaEspecificaField.closest('tr').hide(); - $professorAreaEspecificaField.attr('checked', false); + if (tipoPresenca == '1') { + professorAreaEspecificaField.closest('tr').show(); + } else { + professorAreaEspecificaField.closest('tr').hide(); + professorAreaEspecificaField.attr('checked', false); } }; - $turmaField.on('change', function () { - getTurnoTurma(); - }); + // turmaField.on('change', function () { + // getTurnoTurma(); + // }); function getTurnoTurma() { - $turmaId = $turmaField.val(); + let turmaId = turmaField.val(); - if ($turmaId == '') { + if (turmaId == '') { toggleTurno(0); return; } - let params = {id: $turmaId}; + let params = {id: turmaId}; let options = { url: getResourceUrlBuilder.buildUrl('/module/Api/Turma', 'turma', params), dataType: 'json', @@ -141,59 +182,60 @@ $j(document).ready(function() { }; getResource(options); - }; + } function handleGetTurnoTurma(dataResponse) { toggleTurno(dataResponse['turma_turno_id']); + unidadesCurriculares(dataResponse); } function toggleTurno (turno_id) { turno_id = parseInt(turno_id, 10); if (turno_id === 4) { // 4 - Integral - $turnoField.closest('tr').show(); + turnoField.closest('tr').show(); } else { - $turnoField.closest('tr').hide(); - $turnoField.val(''); + turnoField.closest('tr').hide(); + turnoField.val(''); } - }; + } - $serieField.on('change', function(){ + serieField.on('change', function(){ getRegraAvaliacao(); }); function getRegraAvaliacao(){ - $serieId = $serieField.val(); - $anoLetivo = $anoLetivoField.val(); + const serieId = serieField.val(); + const anoLetivo = anoLetivoField.val(); - var params = { - serie_id : $serieId, - ano_letivo : $anoLetivo + const params = { + serie_id: serieId, + ano_letivo: anoLetivo }; - var options = { - url : getResourceUrlBuilder.buildUrl('/module/Api/Regra', 'regra-serie', params), - dataType : 'json', - data : {}, - success : handleGetRegraAvaliacao, + const options = { + url: getResourceUrlBuilder.buildUrl('/module/Api/Regra', 'regra-serie', params), + dataType: 'json', + data: {}, + success: handleGetRegraAvaliacao, }; getResource(options); - }; + } function handleGetRegraAvaliacao(dataResponse){ toggleProfessorAreaEspecifica(dataResponse["tipo_presenca"]); } - var submitForm = function(){ + const submitForm = function () { let canSubmit = validationUtils.validatesFields(); if (canSubmit) { acao(); } - } + }; - var $submitButton = $j('#btn_enviar'); - $submitButton.removeAttr('onclick'); + const submitButton = $j('#btn_enviar'); + submitButton.removeAttr('onclick'); $j(document.formcadastro).removeAttr('onsubmit'); - $submitButton.click(submitForm); + submitButton.click(submitForm); }); diff --git a/ieducar/modules/Cadastro/Assets/Javascripts/Turma.js b/ieducar/modules/Cadastro/Assets/Javascripts/Turma.js index fc28faaa22..17e6351675 100644 --- a/ieducar/modules/Cadastro/Assets/Javascripts/Turma.js +++ b/ieducar/modules/Cadastro/Assets/Javascripts/Turma.js @@ -40,21 +40,22 @@ let verificaEtapaEducacenso = ()=>{ } let verificaFormaOrganizacaoTurma = ()=> { - const escolarizacao = ['1', '2', '3', '24', '62']; - const tipoAtendimento = $j('#tipo_atendimento').val() == '0'; + const etapasInvalidas = ['1', '2', '3', '24', '62']; + const escolarizacao = $j('#tipo_atendimento').val() == '0'; const etapaEducacenso = $j('#etapa_educacenso').val() $j('#formas_organizacao_turma').makeUnrequired(); if (obrigarCamposCenso && - tipoAtendimento && + escolarizacao && etapaEducacenso && - !escolarizacao.includes(etapaEducacenso) + !etapasInvalidas.includes(etapaEducacenso) ) { $j('#formas_organizacao_turma').makeRequired(); } $j("#formas_organizacao_turma").prop('disabled', false); - if (!tipoAtendimento && escolarizacao.includes(etapaEducacenso)) { + + if (!escolarizacao || !etapaEducacenso || etapasInvalidas.includes(etapaEducacenso)) { $j("#formas_organizacao_turma").prop('disabled', true).val(""); } } @@ -92,6 +93,7 @@ $j('#estrutura_curricular').change(function() { habilitaUnidadeCurricular(); verificaEtapaEducacenso(); habilitaEtapaEducacenso(); + verificaFormaOrganizacaoTurma(); }); verificaLocalFuncionamentoDiferenciado(); diff --git a/ieducar/modules/ComponenteCurricular/Model/CodigoEducacenso.php b/ieducar/modules/ComponenteCurricular/Model/CodigoEducacenso.php index ce200debb1..844ae10e8c 100644 --- a/ieducar/modules/ComponenteCurricular/Model/CodigoEducacenso.php +++ b/ieducar/modules/ComponenteCurricular/Model/CodigoEducacenso.php @@ -33,6 +33,7 @@ class ComponenteCurricular_Model_CodigoEducacenso extends CoreExt_Enum 27 => 'Língua indígena', 31 => 'Língua Portuguesa como Segunda Língua', 32 => 'Estágio Curricular Supervisionado', + 33 => 'Projeto de vida', 99 => 'Outras áreas do conhecimento' ]; diff --git a/ieducar/modules/Educacenso/Assets/Javascripts/Educacenso.js b/ieducar/modules/Educacenso/Assets/Javascripts/Educacenso.js index f75e5f1a12..4a0dd0452a 100644 --- a/ieducar/modules/Educacenso/Assets/Javascripts/Educacenso.js +++ b/ieducar/modules/Educacenso/Assets/Javascripts/Educacenso.js @@ -47,7 +47,7 @@ $j(document).ready(function(){ ''+ '
'; diff --git a/ieducar/modules/HistoricoEscolar/Views/ProcessamentoApiController.php b/ieducar/modules/HistoricoEscolar/Views/ProcessamentoApiController.php index 150e1dc98b..098206e16f 100644 --- a/ieducar/modules/HistoricoEscolar/Views/ProcessamentoApiController.php +++ b/ieducar/modules/HistoricoEscolar/Views/ProcessamentoApiController.php @@ -720,7 +720,7 @@ protected function recreateHistoricoDisciplinas($historicoSequencial, $alunoId, { $this->deleteHistoricoDisplinas($alunoId, $historicoSequencial); - if ($this->getRequest()->disciplinas == 'buscar-boletim') { + if ($this->getRequest()->disciplinas === 'buscar-boletim') { $tpNota = $this->getService()->getRegra()->get('tipoNota'); $situacaoFaltasCc = $this->getService()->getSituacaoFaltas()->componentesCurriculares; $mediasCc = $this->getService()->getMediasComponentes(); @@ -783,8 +783,11 @@ protected function recreateHistoricoDisciplinas($historicoSequencial, $alunoId, if ($arrayAreaConhecimento[$componenteCurricular->area_conhecimento->id]['nota'] === null) { $arrayAreaConhecimento[$componenteCurricular->area_conhecimento->id]['nota'] = 0; } + + $arrayAreaConhecimento[$componenteCurricular->area_conhecimento->id]['nota_conceitual_numerica'] ??= 0 ; + $arrayAreaConhecimento[$componenteCurricular->area_conhecimento->id]['nota'] += $nota; - $arrayAreaConhecimento[$componenteCurricular->area_conhecimento->id]['nota_conceitual_numerica'] += $notaConceitualNumerica; + $arrayAreaConhecimento[$componenteCurricular->area_conhecimento->id]['nota_conceitual_numerica'] += is_numeric($notaConceitualNumerica) ? $notaConceitualNumerica : 0; $arrayAreaConhecimento[$componenteCurricular->area_conhecimento->id]['falta'] += $this->getFalta($situacaoFaltasCc[$ccId]); $arrayAreaConhecimento[$componenteCurricular->area_conhecimento->id]['ordenamento'] = $componenteCurricular->area_conhecimento->ordenamento; $arrayAreaConhecimento[$componenteCurricular->area_conhecimento->id]['carga_horaria_disciplina'] = $componenteCurricular->area_conhecimento->carga_horaria_disciplina; @@ -838,10 +841,7 @@ protected function recreateHistoricoDisciplinas($historicoSequencial, $alunoId, } } if ($processarMediaGeral) { - $componentesCurriculares['media_geral'] = $this->insereComponenteMediaGeral( - $historicoSequencial, - $alunoId - ); + $this->insereComponenteMediaGeral($historicoSequencial, $alunoId); } } else { $i = 0; diff --git a/ieducar/modules/TabelaArredondamento/Model/TipoArredondamentoMedia.php b/ieducar/modules/TabelaArredondamento/Model/TipoArredondamentoMedia.php index a68a551840..60a856219a 100644 --- a/ieducar/modules/TabelaArredondamento/Model/TipoArredondamentoMedia.php +++ b/ieducar/modules/TabelaArredondamento/Model/TipoArredondamentoMedia.php @@ -9,8 +9,8 @@ class TabelaArredondamento_Model_TipoArredondamentoMedia extends CoreExt_Enum protected $_data = [ self::NAO_ARREDONDAR => 'Não utilizar arredondamento para esta casa decimal', - self::ARREDONDAR_PARA_NOTA_INFERIOR => 'Arredondar para o número inteiro imediatamente inferior', - self::ARREDONDAR_PARA_NOTA_SUPERIOR => 'Arredondar para o número inteiro imediatamente superior', + self::ARREDONDAR_PARA_NOTA_INFERIOR => 'Arredondar para o número inteiro imediatamente inferior', + self::ARREDONDAR_PARA_NOTA_SUPERIOR => 'Arredondar para o número inteiro imediatamente superior', self::ARREDONDAR_PARA_NOTA_ESPECIFICA => 'Arredondar para a casa decimal específica' ]; diff --git a/ieducar/modules/TabelaArredondamento/Views/EditController.php b/ieducar/modules/TabelaArredondamento/Views/EditController.php index af43b40e00..466a362964 100644 --- a/ieducar/modules/TabelaArredondamento/Views/EditController.php +++ b/ieducar/modules/TabelaArredondamento/Views/EditController.php @@ -347,9 +347,9 @@ private function carregaCamposNotasNumericas() for ($i = 0; $i <= 9; $i++) { $valorNota = $valores[$i]; $acao = match ($valorNota->acao) { - 'Arredondar para o número inteiro imediatamente inferior' => 1, - 'Arredondar para o número inteiro imediatamente superior' => 2, - 'Arredondar para a casa decimal específica' => 3, + 'Arredondar para o número inteiro imediatamente inferior' => 1, + 'Arredondar para o número inteiro imediatamente superior' => 2, + 'Arredondar para a casa decimal específica' => 3, default => 0, }; diff --git a/public/js/enrollment-formative-itinerary.js b/public/js/enrollment-formative-itinerary.js new file mode 100644 index 0000000000..38ee06bf1e --- /dev/null +++ b/public/js/enrollment-formative-itinerary.js @@ -0,0 +1,55 @@ +habilitaComposicaoItinerario(); +habilitaCamposFormacaoTecnica(); + +$j('#itinerary_type').change(habilitaComposicaoItinerario); +$j('#itinerary_composition').change(habilitaCamposFormacaoTecnica); + +function habilitaComposicaoItinerario() { + let types = []; + + if ($j('#itinerary_type').val()) { + types = $j('#itinerary_type').val(); + } + + if (types.includes('6')) { + $j('#itinerary_composition').removeAttr('disabled'); + $j('#itinerary_composition').trigger('chosen:updated'); + addSpanRequiredField('tr_itinerary_composition'); + } else { + $j('#itinerary_composition').attr('disabled', 'disabled'); + $j('#itinerary_composition').val([]).trigger('chosen:updated'); + removeSpanRequiredField('tr_itinerary_composition'); + habilitaCamposFormacaoTecnica(); + } +} + +function habilitaCamposFormacaoTecnica() { + let compositions = []; + + if ($j('#itinerary_composition').val()) { + compositions = $j('#itinerary_composition').val(); + } + + if (compositions.includes('5')) { + $j('#itinerary_course').removeAttr('disabled'); + $j('#concomitant_itinerary').removeAttr('disabled'); + addSpanRequiredField('tr_itinerary_course'); + addSpanRequiredField('tr_concomitant_itinerary'); + } else { + $j('#itinerary_course').attr('disabled', 'disabled'); + $j('#concomitant_itinerary').attr('disabled', 'disabled'); + $j('#itinerary_course').val(''); + $j('#concomitant_itinerary').val(''); + removeSpanRequiredField('tr_itinerary_course'); + removeSpanRequiredField('tr_concomitant_itinerary'); + } +} + +function addSpanRequiredField(trElement) { + removeSpanRequiredField(trElement); + $j('#' + trElement + ' td:nth-child(1)').append('*'); +} + +function removeSpanRequiredField(trElement) { + $j('#' + trElement + ' td:nth-child(1) span').remove(); +} diff --git a/resources/views/enrollments/batch/enroll.blade.php b/resources/views/enrollments/batch/enroll.blade.php index c33edfc305..85f4f90031 100644 --- a/resources/views/enrollments/batch/enroll.blade.php +++ b/resources/views/enrollments/batch/enroll.blade.php @@ -149,6 +149,10 @@ class="registration-check" + + + +@endpush diff --git a/resources/views/enrollments/enrollmentFormativeItineraryList.blade.php b/resources/views/enrollments/enrollmentFormativeItineraryList.blade.php new file mode 100644 index 0000000000..965b13242b --- /dev/null +++ b/resources/views/enrollments/enrollmentFormativeItineraryList.blade.php @@ -0,0 +1,50 @@ +@extends('layout.default') + +@push('styles') + +@endpush + +@section('content') +
+ + + + + + + + + + + + + @foreach($registration->enrollments->sortBy('sequencial') as $enrollment) + + + + + + + + @endforeach + + + + +
Lista de enturmações da matrícula
SequencialTurmaAtivoData de enturmaçãoData de saída
iteration % 2) == 1 ? 'class="formlttd"' : 'class="formmdtd"' !!} valign="top" align="left"> + {{ $enrollment->sequencial }} + iteration % 2) == 1 ? 'class="formlttd"' : 'class="formmdtd"' !!} valign="top" align="left"> + {{ $enrollment->schoolClass->getNameAttribute() }} + iteration % 2) == 1 ? 'class="formlttd"' : 'class="formmdtd"' !!} valign="top" align="left"> + {{ $enrollment->ativo ? 'Sim' : 'Não'}} + iteration % 2) == 1 ? 'class="formlttd"' : 'class="formmdtd"' !!} valign="top" align="left"> + {{ $enrollment->date?->format('d/m/Y') }} + iteration % 2) == 1 ? 'class="formlttd"' : 'class="formmdtd"' !!} valign="top" align="left"> + {{ $enrollment->date_departed?->format('d/m/Y') }} +
+ +
+
+@endsection + + diff --git a/routes/web.php b/routes/web.php index c4125ebd4c..95193b676c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -37,6 +37,12 @@ ->name('enrollments.enroll'); Route::get('/enrollment-history/{id}', 'EnrollmentHistoryController@show') ->name('enrollments.enrollment-history'); + Route::get('/enrollment-formative-itinerary-list/{id}', 'EnrollmentFormativeItineraryController@list') + ->name('enrollments.enrollment-formative-itinerary-list'); + Route::get('/enrollment-formative-itinerary/{id}', 'EnrollmentFormativeItineraryController@viewFormativeItinerary') + ->name('enrollments.enrollment-formative-itinerary'); + Route::post('/enrollment-formative-itinerary/{id}', 'EnrollmentFormativeItineraryController@storeFormativeItinerary') + ->name('enrollments.enrollment-formative-itinerary-store'); Route::get('/educacenso/consulta', 'EducacensoController@consult') ->name('educacenso.consult'); diff --git a/src/Modules/Educacenso/Analysis/Register30TeacherAndManagerDataAnalysis.php b/src/Modules/Educacenso/Analysis/Register30TeacherAndManagerDataAnalysis.php index 6f7410e956..9e0ebd2b13 100644 --- a/src/Modules/Educacenso/Analysis/Register30TeacherAndManagerDataAnalysis.php +++ b/src/Modules/Educacenso/Analysis/Register30TeacherAndManagerDataAnalysis.php @@ -45,18 +45,26 @@ public function run() ]; } - if ($data->escolaridade == Escolaridade::EDUCACAO_SUPERIOR && empty($data->countPosGraduacao)) { - $this->messages[] = [ - 'text' => "Dados para formular o registro 30 da escola {$data->nomeEscola} não encontrados. Verificamos que a escolaridade da pessoa {$data->nomePessoa} é ensino superior, portanto é necessário informar se o(a) mesmo(a) possui alguma pós-graduação concluída.", - 'path' => '(Servidores > Cadastros > Servidores > Editar > Aba: Dados adicionais > Seção: Curso(s) Superior(es) Concluído(s) > Campo: Pós-Graduações concluídas)', - 'linkPath' => "educar_servidor_cad.php?cod_servidor={$data->codigoPessoa}&ref_cod_instituicao={$data->codigoInstituicao}", - 'fail' => true - ]; - } else { - if ($data->escolaridade == Escolaridade::EDUCACAO_SUPERIOR && $data->posGraduacaoNaoPossui && $data->countPosGraduacao > 1) { + foreach ($data->posGraduacoes as $posgraduacao) { + if ($data->escolaridade == Escolaridade::EDUCACAO_SUPERIOR && + $posgraduacao->type_id && + empty($posgraduacao->area_id) + ) { + $this->messages[] = [ + 'text' => "Dados para formular o registro 30 da escola {$data->nomeEscola} não encontrados. Verificamos que a pessoa {$data->nomePessoa} possui pós-graduação informada, portanto é necessário informar a área.", + 'path' => '(Servidores > Cadastros > Servidores > Editar > Aba: Dados adicionais > Seção: Pós-graduções concluídas > Campo: Área)', + 'linkPath' => "educar_servidor_cad.php?cod_servidor={$data->codigoPessoa}&ref_cod_instituicao={$data->codigoInstituicao}", + 'fail' => true + ]; + } + + if ($data->escolaridade == Escolaridade::EDUCACAO_SUPERIOR && + $posgraduacao->type_id && + empty($posgraduacao->completion_year) + ) { $this->messages[] = [ - 'text' => "Dados para formular o registro 30 da escola {$data->nomeEscola} possui valor inválido. Verificamos que a pós-graduação da pessoa {$data->nomePessoa} foi preenchida incorretamente.", - 'path' => '(Servidores > Cadastros > Servidores > Editar > Aba: Dados adicionais > Seção: Curso(s) Superior(es) Concluído(s) > Campo: Pós-Graduações concluídas)', + 'text' => "Dados para formular o registro 30 da escola {$data->nomeEscola} não encontrados. Verificamos que a pessoa {$data->nomePessoa} possui pós-graduação informada, portanto é necessário informaro o ano de conclusão.", + 'path' => '(Servidores > Cadastros > Servidores > Editar > Aba: Dados adicionais > Seção: Pós-graduções concluídas > Campo: Ano de conclusão)', 'linkPath' => "educar_servidor_cad.php?cod_servidor={$data->codigoPessoa}&ref_cod_instituicao={$data->codigoInstituicao}", 'fail' => true ]; diff --git a/src/Modules/Educacenso/Data/Registro00.php b/src/Modules/Educacenso/Data/Registro00.php index 0e440dd650..9489f055c9 100644 --- a/src/Modules/Educacenso/Data/Registro00.php +++ b/src/Modules/Educacenso/Data/Registro00.php @@ -3,8 +3,16 @@ namespace iEducar\Modules\Educacenso\Data; use App\Models\Educacenso\Registro00 as Registro00Model; +use iEducar\Modules\Educacenso\ExportRule\DependenciaAdministrativa; +use iEducar\Modules\Educacenso\ExportRule\EsferaAdministrativa; +use iEducar\Modules\Educacenso\ExportRule\PoderPublicoConveniado as ExportRulePoderPublicoConveniado; +use iEducar\Modules\Educacenso\ExportRule\Regulamentacao; +use iEducar\Modules\Educacenso\ExportRule\SituacaoFuncionamento; use iEducar\Modules\Educacenso\Formatters; +use iEducar\Modules\Educacenso\Model\FormasContratacaoPoderPublico; +use iEducar\Modules\Educacenso\Model\PoderPublicoConveniado; use Portabilis_Date_Utils; +use Portabilis_Utils_Database; class Registro00 extends AbstractRegistro { @@ -15,37 +23,187 @@ class Registro00 extends AbstractRegistro */ protected $model; + public $codigoInep; + public $nomeEscola; + public $situacaoFuncionamento; + /** * @param $escola * @param $ano * * @return Registro00Model */ - public function getData($escola, $ano) + public function getData($school, $year) { - $data = $this->repository->getDataForRecord00($escola, $ano); + $data = $this->repository->getDataForRecord00($school, $year); + + $models = []; + foreach ($data as $record) { + $record = $this->processData($record); + $models[] = $this->hydrateModel($record); + } + + return $models[0]; + } - $this->hydrateModel($data[0]); + /** + * @param $escola + * @param $year + * + */ + public function getExportFormatData($escola, $year) + { + $data = $this->getData($escola, $year); + $data = $this->getRecordExportData($data); - return $this->model; + return $data; } - public function getExportFormatData($escola, $ano) + /** + * @param $Registro00Model + * + * @return array + */ + public function getRecordExportData($record) + { + $this->codigoInep = $record->codigoInep; + $this->nomeEscola = $record->nome; + $this->situacaoFuncionamento = $record->situacaoFuncionamento; + + $record = SituacaoFuncionamento::handle($record); + $record = ExportRulePoderPublicoConveniado::handle($record); + $record = DependenciaAdministrativa::handle($record); + $record = Regulamentacao::handle($record); + $record = EsferaAdministrativa::handle($record); + + return [ + $record->registro, // 1 Tipo de registro + $record->codigoInep, // 2 Código de escola - Inep + $record->situacaoFuncionamento, // 3 Situação de funcionamento + $record->inicioAnoLetivo, // 4 Data de início do ano letivo + $record->fimAnoLetivo, // 5 Data de término do ano letivo + $record->nome, // 6 Nome da escola + $record->cep, // 7 CEP + $record->codigoIbgeMunicipio, // 8 Município + $record->codigoIbgeDistrito, // 9 Distrito + $record->logradouro, // 10 Endereço + $record->numero, // 11 Número + $record->complemento, // 12 Complemento + $record->bairro, // 13 Bairro + $record->ddd, // 14 DDD + $record->telefone, // 15 Telefone + $record->telefoneOutro, // 16 Outro telefone de contato + $record->email, // 17 Endereço eletrônico (e-mail) da escola + $record->orgaoRegional, // 18 Código do órgão regional de ensino + $record->zonaLocalizacao, // 19 Localização/Zona da escola + $record->localizacaoDiferenciada, // 20 Localização diferenciada da escola + $record->dependenciaAdministrativa, // 21 Dependência administrativa + $record->orgaoEducacao, // 22 Secretaria de Educação/Ministério da Educação + $record->orgaoSeguranca, // 23 Secretaria de Segurança Pública/Forças Armadas/Militar + $record->orgaoSaude, // 24 Secretaria da Saúde/Ministério da Saúde + $record->orgaoOutro, // 25 Outro órgão da administração pública + $record->mantenedoraEmpresa, // 26 Empresa, grupos empresariais do setor privado ou pessoa física + $record->mantenedoraSindicato, // 27 Sindicatos de trabalhadores ou patronais, associações, cooperativas + $record->mantenedoraOng, // 28 Organização não governamental (ONG) - nacional ou internacional + $record->mantenedoraInstituicoes, // 29 Instituição sem fins lucrativos + $record->mantenedoraSistemaS, // 30 Sistema S (Sesi, Senai, Sesc, outros) + $record->mantenedoraOscip, // 31 Organização da Sociedade Civil de Interesse Público (Oscip) + $record->categoriaEscolaPrivada, // 32 Categoria da escola privada + $record->poderPublicoConveniado ? (int) in_array(PoderPublicoConveniado::ESTADUAL, $record->poderPublicoConveniado) : '', // 33 Secretaria estadual + $record->poderPublicoConveniado ? (int) in_array(PoderPublicoConveniado::MUNICIPAL, $record->poderPublicoConveniado) : '', // 34 Secretaria Municipal + $record->poderPublicoConveniado ? (int) in_array(PoderPublicoConveniado::NAO_POSSUI, $record->poderPublicoConveniado) : '', // 35 Não possui parceria ou convênio + $record->formasContratacaoPoderPublico ? (int) in_array(FormasContratacaoPoderPublico::TERMO_COLABORACAO, $record->formasContratacaoPoderPublico) : '', // 36 Termo de colaboração (Lei nº 13.019/2014) + $record->formasContratacaoPoderPublico ? (int) in_array(FormasContratacaoPoderPublico::TERMO_FOMENTO, $record->formasContratacaoPoderPublico) : '', // 37 Termo de fomento (Lei nº 13.019/2014) + $record->formasContratacaoPoderPublico ? (int) in_array(FormasContratacaoPoderPublico::ACORDO_COOPERACAO, $record->formasContratacaoPoderPublico) : '', // 38 Acordo de cooperação (Lei nº 13.019/2014) + $record->formasContratacaoPoderPublico ? (int) in_array(FormasContratacaoPoderPublico::CONTRATO_PRESTACAO_SERVICO, $record->formasContratacaoPoderPublico) : '', // 39 Contrato de prestação de serviço + $record->formasContratacaoPoderPublico ? (int) in_array(FormasContratacaoPoderPublico::TERMO_COOPERACAO_TECNICA, $record->formasContratacaoPoderPublico) : '', // 40 Termo de cooperação técnica e financeira + $record->formasContratacaoPoderPublico ? (int) in_array(FormasContratacaoPoderPublico::CONTRATO_CONSORCIO, $record->formasContratacaoPoderPublico) : '', // 41 Contrato de consórcio público/Convênio de cooperação + $record->qtdMatAtividadesComplentar, // 42 Atividade complementar + $record->qtdMatAee, // 43 Atendimento educacional especializado + $record->qtdMatCrecheParcial, // 44 Ensino Regular - Creche - Parcial + $record->qtdMatCrecheIntegral, // 45 Ensino Regular - Creche - Integral + $record->qtdMatPreEscolaParcial, // 46 Ensino Regular - Pré-escola - Parcial + $record->qtdMatPreEscolaIntegral, // 47 Ensino Regular - Pré-escola - Integral + $record->qtdMatFundamentalIniciaisParcial, // 48 Ensino Regular - Ensino Fundamental - Anos Iniciais - Parcial + $record->qtdMatFundamentalIniciaisIntegral, // 49 Ensino Regular - Ensino Fundamental - Anos Iniciais - Integral + $record->qtdMatFundamentalFinaisParcial, // 50 Ensino Regular - Ensino Fundamental - Anos Finais - Parcial + $record->qtdMatFundamentalFinaisIntegral, // 51 Ensino Regular - Ensino Fundamental - Anos Finais - Integral + $record->qtdMatEnsinoMedioParcial, // 52 Ensino Regular - Ensino Médio - Parcial + $record->qtdMatEnsinoMedioIntegral, // 53 Ensino Regular - Ensino Médio - Integral + $record->qdtMatClasseEspecialParcial, // 54 Educação Especial - Classe especial - Parcial + $record->qdtMatClasseEspecialIntegral, // 55 Educação Especial - Classe especial - Integral + $record->qdtMatEjaFundamental, // 56 Educação de Jovens e Adultos (EJA) - Ensino fundamental + $record->qtdMatEjaEnsinoMedio, // 57 Educação de Jovens e Adultos (EJA) - Ensino médio + $record->qtdMatEdProfIntegradaEjaFundamentalParcial, // 58 Educação Profissional - Qualificação profissional - Integrada à educação de jovens e adultos no ensino fundamental - Parcial + $record->qtdMatEdProfIntegradaEjaFundamentalIntegral, // 59 Educação Profissional - Qualificação profissional - Integrada à educação de jovens e adultos no ensino fundamental - Integral + $record->qtdMatEdProfIntegradaEjaNivelMedioParcial, // 60 Educação Profissional - Qualificação profissional técnica - Integrada à educação de jovens e adultos de nível médio - Parcial + $record->qtdMatEdProfIntegradaEjaNivelMedioIntegral, // 61 Educação Profissional - Qualificação profissional técnica - Integrada à educação de jovens e adultos de nível médio - Integral + $record->qtdMatEdProfConcomitanteEjaNivelMedioParcial, // 62 Educação Profissional - Qualificação profissional técnica - Concomitante à educação de jovens e adultos de nível médio - Parcial + $record->qtdMatEdProfConcomitanteEjaNivelMedioIntegral, // 63 Educação Profissional - Qualificação profissional técnica - Concomitante à educação de jovens e adultos de nível médio - Integral + $record->qtdMatEdProfIntercomentarEjaNivelMedioParcial, // 64 Educação Profissional - Qualificação profissional técnica - Concomitante intercomplementar à educação de jovens e adultos de nível médio - Parcial + $record->qtdMatEdProfIntercomentarEjaNivelMedioIntegral, // 65 Educação Profissional - Qualificação profissional técnica - Concomitante intercomplementar à educação de jovens e adultos de nível médio - Integral + $record->qtdMatEdProfIntegradaEnsinoMedioParcial, // 66 Educação Profissional - Qualificação profissional técnica - Integrada ao ensino médio - Parcial + $record->qtdMatEdProfIntegradaEnsinoMedioIntegral, // 67 Educação Profissional - Qualificação profissional técnica - Integrada ao ensino médio - Integral + $record->qtdMatEdProfConcomitenteEnsinoMedioParcial, // 68 Educação Profissional - Qualificação profissional técnica - Concomitante ao ensino médio - Parcial + $record->qtdMatEdProfConcomitenteEnsinoMedioIntegral, // 69 Educação Profissional - Qualificação profissional técnica - Concomitante ao ensino médio - Integral + $record->qtdMatEdProfIntercomplementarEnsinoMedioParcial, // 70 Educação Profissional - Qualificação profissional técnica - Concomitante intercomplementar ao ensino médio - Parcial + $record->qtdMatEdProfIntercomplementarEnsinoMedioIntegral, // 71 Educação Profissional - Qualificação profissional técnica - Concomitante intercomplementar ao ensino médio - Integral + $record->qtdMatEdProfTecnicaIntegradaEnsinoMedioParcial, // 72 Educação Profissional - Educação profissional técnica de nível médio - Integrada ao ensino médio - Parcial + $record->qtdMatEdProfTecnicaIntegradaEnsinoMedioIntegral, // 73 Educação Profissional - Educação profissional técnica de nível médio - Integrada ao ensino médio - Integral + $record->qtdMatEdProfTecnicaConcomitanteEnsinoMedioParcial, // 74 Educação Profissional - Educação profissional técnica de nível médio - Concomitante ao ensino médio - Parcial + $record->qtdMatEdProfTecnicaConcomitanteEnsinoMedioIntegral, // 75 Educação Profissional - Educação profissional técnica de nível médio - Concomitante ao ensino médio - Integral + $record->qtdMatEdProfTecnicaIntercomplementarEnsinoMedioParcial, // 76 Educação Profissional - Educação profissional técnica de nível médio - Concomitante intercomplementar ao ensino médio - Parcial + $record->qtdMatEdProfTecnicaIntercomplementarEnsinoMedioItegral, // 77 Educação Profissional - Educação profissional técnica de nível médio - Concomitante intercomplementar ao ensino médio - Integral + $record->qtdMatEdProfTecnicaSubsequenteEnsinoMedio, // 78 Educação Profissional - Educação profissional técnica de nível médio - Subsequente ao ensino médio + $record->qtdMatEdProfTecnicaIntegradaEjaNivelMedioParcial, // 79 Educação Profissional - Educação profissional técnica de nível médio - Integrada à educação de jovens e adultos de nível médio - Parcial + $record->qtdMatEdProfTecnicaIntegradaEjaNivelMedioIntegral, // 80 Educação Profissional - Educação profissional técnica de nível médio - Integrada à educação de jovens e adultos de nível médio - Integral + $record->qtdMatEdProfTecnicaConcomitanteEjaNivelMedioParcial, // 81 Educação Profissional - Educação profissional técnica de nível médio - Concomitante à educação de jovens e adultos de nível médio - Parcial + $record->qtdMatEdProfTecnicaConcomitanteEjaNivelMedioIntegral, // 82 Educação Profissional - Educação profissional técnica de nível médio - Concomitante à educação de jovens e adultos de nível médio - Integral + $record->qtdMatEdProfTecnicaIntercomplementarEjaNivelMedioParcial, // 83 Educação Profissional - Educação profissional técnica de nível médio - Concomitante intercomplementar à educação de jovens e adultos de nível médio - Parcial + $record->qtdMatEdProfTecnicaIntercomplementarEjaNivelMedioIntegral, // 84 Educação Profissional - Educação profissional técnica de nível médio - Concomitante intercomplementar à educação de jovens e adultos de nível médio - Integral + $record->cnpjMantenedoraPrincipal, // 85 CNPJ da mantenedora principal da escola privada + $record->cnpjEscolaPrivada, // 86 Número do CNPJ da escola privada + $record->regulamentacao, // 87 Regulamentação/autorização no conselho ou órgão municipal, estadual ou federal de educaçãof + $record->esferaFederal, // 88 Federal + $record->esferaEstadual, // 89 Estadual + $record->esferaMunicipal, // 90 Municipal + $record->unidadeVinculada, // 91 Unidade vinculada à escola de educação básica ou unidade ofertante de educação superior + $record->inepEscolaSede, // 92 Código da Escola Sede + $record->codigoIes, // 93 Código da IES + ]; + } + + private function processData($data) + { + $data->codigoInep = substr($data->codigoInep, 0, 8); + $data->inicioAnoLetivo = Portabilis_Date_Utils::pgSQLToBr($data->inicioAnoLetivo); + $data->fimAnoLetivo = Portabilis_Date_Utils::pgSQLToBr($data->fimAnoLetivo); + $data->nome = $this->convertStringToCenso($data->nome); + $data->logradouro = $this->convertStringToCenso($data->logradouro); + $data->numero = $this->convertStringToCenso($data->numero); + $data->complemento = $this->convertStringToCenso($data->complemento); + $data->bairro = $this->convertStringToCenso($data->bairro); + $data->email = mb_strtoupper($data->email); + $data->orgaoRegional = ($data->orgaoRegional ? str_pad($data->orgaoRegional, 5, '0', STR_PAD_LEFT) : null); + $data->cnpjEscolaPrivada = $this->cnpjToCenso($data->cnpjEscolaPrivada); + $data->cnpjMantenedoraPrincipal = $this->cnpjToCenso($data->cnpjMantenedoraPrincipal); + $data->poderPublicoConveniado = Portabilis_Utils_Database::pgArrayToArray($data->poderPublicoConveniado); + $data->formasContratacaoPoderPublico = Portabilis_Utils_Database::pgArrayToArray($data->formasContratacaoPoderPublico); + + return $data; + } + + /** + * @param $data + */ + protected function hydrateModel($data) { - $model = $this->getData($escola, $ano); - - $this->model->codigoInep = substr($this->model->codigoInep, 0, 8); - $this->model->inicioAnoLetivo = Portabilis_Date_Utils::pgSQLToBr($this->model->inicioAnoLetivo); - $this->model->fimAnoLetivo = Portabilis_Date_Utils::pgSQLToBr($this->model->fimAnoLetivo); - $this->model->nome = $this->convertStringToCenso($this->model->nome); - $this->model->logradouro = $this->convertStringToCenso($this->model->logradouro); - $this->model->numero = $this->convertStringToCenso($this->model->numero); - $this->model->complemento = $this->convertStringToCenso($this->model->complemento); - $this->model->bairro = $this->convertStringToCenso($this->model->bairro); - $this->model->email = mb_strtoupper($this->model->email); - $this->model->orgaoRegional = ($this->model->orgaoRegional ? str_pad($this->model->orgaoRegional, 5, '0', STR_PAD_LEFT) : null); - $this->model->cnpjEscolaPrivada = $this->cnpjToCenso($this->model->cnpjEscolaPrivada); - $this->model->cnpjMantenedoraPrincipal = $this->cnpjToCenso($this->model->cnpjMantenedoraPrincipal); + $model = clone $this->model; + foreach ($data as $field => $value) { + if (property_exists($model, $field)) { + $model->$field = $value; + } + } return $model; } diff --git a/src/Modules/Educacenso/Data/Registro10.php b/src/Modules/Educacenso/Data/Registro10.php index 82822410e8..3104f80b1f 100644 --- a/src/Modules/Educacenso/Data/Registro10.php +++ b/src/Modules/Educacenso/Data/Registro10.php @@ -33,174 +33,174 @@ public function getExportFormatData($escola) $data = $this->getData($escola); $exportData = [ - '10', // 1 - $data->codigoInep,// 2 - $data->predioEscolar() ? 1 : 0,// 3 - $data->salasOutraEscola() ? 1 : 0, // 4 - $data->galpao() ? 1 : 0, // 5 - $data->unidadeAtendimentoSocioeducativa() ? 1 : 0, // 6 - $data->unidadePrisional() ? 1 : 0, // 7 - $data->outros() ? 1 : 0, // 8 - $data->predioEscolar() ? ($data->condicao ?: 0) : null, // 9 - $data->predioEscolar() ? $data->predioCompartilhadoOutraEscola : null, // 10 - $data->predioEscolar() && $data->predioCompartilhadoOutraEscola ? $data->codigoInepEscolaCompartilhada : null, // 11 - $data->predioEscolar() && $data->predioCompartilhadoOutraEscola ? $data->codigoInepEscolaCompartilhada2 : null, // 12 - $data->predioEscolar() && $data->predioCompartilhadoOutraEscola ? $data->codigoInepEscolaCompartilhada3 : null, // 13 - $data->predioEscolar() && $data->predioCompartilhadoOutraEscola ? $data->codigoInepEscolaCompartilhada4 : null, // 14 - $data->predioEscolar() && $data->predioCompartilhadoOutraEscola ? $data->codigoInepEscolaCompartilhada5 : null, // 15 - $data->predioEscolar() && $data->predioCompartilhadoOutraEscola ? $data->codigoInepEscolaCompartilhada6 : null, // 16 - $data->aguaPotavelConsumo, // 17 - $data->aguaRedePublica, // 18 - $data->aguaPocoArtesiano, // 19 - $data->aguaCacimbaCisternaPoco, // 20 - $data->aguaFonteRio, // 21 - $data->aguaInexistente, // 22 - $data->energiaRedePublica, // 23 - $data->energiaGerador, // 24 - $data->energiaOutros, // 25 - $data->energiaInexistente, // 26 - $data->esgotoRedePublica, // 27 - $data->esgotoFossaComum, // 28 - $data->esgotoFossaRudimentar, // 29 - $data->esgotoInexistente, // 30 - $data->lixoColetaPeriodica, // 31 - $data->lixoQueima, // 32 - $data->lixoEnterra, // 33 - $data->lixoDestinacaoPoderPublico, // 34 - $data->lixoJogaOutraArea, // 35 - $data->tratamentoLixoSeparacao() ?: 0, // 36 - $data->tratamentoLixoReaproveitamento() ?: 0, // 37 - $data->tratamentoLixoReciclagem() ?: 0, // 38 - $data->tratamentoLixoNaoFaz() ?: 0, // 39 - $data->salasFuncionaisAlmoxarifado() ?: 0, // 40 - $data->areasExternasAreaVerde() ?: 0, // 41 - $data->salasGeraisAuditorio() ?: 0, // 42 - $data->banheirosBanheiro() ?: 0, // 43 - $data->banheirosBanheiroAcessivel() ?: 0, // 44 - $data->banheirosBanheiroEducacaoInfantil() ?: 0, // 45 - $data->banheirosBanheiroFuncionarios() ?: 0, // 46 - $data->banheirosBanheiroChuveiro() ?: 0, // 47 - $data->salasGeraisBiblioteca() ?: 0, // 48 - $data->salasFuncionaisCozinha() ?: 0, // 49 - $data->salasFuncionaisDespensa() ?: 0, // 50 - $data->dormitoriosAluno() ?: 0, // 51 - $data->dormitoriosProfessor() ?: 0, // 52 - $data->laboratoriosCiencias() ?: 0, // 53 - $data->laboratoriosInformatica() ?: 0, // 54 - $data->areasExternasParqueInfantil() ?: 0, // 55 - $data->areasExternasPatioCoberto() ?: 0, // 56 - $data->areasExternasPatioDescoberto() ?: 0, // 57 - $data->areasExternasPiscina() ?: 0, // 58 - $data->areasExternasQuadraCoberta() ?: 0, // 59 - $data->areasExternasQuadraDescoberta() ?: 0, // 60 - $data->salasFuncionaisRefeitorio() ?: 0, // 61 - $data->salasAtividadesRepousoAluno() ?: 0, // 62 - $data->salasAtividadesAtelie() ?: 0, // 63 - $data->salasAtividadesMusica() ?: 0, // 64 - $data->salasAtividadesEstudioDanca() ?: 0, // 65 - $data->salasAtividadesMultiuso() ?: 0, // 66 - $data->areasExternasTerreirao() ?: 0, // 67 - $data->areasExternasViveiro() ?: 0, // 68 - $data->salasGeraisSalaDiretoria() ?: 0, // 69 - $data->salasAtividadesLeitura() ?: 0, // 70 - $data->salasGeraisSalaProfessores() ?: 0, // 71 - $data->salasAtividadesRecursosAee() ?: 0, // 72 - $data->salasGeraisSalaSecretaria() ?: 0, // 73 - $data->naoPossuiDependencias() ?: 0, // 74 - $data->recursosAcessibilidadeCorrimao() ?: 0, // 75 - $data->recursosAcessibilidadeElevador() ?: 0, // 76 - $data->recursosAcessibilidadePisosTateis() ?: 0, // 77 - $data->recursosAcessibilidadePortasVaoLivre() ?: 0, // 78 - $data->recursosAcessibilidadeRampas() ?: 0, // 79 - $data->recursosAcessibilidadeSinalizacaoSonora() ?: 0, // 80 - $data->recursosAcessibilidadeSinalizacaoTatil() ?: 0, // 81 - $data->recursosAcessibilidadeSinalizacaoVisual() ?: 0, // 82 - $data->recursosAcessibilidadeNenhum() ?: 0, // 83 - $data->numeroSalasUtilizadasDentroPredio, // 84 - $data->numeroSalasUtilizadasForaPredio, // 85 - $data->numeroSalasUtilizadasDentroPredio || $data->numeroSalasUtilizadasForaPredio ? $data->numeroSalasClimatizadas : null, // 86 - $data->numeroSalasUtilizadasDentroPredio || $data->numeroSalasUtilizadasForaPredio ? $data->numeroSalasAcessibilidade : null, // 87 - $data->possuiAntenaParabolica() ?: 0, // 88 - $data->possuiComputadores() ?: 0, // 89 - $data->possuiCopiadora() ?: 0, // 90 - $data->possuiImpressoras() ?: 0, // 91 - $data->possuiImpressorasMultifuncionais() ?: 0, // 92 - $data->possuiScanner() ?: 0, // 93 - $data->dvds ?: null, // 94 - $data->aparelhosDeSom ?: null, // 95 - $data->televisoes ?: null, // 96 - $data->lousasDigitais ?: null, // 97 - $data->projetoresDigitais ?: null, // 98 - $data->possuiComputadores() ? $data->quantidadeComputadoresAlunosMesa : null, // 99 - $data->possuiComputadores() ? $data->quantidadeComputadoresAlunosPortateis : null, // 100 - $data->possuiComputadores() ? $data->quantidadeComputadoresAlunosTablets : null, // 101 - $data->usoInternetAdministrativo() ?: 0, // 102 - $data->usoInternetProcessosEnsino() ?: 0, // 103 - $data->usoInternetAlunos() ?: 0, // 104 - $data->usoInternetComunidade() ?: 0, // 105 - $data->usoInternetNaoPossui() ?: 0, // 106 - $data->equipamentosAcessoInternetComputadorMesa() ?: 0, // 107 - $data->equipamentosAcessoInternetDispositivosPessoais() ?: 0, // 108 - $data->usoInternetNaoPossui() ? null : ($data->acessoInternet ?: 0), // 109 - ($data->possuiComputadores() || $data->possuiComputadoresDeMesaTabletsEPortateis()) ? ($data->redeLocalACabo() ?: 0) : null, // 110 - ($data->possuiComputadores() || $data->possuiComputadoresDeMesaTabletsEPortateis()) ? ($data->redeLocalWireless() ?: 0) : null, // 111 - ($data->possuiComputadores() || $data->possuiComputadoresDeMesaTabletsEPortateis()) ? ($data->redeLocalNenhuma() ?: 0) : null, // 112 - $data->qtdAuxiliarAdministrativo ?: null, // 113 - $data->qtdAuxiliarServicosGerais ?: null, // 114 - $data->qtdBibliotecarios ?: null, // 115 - $data->qtdBombeiro ?: null, // 116 - $data->qtdCoordenadorTurno ?: null, // 117 - $data->qtdFonoaudiologo ?: null, // 118 - $data->qtdNutricionistas ?: null, // 119 - $data->qtdPsicologo ?: null, // 120 - $data->qtdProfissionaisPreparacao ?: null, // 121 - $data->qtdApoioPedagogico ?: null, // 122 - $data->qtdSecretarioEscolar ?: null, // 123 - $data->qtdSegurancas ?: null, // 124 - $data->qtdTecnicos ?: null, // 125 - $data->qtdViceDiretor ?: null, // 126 - $data->qtdOrientadorComunitario ?: null, // 127 - $data->alimentacaoEscolarAlunos, // 128 - $data->organizacaoEnsinoSerieAno() ?: 0, // 129 - $data->organizacaoEnsinoPeriodosSemestrais() ?: 0, // 130 - $data->organizacaoEnsinoCliclosEnsinoFundamental() ?: 0, // 131 - $data->organizacaoEnsinoGruposNaoSeriados() ?: 0, // 132 - $data->organizacaoEnsinoModulos() ?: 0, // 133 - $data->organizacaoEnsinoAlternanciaRegular() ?: 0, // 134 - $data->instrumentosPedagogicosAcervoMultimidia() ?: 0, // 135 - $data->instrumentosPedagogicosBrinquedrosEducacaoInfantil() ?: 0, // 136 - $data->instrumentosPedagogicosMateriaisCientificos() ?: 0, // 137 - $data->instrumentosPedagogicosAmplificacaoDifusaoSom() ?: 0, // 138 - $data->instrumentosPedagogicosInstrumentosMusicais() ?: 0, // 139 - $data->instrumentosPedagogicosJogosEducativos() ?: 0, // 140 - $data->instrumentosPedagogicosMateriaisAtividadesCulturais() ?: 0, // 141 - $data->instrumentosPedagogicosMateriaisPraticaDesportiva() ?: 0, // 142 - $data->instrumentosPedagogicosMateriaisEducacaoIndigena() ?: 0, // 143 - $data->instrumentosPedagogicosMateriaisRelacoesEtnicosRaciais() ?: 0, // 144 - $data->instrumentosPedagogicosMateriaisEducacaoCampo() ?: 0, // 145 - $data->educacaoIndigena, // 146 - $data->educacaoIndigena ? ($data->linguaMinistradaIndigena() ?: 0) : null, // 147 - $data->educacaoIndigena ? ($data->linguaMinistradaPortugues() ?: 0) : null, // 148 - $data->educacaoIndigena && $data->linguaMinistradaIndigena() ? ($data->codigoLinguaIndigena[0] ?? null) : null, // 149 - $data->educacaoIndigena && $data->linguaMinistradaIndigena() ? ($data->codigoLinguaIndigena[1] ?? null) : null, // 150 - $data->educacaoIndigena && $data->linguaMinistradaIndigena() ? ($data->codigoLinguaIndigena[2] ?? null) : null, // 151 - $data->exameSelecaoIngresso ?: 0, // 152 - $data->exameSelecaoIngresso ? ($data->reservaVagasCotasAutodeclaracaoPpi() ?: 0) : null, // 153 - $data->exameSelecaoIngresso ? ($data->reservaVagasCotasCondicaoRenda() ?: 0) : null, // 154 - $data->exameSelecaoIngresso ? ($data->reservaVagasCotasEscolaPublica() ?: 0) : null, // 155 - $data->exameSelecaoIngresso ? ($data->reservaVagasCotasPcd() ?: 0) : null, // 156 - $data->exameSelecaoIngresso ? ($data->reservaVagasCotasOutros() ?: 0) : null, // 157 - $data->exameSelecaoIngresso ? ($data->reservaVagasCotasNaoPossui() ?: 0) : null, // 158 - empty($data->url) ? 0 : 1, // 159 - $data->compartilhaEspacosAtividadesIntegracao ?: 0, // 160 - $data->usaEspacosEquipamentosAtividadesRegulares ?: 0, // 161 - $data->orgaosColegiadosAssociacaoPais() ?: 0, // 162 - $data->orgaosColegiadosAssociacaoPaisEMestres() ?: 0, // 163 - $data->orgaosColegiadosConselhoEscolar() ?: 0, // 164 - $data->orgaosColegiadosGremioEstudantil() ?: 0, // 165 - $data->orgaosColegiadosOutros() ?: 0, // 166 - $data->orgaosColegiadosNenhum() ?: 0, // 167 - $data->projetoPoliticoPedagogico ?: 0, // 168 + '10', // 1 Tipo de registro + $data->codigoInep,// 2 Código de escola - Inep + $data->predioEscolar() ? 1 : 0,// 3 Prédio escolar + $data->salasOutraEscola() ? 1 : 0, // 4 Sala(s) em outra escola + $data->galpao() ? 1 : 0, // 5 Galpão/ rancho/ paiol/ barracão + $data->unidadeAtendimentoSocioeducativa() ? 1 : 0, // 6 Unidade de atendimento Socioeducativa + $data->unidadePrisional() ? 1 : 0, // 7 Unidade Prisional + $data->outros() ? 1 : 0, // 8 Outros + $data->predioEscolar() ? ($data->condicao ?: 0) : null, // 9 Forma de ocupação do prédio + $data->predioEscolar() ? $data->predioCompartilhadoOutraEscola : null, // 10 Prédio escolar compartilhado com outra escola + $data->predioEscolar() && $data->predioCompartilhadoOutraEscola ? $data->codigoInepEscolaCompartilhada : null, // 11 Código da escola com a qual compartilha (1) + $data->predioEscolar() && $data->predioCompartilhadoOutraEscola ? $data->codigoInepEscolaCompartilhada2 : null, // 12 Código da escola com a qual compartilha (2) + $data->predioEscolar() && $data->predioCompartilhadoOutraEscola ? $data->codigoInepEscolaCompartilhada3 : null, // 13 Código da escola com a qual compartilha (3) + $data->predioEscolar() && $data->predioCompartilhadoOutraEscola ? $data->codigoInepEscolaCompartilhada4 : null, // 14 Código da escola com a qual compartilha (4) + $data->predioEscolar() && $data->predioCompartilhadoOutraEscola ? $data->codigoInepEscolaCompartilhada5 : null, // 15 Código da escola com a qual compartilha (5) + $data->predioEscolar() && $data->predioCompartilhadoOutraEscola ? $data->codigoInepEscolaCompartilhada6 : null, // 16 Código da escola com a qual compartilha (6) + $data->aguaPotavelConsumo, // 17 Fornece água potável para o consumo humano + $data->aguaRedePublica, // 18 Rede pública + $data->aguaPocoArtesiano, // 19 Poço artesiano + $data->aguaCacimbaCisternaPoco, // 20 Cacimba/ cisterna / poço + $data->aguaFonteRio, // 21 Fonte/ rio / igarapé/ riacho/ córrego. + $data->aguaInexistente, // 22 Não há abastecimento de água + $data->energiaRedePublica, // 23 Rede pública + $data->energiaGerador, // 24 Gerador movido a combustível fóssil + $data->energiaOutros, // 25 Fontes de energia renováveis ou alternativas (gerador a biocombustível e/ou biodigestores, eólica, solar, outras) + $data->energiaInexistente, // 26 Não há energia elétrica + $data->esgotoRedePublica, // 27 Rede pública + $data->esgotoFossaComum, // 28 Fossa séptica + $data->esgotoFossaRudimentar, // 29 Fossa rudimentar/comum + $data->esgotoInexistente, // 30 Não há esgotamento sanitário + $data->lixoColetaPeriodica, // 31 Serviço de coleta + $data->lixoQueima, // 32 Queima + $data->lixoEnterra, // 33 Enterra + $data->lixoDestinacaoPoderPublico, // 34 Leva a uma destinação final licenciada pelo poder público + $data->lixoJogaOutraArea, // 35 Descarta em outra área + $data->tratamentoLixoSeparacao() ?: 0, // 36 Separação do lixo/resíduos + $data->tratamentoLixoReaproveitamento() ?: 0, // 37 Reaproveitamento/reutilização + $data->tratamentoLixoReciclagem() ?: 0, // 38 Reciclagem + $data->tratamentoLixoNaoFaz() ?: 0, // 39 Não faz tratamento + $data->salasFuncionaisAlmoxarifado() ?: 0, // 40 Almoxarifado + $data->areasExternasAreaVerde() ?: 0, // 41 Área verde + $data->salasGeraisAuditorio() ?: 0, // 42 Auditório + $data->banheirosBanheiro() ?: 0, // 43 Banheiro + $data->banheirosBanheiroAcessivel() ?: 0, // 44 Banheiro acessível adequado ao uso de pessoas com deficiência ou mobilidade reduzida + $data->banheirosBanheiroEducacaoInfantil() ?: 0, // 45 Banheiro adequado à educação infantil + $data->banheirosBanheiroFuncionarios() ?: 0, // 46 Banheiro exclusivo para os funcionários + $data->banheirosBanheiroChuveiro() ?: 0, // 47 Banheiro ou vestiário com chuveiro + $data->salasGeraisBiblioteca() ?: 0, // 48 Biblioteca + $data->salasFuncionaisCozinha() ?: 0, // 49 Cozinha + $data->salasFuncionaisDespensa() ?: 0, // 50 Despensa + $data->dormitoriosAluno() ?: 0, // 51 Dormitório de aluno(a) + $data->dormitoriosProfessor() ?: 0, // 52 Dormitório de professor(a) + $data->laboratoriosCiencias() ?: 0, // 53 Laboratório de ciências + $data->laboratoriosInformatica() ?: 0, // 54 Laboratório de informática + $data->laboratoriosEducacaoProfissional() ?: 0, // 55 Laboratório específico para a educação profissional + $data->areasExternasParqueInfantil() ?: 0, // 56 Parque infantil + $data->areasExternasPatioCoberto() ?: 0, // 57 Pátio coberto + $data->areasExternasPatioDescoberto() ?: 0, // 58 Pátio descoberto + $data->areasExternasPiscina() ?: 0, // 59 Piscina + $data->areasExternasQuadraCoberta() ?: 0, // 60 Quadra de esportes coberta + $data->areasExternasQuadraDescoberta() ?: 0, // 61 Quadra de esportes descoberta + $data->salasFuncionaisRefeitorio() ?: 0, // 62 Refeitório + $data->salasAtividadesRepousoAluno() ?: 0, // 63 Sala de repouso para aluno(a) + $data->salasAtividadesAtelie() ?: 0, // 64 Sala/ateliê de artes + $data->salasAtividadesMusica() ?: 0, // 65 Sala de música/coral + $data->salasAtividadesEstudioDanca() ?: 0, // 66 Sala/estúdio de dança + $data->salasAtividadesMultiuso() ?: 0, // 67 Sala multiuso (música, dança e artes) + $data->areasExternasTerreirao() ?: 0, // 68 Terreirão (área para prática desportiva e recreação sem cobertura, sem piso e sem edificações) + $data->areasExternasViveiro() ?: 0, // 69 Viveiro/criação de animais + $data->salasGeraisSalaDiretoria() ?: 0, // 70 Sala de diretoria + $data->salasAtividadesLeitura() ?: 0, // 71 Sala de Leitura + $data->salasGeraisSalaProfessores() ?: 0, // 72 Sala de professores + $data->salasAtividadesRecursosAee() ?: 0, // 73 Sala de recursos multifuncionais para atendimento educacional especializado (AEE) + $data->salasGeraisSalaSecretaria() ?: 0, // 74 Sala de Secretaria + $data->salasAtividadesEducacaoProfissional() ?: 0, // 75 Salas de oficinas da educação profissional + $data->naoPossuiDependencias() ?: 0, // 76 Nenhuma das dependências relacionadas + $data->recursosAcessibilidadeCorrimao() ?: 0, // 77 Corrimão e guarda-corpos + $data->recursosAcessibilidadeElevador() ?: 0, // 78 Elevador + $data->recursosAcessibilidadePisosTateis() ?: 0, // 79 Pisos táteis + $data->recursosAcessibilidadePortasVaoLivre() ?: 0, // 80 Portas com vão livre de no mínimo 80 cm + $data->recursosAcessibilidadeRampas() ?: 0, // 81 Rampas + $data->recursosAcessibilidadeSinalizacaoSonora() ?: 0, // 82 Sinalização sonora + $data->recursosAcessibilidadeSinalizacaoTatil() ?: 0, // 83 Sinalização tátil + $data->recursosAcessibilidadeSinalizacaoVisual() ?: 0, // 84 Sinalização visual (piso/paredes) + $data->recursosAcessibilidadeNenhum() ?: 0, // 85 Nenhum dos recursos de acessibilidade listados + $data->predioEscolar() ? $data->numeroSalasUtilizadasDentroPredio : '', // 86 Número de salas de aula utilizadas na escola dentro do prédio escolar + $data->numeroSalasUtilizadasForaPredio, // 87 Número de salas de aula utilizadas na escola fora do prédio escolar + $data->numeroSalasUtilizadasDentroPredio || $data->numeroSalasUtilizadasForaPredio ? $data->numeroSalasClimatizadas : null, // 88 Número de salas de aula climatizadas (ar condicionado, aquecedor ou climatizador) + $data->numeroSalasUtilizadasDentroPredio || $data->numeroSalasUtilizadasForaPredio ? $data->numeroSalasAcessibilidade : null, // 89 Número de salas de aula com acessibilidade para pessoas com deficiência ou mobilidade reduzida + $data->possuiAntenaParabolica() ?: 0, // 90 Antena parabólica + $data->possuiComputadores() ?: 0, // 91 Computadores + $data->possuiCopiadora() ?: 0, // 92 Copiadora + $data->possuiImpressoras() ?: 0, // 93 Impressora + $data->possuiImpressorasMultifuncionais() ?: 0, // 94 Impressora Multifuncional + $data->possuiScanner() ?: 0, // 95 Scanner + $data->nenhumEquipamentoNaEscola() ?: 0, // 96 Nenhum dos equipamentos listados + $data->dvds ?: null, // 97 Aparelho de DVD/Blu-ray + $data->aparelhosDeSom ?: null, // 98 Aparelho de som + $data->televisoes ?: null, // 99 Aparelho de Televisão + $data->lousasDigitais ?: null, // 100 Lousa digital + $data->projetoresDigitais ?: null, // 101 Projetor Multimídia (Data show) + $data->possuiComputadores() ? $data->quantidadeComputadoresAlunosMesa : null, // 102 Computadores de mesa (desktop) + $data->possuiComputadores() ? $data->quantidadeComputadoresAlunosPortateis : null, // 103 Computadores portáteis + $data->possuiComputadores() ? $data->quantidadeComputadoresAlunosTablets : null, // 104 Tablets + $data->usoInternetAdministrativo() ?: 0, // 105 Para uso administrativo + $data->usoInternetProcessosEnsino() ?: 0, // 106 Para uso no processo de ensino e aprendizagem + $data->usoInternetAlunos() ?: 0, // 107 Para uso dos aluno(a)s + $data->usoInternetComunidade() ?: 0, // 108 Para uso da comunidade + $data->usoInternetNaoPossui() ?: 0, // 109 Não possui acesso à internet + $data->equipamentosAcessoInternetComputadorMesa() ?: 0, // 110 Computadores de mesa, portáteis e tablets da escola (no laboratório de informática, biblioteca, sala de aula etc.) + $data->equipamentosAcessoInternetDispositivosPessoais() ?: 0, // 111 Dispositivos pessoais (computadores portáteis, celulares, tablets etc.) + $data->usoInternetNaoPossui() ? null : ($data->acessoInternet ?: 0), // 112 Internet banda larga + ($data->possuiComputadores() || $data->possuiComputadoresDeMesaTabletsEPortateis()) ? ($data->redeLocalACabo() ?: 0) : null, // 113 A cabo + ($data->possuiComputadores() || $data->possuiComputadoresDeMesaTabletsEPortateis()) ? ($data->redeLocalWireless() ?: 0) : null, // 114 Wireless + ($data->possuiComputadores() || $data->possuiComputadoresDeMesaTabletsEPortateis()) ? ($data->redeLocalNenhuma() ?: 0) : null, // 115 Não há rede local interligando computadores + $data->semFuncionariosParaFuncoes ? null : $data->qtdAuxiliarAdministrativo, // 116 Auxiliares de secretaria ou auxiliares administrativos, atendentes + $data->semFuncionariosParaFuncoes ? null : $data->qtdAuxiliarServicosGerais, // 117 Auxiliar de serviços gerais, porteiro(a), zelador(a), faxineiro(a), horticultor(a), jardineiro(a) + $data->semFuncionariosParaFuncoes ? null : $data->qtdBibliotecarios, // 118 Bibliotecário(a), auxiliar de biblioteca ou monitor(a) da sala de leitura + $data->semFuncionariosParaFuncoes ? null : $data->qtdBombeiro, // 119 Bombeiro(a) brigadista, profissionais de assistência a saúde (urgência e emergência), enfermeiro(a), técnico(a) de enfermagem e socorrista + $data->semFuncionariosParaFuncoes ? null : $data->qtdCoordenadorTurno, // 120 Coordenador(a) de turno/disciplinar + $data->semFuncionariosParaFuncoes ? null : $data->qtdFonoaudiologo, // 121 Fonoaudiólogo(a) + $data->semFuncionariosParaFuncoes ? null : $data->qtdNutricionistas, // 122 Nutricionista + $data->semFuncionariosParaFuncoes ? null : $data->qtdPsicologo, // 123 Psicólogo(a) escolar + $data->semFuncionariosParaFuncoes ? null : $data->qtdProfissionaisPreparacao, // 124 Profissionais de preparação e segurança alimentar, cozinheiro(a), merendeira e auxiliar de cozinha + $data->semFuncionariosParaFuncoes ? null : $data->qtdApoioPedagogico, // 125 Profissionais de apoio e supervisão pedagógica: (pedagogo(a), coordenador(a) pedagógico(a), orientador(a) educacional, supervisor(a) escolar e coordenador(a) de área de ensino + $data->semFuncionariosParaFuncoes ? null : $data->qtdSecretarioEscolar, // 126 Secretário(a) escolar + $data->semFuncionariosParaFuncoes ? null : $data->qtdSegurancas, // 127 Segurança, guarda ou segurança patrimonial + $data->semFuncionariosParaFuncoes ? null : $data->qtdTecnicos, // 128 Técnicos(as), monitores(as), supervisores(as) ou auxiliares de laboratório(s), de apoio a tecnologias educacionais ou em multimeios/multimídias eletrônico-digitais. + $data->semFuncionariosParaFuncoes ? null : $data->qtdViceDiretor, // 129 Vice-diretor(a) ou diretor(a) adjunto(a), profissionais responsáveis pela gestão administrativa e/ou financeira + $data->semFuncionariosParaFuncoes ? null : $data->qtdOrientadorComunitario, // 130 Orientador(a) comunitário(a) ou assistente social + $data->semFuncionariosParaFuncoes ? 1 : null, //131 Não há funcionários para as funções listadas + $data->alimentacaoEscolarAlunos, // 132 Alimentação escolar para os aluno(a)s + $data->instrumentosPedagogicosAcervoMultimidia() ?: 0, // 133 Acervo multimídia + $data->instrumentosPedagogicosBrinquedrosEducacaoInfantil() ?: 0, // 134 Brinquedos para educação infantil + $data->instrumentosPedagogicosMateriaisCientificos() ?: 0, // 135 Conjunto de materiais científicos + $data->instrumentosPedagogicosAmplificacaoDifusaoSom() ?: 0, // 136 Equipamento para amplificação e difusão de som/áudio + $data->instrumentosPedagogicosInstrumentosMusicais() ?: 0, // 137 Instrumentos musicais para conjunto, banda/fanfarra e/ou aulas de música + $data->instrumentosPedagogicosJogosEducativos() ?: 0, // 138 Jogos educativos + $data->instrumentosPedagogicosMateriaisAtividadesCulturais() ?: 0, // 139 Materiais para atividades culturais e artísticas + $data->instrumentosPedagogicosMateriaisEducacaoProfissional() ?: 0, // 140 Materiais para educação profissional + $data->instrumentosPedagogicosMateriaisPraticaDesportiva() ?: 0, // 141 Materiais para prática desportiva e recreação + $data->instrumentosPedagogicosMateriaisEducacaoIndigena() ?: 0, // 142 Materiais pedagógicos para a educação escolar indígena + $data->instrumentosPedagogicosMateriaisRelacoesEtnicosRaciais() ?: 0, // 143 Materiais pedagógicos para a educação das relações étnicos raciais + $data->instrumentosPedagogicosMateriaisEducacaoCampo() ?: 0, // 144144 Materiais pedagógicos para a educação do campo + $data->instrumentosPedagogicosNenhum() ?: 0, // 145 Nenhum dos instrumentos listados + $data->educacaoIndigena, // 146 Educação escolar indígena + $data->educacaoIndigena ? ($data->linguaMinistradaIndigena() ?: 0) : null, // 147 Língua indígena + $data->educacaoIndigena ? ($data->linguaMinistradaPortugues() ?: 0) : null, // 148 Língua portuguesa + $data->educacaoIndigena && $data->linguaMinistradaIndigena() ? ($data->codigoLinguaIndigena[0] ?? null) : null, // 149 Código da língua indígena 1 + $data->educacaoIndigena && $data->linguaMinistradaIndigena() ? ($data->codigoLinguaIndigena[1] ?? null) : null, // 150 Código da língua indígena 2 + $data->educacaoIndigena && $data->linguaMinistradaIndigena() ? ($data->codigoLinguaIndigena[2] ?? null) : null, // 151 Código da língua indígena 3 + $data->exameSelecaoIngresso ?: 0, // 152 A escola faz exame de seleção para ingresso de seus aluno(a)s (avaliação por prova e /ou analise curricular) + $data->exameSelecaoIngresso ? ($data->reservaVagasCotasAutodeclaracaoPpi() ?: 0) : null, // 153 Autodeclarado preto, pardo ou indígena (PPI) + $data->exameSelecaoIngresso ? ($data->reservaVagasCotasCondicaoRenda() ?: 0) : null, // 154 Condição de renda + $data->exameSelecaoIngresso ? ($data->reservaVagasCotasEscolaPublica() ?: 0) : null, // 155 Oriundo de escola pública + $data->exameSelecaoIngresso ? ($data->reservaVagasCotasPcd() ?: 0) : null, // 156 Pessoa com deficiência (PCD) + $data->exameSelecaoIngresso ? ($data->reservaVagasCotasOutros() ?: 0) : null, // 157 Outros grupos que não os listados + $data->exameSelecaoIngresso ? ($data->reservaVagasCotasNaoPossui() ?: 0) : null, // 158 Sem reservas de vagas para sistema de cotas (ampla concorrência) + empty($data->url) ? 0 : 1, // 159 A escola possui site ou blog ou página em redes sociais para comunicação institucional + $data->compartilhaEspacosAtividadesIntegracao ?: 0, // 160 A escola compartilha espaços para atividades de integração escola-comunidade + $data->usaEspacosEquipamentosAtividadesRegulares ?: 0, // 161 A escola usa espaços e equipamentos do entorno escolar para atividades regulares com os aluno(a)s + $data->orgaosColegiadosAssociacaoPais() ?: 0, // 162 Associação de Pais + $data->orgaosColegiadosAssociacaoPaisEMestres() ?: 0, // 163 Associação de pais e mestres + $data->orgaosColegiadosConselhoEscolar() ?: 0, // 164 Conselho escolar + $data->orgaosColegiadosGremioEstudantil() ?: 0, // 165 Grêmio estudantil + $data->orgaosColegiadosOutros() ?: 0, // 166 Outros + $data->orgaosColegiadosNenhum() ?: 0, // 167 Não há órgãos colegiados em funcionamento + $data->projetoPoliticoPedagogico ?: 0, // 168 O projeto político pedagógico ou a proposta pedagógica da escola (conforme art. 12 da LDB) foi atualizada nos últimos 12 meses até a data de referência ]; return $exportData; diff --git a/src/Modules/Educacenso/Data/Registro20.php b/src/Modules/Educacenso/Data/Registro20.php index 38aa91680f..492de33811 100644 --- a/src/Modules/Educacenso/Data/Registro20.php +++ b/src/Modules/Educacenso/Data/Registro20.php @@ -83,45 +83,82 @@ public function getRecordExportData($record) $record->escolarizacao() ?: 0, // 18 Escolarização $record->atividadeComplementar() ?: 0, // 19 Atividade complementar $record->atendimentoEducacionalEspecializado() ?: 0, // 20 Atendimento educacional especializado - AEE] - $record->atividadeComplementar() ? ($record->atividadesComplementares[0] ?? '') : '', // 21 Código 1 - Tipos de atividades complementares - $record->atividadeComplementar() ? ($record->atividadesComplementares[1] ?? '') : '', // 22 Código 2 - Tipos de atividades complementares - $record->atividadeComplementar() ? ($record->atividadesComplementares[2] ?? '') : '', // 23 Código 3 - Tipos de atividades complementares - $record->atividadeComplementar() ? ($record->atividadesComplementares[3] ?? '') : '', // 24 Código 4 - Tipos de atividades complementares - $record->atividadeComplementar() ? ($record->atividadesComplementares[4] ?? '') : '', // 25 Código 5 - Tipos de atividades complementares - $record->atividadeComplementar() ? ($record->atividadesComplementares[5] ?? '') : '', // 26 Código 6 - Tipos de atividades complementares - $record->educacaoDistancia() ? '' : $record->localFuncionamentoDiferenciado, // 27 Local de funcionamento diferenciado - $record->escolarizacao() ? $record->modalidadeCurso : '', // 28 Modalidade - $record->escolarizacao() ? $record->etapaEducacenso : '', // 29 Etapa - in_array($record->etapaEducacenso, [30, 31, 32, 33, 34, 39, 40, 64, 74]) ? $record->codCursoProfissional : '', // 30 Código Curso - $canExportComponente ? (int) in_array(1, $componentesEducacenso) : '', // 31 1. Química - $canExportComponente ? (int) in_array(2, $componentesEducacenso) : '', // 32 2. Física - $canExportComponente ? (int) in_array(3, $componentesEducacenso) : '', // 33 3. Matemática - $canExportComponente ? (int) in_array(4, $componentesEducacenso) : '', // 34 4. Biologia - $canExportComponente ? (int) in_array(5, $componentesEducacenso) : '', // 35 5. Ciências - $canExportComponente ? (int) in_array(6, $componentesEducacenso) : '', // 36 6. Língua/Literatura Portuguesa - $canExportComponente ? (int) in_array(7, $componentesEducacenso) : '', // 37 7. Língua/Literatura Estrangeira – Inglês - $canExportComponente ? (int) in_array(8, $componentesEducacenso) : '', // 38 8. Língua/Literatura Estrangeira – Espanhol - $canExportComponente ? (int) in_array(9, $componentesEducacenso) : '', // 39 9. Língua/Literatura Estrangeira – outra - $canExportComponente ? (int) in_array(10, $componentesEducacenso) : '', // 40 10. Arte - $canExportComponente ? (int) in_array(11, $componentesEducacenso) : '', // 41 11. Educação Física - $canExportComponente ? (int) in_array(12, $componentesEducacenso) : '', // 42 12. História - $canExportComponente ? (int) in_array(13, $componentesEducacenso) : '', // 43 13. Geografia - $canExportComponente ? (int) in_array(14, $componentesEducacenso) : '', // 44 14. Filosofia - $canExportComponente ? (int) in_array(16, $componentesEducacenso) : '', // 45 16. Informática/ Computação - $canExportComponente ? (int) in_array(17, $componentesEducacenso) : '', // 46 17. Disciplinas dos Cursos Técnicos Profissionais - $canExportComponente ? (int) in_array(23, $componentesEducacenso) : '', // 47 23. Libras - $canExportComponente ? (int) in_array(25, $componentesEducacenso) : '', // 48 25. Disciplinas Pedagógicas - $canExportComponente ? (int) in_array(26, $componentesEducacenso) : '', // 49 26. Ensino Religioso - $canExportComponente ? (int) in_array(27, $componentesEducacenso) : '', // 50 27. Língua Indígena - $canExportComponente ? (int) in_array(28, $componentesEducacenso) : '', // 51 28. Estudos Sociais - $canExportComponente ? (int) in_array(29, $componentesEducacenso) : '', // 52 29. Sociologia - $canExportComponente ? (int) in_array(30, $componentesEducacenso) : '', // 53 30. Língua/Literatura Estrangeira – Francês - $canExportComponente ? (int) in_array(31, $componentesEducacenso) : '', // 54 31. Língua Portuguesa como Segunda Língua - $canExportComponente ? (int) in_array(32, $componentesEducacenso) : '', // 55 32. Estágio Curricular Supervisionado - $canExportComponente ? (int) in_array(99, $componentesEducacenso) : '', // 56 99. Outras disciplinas + $record->escolarizacao() ? (int) in_array(1, $record->estruturaCurricular) : '', // 21 Formação geral básica + $record->escolarizacao() ? (int) in_array(2, $record->estruturaCurricular) : '', // 22 Itinerário formativo + $record->escolarizacao() ? (int) in_array(3, $record->estruturaCurricular) : '', // 23 Não se aplica + $record->atividadeComplementar() ? ($record->atividadesComplementares[0] ?? '') : '', // 24 Código 1 - Tipos de atividades complementares + $record->atividadeComplementar() ? ($record->atividadesComplementares[1] ?? '') : '', // 25 Código 2 - Tipos de atividades complementares + $record->atividadeComplementar() ? ($record->atividadesComplementares[2] ?? '') : '', // 26 Código 3 - Tipos de atividades complementares + $record->atividadeComplementar() ? ($record->atividadesComplementares[3] ?? '') : '', // 27 Código 4 - Tipos de atividades complementares + $record->atividadeComplementar() ? ($record->atividadesComplementares[4] ?? '') : '', // 28 Código 5 - Tipos de atividades complementares + $record->atividadeComplementar() ? ($record->atividadesComplementares[5] ?? '') : '', // 29 Código 6 - Tipos de atividades complementares + $record->educacaoDistancia() ? '' : $record->localFuncionamentoDiferenciado, // 30 Local de funcionamento diferenciado + ($record->formacaoGeralBasica() || $record->estruturaCurricularNaoSeAplica()) ? $record->modalidadeCurso : '', // 31 Modalidade + ($record->formacaoGeralBasica() || $record->estruturaCurricularNaoSeAplica()) ? $record->etapaEducacenso : '', // 32 Etapa + in_array($record->etapaEducacenso, [30, 31, 32, 33, 34, 39, 40, 64, 74]) ? $record->codCursoProfissional : '', // 33 Código Curso + $record->requereFormasOrganizacaoTurma() ? ($record->formasOrganizacaoTurma === 1 ? 1 : 0) : '', // 34 Série/ano (séries anuais) + $record->requereFormasOrganizacaoTurma() ? ($record->formasOrganizacaoTurma === 2 ? 1 : 0) : '', // 35 Períodos semestrais + $record->requereFormasOrganizacaoTurma() ? ($record->formasOrganizacaoTurma === 3 ? 1 : 0) : '', // 36 Ciclo(s) + $record->requereFormasOrganizacaoTurma() ? ($record->formasOrganizacaoTurma === 4 ? 1 : 0) : '', // 37 Grupos não seriados com base na idade ou competência + $record->requereFormasOrganizacaoTurma() ? ($record->formasOrganizacaoTurma === 5 ? 1 : 0) : '', // 38 Módulos + $record->requereFormasOrganizacaoTurma() ? ($record->formasOrganizacaoTurma === 6 ? 1 : 0) : '', // 39 Alternância regular de períodos de estudos + $record->itinerarioFormativo() ? (int) in_array(1, $record->unidadesCurriculares) : '', // 40 Eletivas + $record->itinerarioFormativo() ? (int) in_array(2, $record->unidadesCurriculares) : '', // 41 Libras + $record->itinerarioFormativo() ? (int) in_array(3, $record->unidadesCurriculares) : '', // 42 Língua indígena + $record->itinerarioFormativo() ? (int) in_array(4, $record->unidadesCurriculares) : '', // 43 Língua/Literatura estrangeira - Espanhol + $record->itinerarioFormativo() ? (int) in_array(5, $record->unidadesCurriculares) : '', // 44 Língua/Literatura estrangeira - Francês + $record->itinerarioFormativo() ? (int) in_array(6, $record->unidadesCurriculares) : '', // 45 Língua/Literatura estrangeira - outra + $record->itinerarioFormativo() ? (int) in_array(7, $record->unidadesCurriculares) : '', // 46 Projeto de vida + $record->itinerarioFormativo() ? (int) in_array(8, $record->unidadesCurriculares) : '', // 47 Trilhas de aprofundamento/aprendizagens + $canExportComponente ? $this->getCensoValueForDiscipline(1, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 48 1. Química + $canExportComponente ? $this->getCensoValueForDiscipline(2, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 49 2. Física + $canExportComponente ? $this->getCensoValueForDiscipline(3, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 50 3. Matemática + $canExportComponente ? $this->getCensoValueForDiscipline(4, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 51 4. Biologia + $canExportComponente ? $this->getCensoValueForDiscipline(5, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 52 5. Ciências + $canExportComponente ? $this->getCensoValueForDiscipline(6, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 53 6. Língua/Literatura Portuguesa + $canExportComponente ? $this->getCensoValueForDiscipline(7, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 54 7. Língua/Literatura Estrangeira - Inglês + $canExportComponente ? $this->getCensoValueForDiscipline(8, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 55 8. Língua/Literatura Estrangeira - Espanhol + $canExportComponente ? $this->getCensoValueForDiscipline(9, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 56 9. Língua/Literatura Estrangeira - Outra + $canExportComponente ? $this->getCensoValueForDiscipline(10, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 57 10. Arte (Educação Artística, Teatro, Dança, Música, Artes Plásticas e outras) + $canExportComponente ? $this->getCensoValueForDiscipline(11, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 58 11. Educação Física + $canExportComponente ? $this->getCensoValueForDiscipline(12, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 59 12. História + $canExportComponente ? $this->getCensoValueForDiscipline(13, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 60 13. Geografia + $canExportComponente ? $this->getCensoValueForDiscipline(14, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 61 14. Filosofia + $canExportComponente ? $this->getCensoValueForDiscipline(16, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 62 16. Informática/ Computação + $canExportComponente ? $this->getCensoValueForDiscipline(17, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 63 17. Áreas do conhecimento profissionalizantes + $canExportComponente ? $this->getCensoValueForDiscipline(23, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 64 23. Libras + $canExportComponente ? $this->getCensoValueForDiscipline(25, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 65 25. Áreas do conhecimento pedagógicas + $canExportComponente ? $this->getCensoValueForDiscipline(26, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 66 26. Ensino Religioso + $canExportComponente ? $this->getCensoValueForDiscipline(27, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 67 27. Língua Indígena + $canExportComponente ? $this->getCensoValueForDiscipline(28, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 68 28. Estudos Sociais + $canExportComponente ? $this->getCensoValueForDiscipline(29, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 69 29. Sociologia + $canExportComponente ? $this->getCensoValueForDiscipline(30, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 70 30. Língua/Literatura Estrangeira - Francês + $canExportComponente ? $this->getCensoValueForDiscipline(31, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 71 31. Língua Portuguesa como Segunda Língua + $canExportComponente ? $this->getCensoValueForDiscipline(32, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 72 32. Estágio Curricular Supervisionado + $canExportComponente ? $this->getCensoValueForDiscipline(33, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 73 33. Projeto de vida + $canExportComponente ? $this->getCensoValueForDiscipline(99, $componentesEducacenso, $record->disciplinasEducacensoComDocentes) : '', // 74 99. Outras áreas do conhecimento ]; } + /** + * @param $discipline + * @param $disciplinesWithTeacher + * + * @return integer + */ + private function getCensoValueForDiscipline($discipline, $disciplines, $disciplinesWithTeacher) + { + if (in_array($discipline, $disciplines) && in_array($discipline, $disciplinesWithTeacher)) { + return 1; // oferece a área do conhecimento/componente curricular com docente vinculado + } + + if (in_array($discipline, $disciplines) && !in_array($discipline, $disciplinesWithTeacher)) { + return 2; // oferece a área do conhecimento/componente curricular sem docente vinculado + } + + return 0; + } + /** * @param $schoolClassId * @param $disciplineIds @@ -153,6 +190,10 @@ private function processData($data) $data->localFuncionamento = Portabilis_Utils_Database::pgArrayToArray($data->localFuncionamento); $data->diasSemana = Portabilis_Utils_Database::pgArrayToArray($data->diasSemana); $data->atividadesComplementares = Portabilis_Utils_Database::pgArrayToArray($data->atividadesComplementares); + $data->estruturaCurricular = Portabilis_Utils_Database::pgArrayToArray($data->estruturaCurricular); + $data->unidadesCurriculares = Portabilis_Utils_Database::pgArrayToArray($data->unidadesCurriculares); + $data->unidadesCurricularesSemDocenteVinculado = Portabilis_Utils_Database::pgArrayToArray($data->unidadesCurricularesSemDocenteVinculado); + $data->disciplinasEducacensoComDocentes = Portabilis_Utils_Database::pgArrayToArray($data->disciplinasEducacensoComDocentes); return $data; } diff --git a/src/Modules/Educacenso/Data/Registro30.php b/src/Modules/Educacenso/Data/Registro30.php index 4c77745609..ce692ccbee 100644 --- a/src/Modules/Educacenso/Data/Registro30.php +++ b/src/Modules/Educacenso/Data/Registro30.php @@ -45,6 +45,8 @@ public function getData($schoolId) $arrayEmployeeId = $this->getArrayEmployeeId(); $employeeData = $this->repository->getEmployeeDataForRecord30($arrayEmployeeId); foreach ($employeeData as $data) { + $data->posGraduacaoNaoPossui = empty($data->posGraduacoes) ? '1' : ''; + $data->posGraduacoes = $this->formatPosGraduateToArray($data->posGraduacoes); $data->email = mb_strtoupper($data->email); $this->model = $this->modelArray[$data->codigoPessoa]; $this->hydrateModel($data); @@ -59,7 +61,7 @@ public function getData($schoolId) $this->modelArray[$data->codigoPessoa] = $this->model; } - $unconsideredKnowledgeArea = [27, 17, 32, 99]; + $unconsideredKnowledgeArea = [32, 99]; foreach ($this->modelArray as &$record) { $record->formacaoAnoConclusao = Portabilis_Utils_Database::pgArrayToArray($record->formacaoAnoConclusao); @@ -173,4 +175,15 @@ private function getArrayStudentId() return $arrayId; } + + private function formatPosGraduateToArray($posGraduate) + { + $posGraduate = explode('}","{', $posGraduate); + + foreach ($posGraduate as $key => $pos) { + $posGraduate[$key] = json_decode('{' . str_replace(['\\', '{"{', '}"}'], '', $pos) . '}'); + } + + return $posGraduate; + } } diff --git a/src/Modules/Educacenso/Data/Registro50.php b/src/Modules/Educacenso/Data/Registro50.php index 959c8d90c3..f2f07e585b 100644 --- a/src/Modules/Educacenso/Data/Registro50.php +++ b/src/Modules/Educacenso/Data/Registro50.php @@ -34,6 +34,8 @@ public function getData($escola, $ano) $this->hydrateModel($data); $this->model->componentes = array_unique(Portabilis_Utils_Database::pgArrayToArray($this->model->componentes)); + $this->model->unidadesCurriculares = array_unique(Portabilis_Utils_Database::pgArrayToArray($this->model->unidadesCurriculares)); + $this->model->estruturaCurricular = array_unique(Portabilis_Utils_Database::pgArrayToArray($this->model->estruturaCurricular)); $this->modelArray[] = $this->model; $this->model = new Registro50Model(); diff --git a/src/Modules/Educacenso/Data/Registro60.php b/src/Modules/Educacenso/Data/Registro60.php index db8206312c..dad0cce74d 100644 --- a/src/Modules/Educacenso/Data/Registro60.php +++ b/src/Modules/Educacenso/Data/Registro60.php @@ -54,6 +54,8 @@ protected function hydrateModel($data) private function processData($data) { $data->veiculoTransporteEscolar = Portabilis_Utils_Database::pgArrayToArray($data->veiculoTransporteEscolar); + $data->estruturaCurricularTurma = Portabilis_Utils_Database::pgArrayToArray($data->estruturaCurricularTurma); + $data->tipoAtendimentoMatricula = Portabilis_Utils_Database::pgArrayToArray($data->tipoAtendimentoMatricula); return $data; } diff --git a/src/Modules/Educacenso/ExportRule/ItinerarioFormativoAluno.php b/src/Modules/Educacenso/ExportRule/ItinerarioFormativoAluno.php new file mode 100644 index 0000000000..affdd4e773 --- /dev/null +++ b/src/Modules/Educacenso/ExportRule/ItinerarioFormativoAluno.php @@ -0,0 +1,70 @@ +tipoItinerarioLinguagens = null; + $registro60->tipoItinerarioMatematica = null; + $registro60->tipoItinerarioCienciasNatureza = null; + $registro60->tipoItinerarioCienciasHumanas = null; + $registro60->tipoItinerarioFormacaoTecnica = null; + $registro60->tipoItinerarioIntegrado = null; + $registro60->composicaoItinerarioLinguagens = null; + $registro60->composicaoItinerarioMatematica = null; + $registro60->composicaoItinerarioCienciasNatureza = null; + $registro60->composicaoItinerarioCienciasHumanas = null; + $registro60->composicaoItinerarioFormacaoTecnica = null; + $registro60->cursoItinerario = null; + $registro60->itinerarioConcomitante = null; + } + + if (!$registro60->tipoItinerarioIntegrado) { + $registro60->composicaoItinerarioLinguagens = null; + $registro60->composicaoItinerarioMatematica = null; + $registro60->composicaoItinerarioCienciasNatureza = null; + $registro60->composicaoItinerarioCienciasHumanas = null; + $registro60->composicaoItinerarioFormacaoTecnica = null; + $registro60->cursoItinerario = null; + $registro60->itinerarioConcomitante = null; + } + + if (!$registro60->composicaoItinerarioFormacaoTecnica) { + $registro60->cursoItinerario = null; + $registro60->itinerarioConcomitante = null; + } + + return $registro60; + } + + private static function isNullItinerarioFormativoAluno(RegistroEducacenso $registro60) + { + $etapasValidas = [25, 26, 27, 28, 30, 31, 32, 33, 35, 36, 37, 38, 71, 74]; + + if (!in_array(EstruturaCurricular::ITINERARIO_FORMATIVO, $registro60->estruturaCurricularTurma)) { + return true; + } + + if ( + in_array(EstruturaCurricular::ITINERARIO_FORMATIVO, $registro60->estruturaCurricularTurma) && + in_array(EstruturaCurricular::FORMACAO_GERAL_BASICA, $registro60->estruturaCurricularTurma) && + !in_array($registro60->etapaTurma, $etapasValidas) + ) { + return true; + } + + return false; + } +} diff --git a/src/Modules/Educacenso/ExportRule/PoderPublicoConveniado.php b/src/Modules/Educacenso/ExportRule/PoderPublicoConveniado.php new file mode 100644 index 0000000000..3173588d4d --- /dev/null +++ b/src/Modules/Educacenso/ExportRule/PoderPublicoConveniado.php @@ -0,0 +1,67 @@ +podePublicoConveniado == ModelPoderPublicoConveniado::NAO_POSSUI) { + $registro00->formasContratacaoPoderPublico = null; + $registro00->qtdMatAtividadesComplentar = null; + $registro00->qtdMatAee = null; + $registro00->qtdMatCrecheParcial = null; + $registro00->qtdMatCrecheIntegral = null; + $registro00->qtdMatPreEscolaParcial = null; + $registro00->qtdMatPreEscolaIntegral = null; + $registro00->qtdMatFundamentalIniciaisParcial = null; + $registro00->qtdMatFundamentalIniciaisIntegral = null; + $registro00->qtdMatFundamentalFinaisParcial = null; + $registro00->qtdMatFundamentalFinaisIntegral = null; + $registro00->qtdMatEnsinoMedioParcial = null; + $registro00->qtdMatEnsinoMedioIntegral = null; + $registro00->qdtMatClasseEspecialParcial = null; + $registro00->qdtMatClasseEspecialIntegral = null; + $registro00->qdtMatEjaFundamental = null; + $registro00->qtdMatEjaEnsinoMedio = null; + $registro00->qtdMatEducacaoProfissionalIntegradaEjaFundamentalParcial = null; + $registro00->qtdMatEducacaoProfissionalIntegradaEjaFundamentalIntegral = null; + $registro00->qtdMatEducacaoProfissionalIntegradaEjaNivelMedioParcial = null; + $registro00->qtdMatEducacaoProfissionalIntegradaEjaNivelMedioIntegral = null; + $registro00->qtdMatEducacaoProfissionalConcomitanteEjaNivelMedioParcial = null; + $registro00->qtdMatEducacaoProfissionalConcomitanteEjaNivelMedioIntegral = null; + $registro00->qtdMatEducacaoProfissionalIntercomentarEjaNivelMedioParcial = null; + $registro00->qtdMatEducacaoProfissionalIntercomentarEjaNivelMedioIntegral = null; + $registro00->qtdMatEducacaoProfissionalIntegradaEnsinoMedioParcial = null; + $registro00->qtdMatEducacaoProfissionalIntegradaEnsinoMedioIntegral = null; + $registro00->qtdMatEducacaoProfissionalConcomitenteEnsinoMedioParcial = null; + $registro00->qtdMatEducacaoProfissionalConcomitenteEnsinoMedioIntegral = null; + $registro00->qtdMatEducacaoProfissionalIntercomplementarEnsinoMedioParcial = null; + $registro00->qtdMatEducacaoProfissionalIntercomplementarEnsinoMedioIntegral = null; + $registro00->qtdMatEducacaoProfissionalTecnicaIntegradaEnsinoMedioParcial = null; + $registro00->qtdMatEducacaoProfissionalTecnicaIntegradaEnsinoMedioIntegral = null; + $registro00->qtdMatEducacaoProfissionalTecnicaConcomitanteEnsinoMedioParcial = null; + $registro00->qtdMatEducacaoProfissionalTecnicaConcomitanteEnsinoMedioIntegral = null; + $registro00->qtdMatEducacaoProfissionalTecnicaIntercomplementarEnsinoMedioParcial = null; + $registro00->qtdMatEducacaoProfissionalTecnicaIntercomplementarEnsinoMedioItegral = null; + $registro00->qtdMatEducacaoProfissionalTecnicaSubsequenteEnsinoMedio = null; + $registro00->qtdMatEducacaoProfissionalTecnicaIntegradaEjaNivelMedioParcial = null; + $registro00->qtdMatEducacaoProfissionalTecnicaIntegradaEjaNivelMedioIntegral = null; + $registro00->qtdMatEducacaoProfissionalTecnicaConcomitanteEjaNivelMedioParcial = null; + $registro00->qtdMatEducacaoProfissionalTecnicaConcomitanteEjaNivelMedioIntegral = null; + $registro00->qtdMatEducacaoProfissionalTecnicaIntercomplementarEjaNivelMedioParcial = null; + $registro00->qtdMatEducacaoProfissionalTecnicaIntercomplementarEjaNivelMedioIntegral = null; + } + + return $registro00; + } +} diff --git a/src/Modules/Educacenso/ExportRule/SituacaoFuncionamento.php b/src/Modules/Educacenso/ExportRule/SituacaoFuncionamento.php index 18919fa029..6c261b6f79 100644 --- a/src/Modules/Educacenso/ExportRule/SituacaoFuncionamento.php +++ b/src/Modules/Educacenso/ExportRule/SituacaoFuncionamento.php @@ -29,8 +29,8 @@ public static function handle(RegistroEducacenso $registro00): RegistroEducacens $registro00->mantenedoraOng = null; $registro00->mantenedoraInstituicoes = null; $registro00->mantenedoraSistemaS = null; + $registro00->poderPublicoConveniado = null; $registro00->mantenedoraOscip = null; - $registro00->conveniadaPoderPublico = null; $registro00->cnpjMantenedoraPrincipal = null; $registro00->cnpjEscolaPrivada = null; } diff --git a/src/Modules/Educacenso/ExportRule/TipoVinculoGestor.php b/src/Modules/Educacenso/ExportRule/TipoVinculoGestor.php new file mode 100644 index 0000000000..cfd07e790c --- /dev/null +++ b/src/Modules/Educacenso/ExportRule/TipoVinculoGestor.php @@ -0,0 +1,23 @@ +situacaoFuncionamento != \iEducar\Modules\Educacenso\Model\SituacaoFuncionamento::EM_ATIVIDADE) { + $registro40->tipoVinculo = null; + } + + return $registro40; + } +} diff --git a/src/Modules/Educacenso/ExportRule/UnidadesCurricularesServidor.php b/src/Modules/Educacenso/ExportRule/UnidadesCurricularesServidor.php new file mode 100644 index 0000000000..071c235496 --- /dev/null +++ b/src/Modules/Educacenso/ExportRule/UnidadesCurricularesServidor.php @@ -0,0 +1,37 @@ +unidadesCurriculares = null; + } + + return $registro50; + } + + public static function isNullUnidadesCurriculares($registro50) + { + $funcoesValidas = [ + FuncaoExercida::DOCENTE, + FuncaoExercida::DOCENTE_TITULAR_EAD + ]; + + return + !in_array($registro50->funcaoDocente, $funcoesValidas) || + !in_array(EstruturaCurricular::ITINERARIO_FORMATIVO, $registro50->estruturaCurricular); + } +} diff --git a/src/Modules/Educacenso/Model/AreaPosGraduacao.php b/src/Modules/Educacenso/Model/AreaPosGraduacao.php new file mode 100644 index 0000000000..6b1ffa5097 --- /dev/null +++ b/src/Modules/Educacenso/Model/AreaPosGraduacao.php @@ -0,0 +1,35 @@ + 'Educação', + self::ARTES_HUMANIDADE => 'Artes e humanidades', + self::CIENCIAS_SOCIAIS => 'Ciências sociais, comunicação e informação', + self::NEGOCIOS => 'Negócios, administração e direito', + self::CENCIAS_NATURAIS => 'Ciências naturais, matemática e estatística', + self::COMPUTACAO => 'Computação e Tecnologias da Informação e Comunicação (TIC)', + self::ENGENHARIA => 'Engenharia, produção e construção', + self::AGRICULTURA => 'Agricultura, silvicultura, pesca e veterinária', + self::SAUDE => 'Saúde e bem-estar', + self::SERVICOS => 'Serviços', + self::PROGRAMAS_BASICOS => 'Programas básicos', + ]; + } +} diff --git a/src/Modules/Educacenso/Model/CategoriaEscolaPrivada.php b/src/Modules/Educacenso/Model/CategoriaEscolaPrivada.php new file mode 100644 index 0000000000..b04d048111 --- /dev/null +++ b/src/Modules/Educacenso/Model/CategoriaEscolaPrivada.php @@ -0,0 +1,21 @@ + 'Particular', + self::COMUNITARIA => 'Comunitária', + self::CONFESSIONAL => 'Confessional', + self::FILANTROPICA => 'Filantrópica', + ]; + } +} diff --git a/src/Modules/Educacenso/Model/Equipamentos.php b/src/Modules/Educacenso/Model/Equipamentos.php index 0e0a8b1b48..b07c092942 100644 --- a/src/Modules/Educacenso/Model/Equipamentos.php +++ b/src/Modules/Educacenso/Model/Equipamentos.php @@ -10,6 +10,7 @@ class Equipamentos public const COPIADORA = 4; public const SCANNER = 5; public const ANTENA_PARABOLICA = 6; + public const NENHUM_EQUIPAMENTO_LISTADO = 7; public static function getDescriptiveValues() { @@ -20,6 +21,7 @@ public static function getDescriptiveValues() self::COPIADORA => 'Copiadora', self::SCANNER => 'Scanner', self::ANTENA_PARABOLICA => 'Antena parabólica', + self::NENHUM_EQUIPAMENTO_LISTADO => 'Nenhum dos equipamentos listados', ]; } } diff --git a/src/Modules/Educacenso/Model/EstruturaCurricular.php b/src/Modules/Educacenso/Model/EstruturaCurricular.php new file mode 100644 index 0000000000..673ec2d302 --- /dev/null +++ b/src/Modules/Educacenso/Model/EstruturaCurricular.php @@ -0,0 +1,19 @@ + 'Formação geral básica', + self::ITINERARIO_FORMATIVO => 'Itinerário formativo', + self::NAO_SE_APLICA => 'Não se aplica', + ]; + } +} diff --git a/src/Modules/Educacenso/Model/FormaOrganizacaoTurma.php b/src/Modules/Educacenso/Model/FormaOrganizacaoTurma.php new file mode 100644 index 0000000000..53879c3ac5 --- /dev/null +++ b/src/Modules/Educacenso/Model/FormaOrganizacaoTurma.php @@ -0,0 +1,25 @@ + 'Série/ano (séries anuais)', + self::SEMESTRAL => 'Períodos semestrais', + self::CICLOS => 'Ciclo(s)', + self::NAO_SERIADO => 'Grupos não seriados com base na idade ou competência', + self::MODULES => 'Módulos', + self::ALTERNANCIA_REGULAR => 'Alternância regular de períodos de estudos' + ]; + } +} diff --git a/src/Modules/Educacenso/Model/FormasContratacaoPoderPublico.php b/src/Modules/Educacenso/Model/FormasContratacaoPoderPublico.php new file mode 100644 index 0000000000..a93bc6c430 --- /dev/null +++ b/src/Modules/Educacenso/Model/FormasContratacaoPoderPublico.php @@ -0,0 +1,25 @@ + 'Termo de colaboração (Lei nº 13.019/2014)', + self::TERMO_FOMENTO => 'Termo de fomento (Lei nº 13.019/2014)', + self::ACORDO_COOPERACAO => 'Acordo de cooperação (Lei nº 13.019/2014)', + self::CONTRATO_PRESTACAO_SERVICO => 'Contrato de prestação de serviço', + self::TERMO_COOPERACAO_TECNICA => 'Termo de cooperação técnica e financeira', + self::CONTRATO_CONSORCIO => 'Contrato de consórcio público/Convênio de cooperação' + ]; + } +} diff --git a/src/Modules/Educacenso/Model/InstrumentosPedagogicos.php b/src/Modules/Educacenso/Model/InstrumentosPedagogicos.php index 92664de952..9328bd2e3b 100644 --- a/src/Modules/Educacenso/Model/InstrumentosPedagogicos.php +++ b/src/Modules/Educacenso/Model/InstrumentosPedagogicos.php @@ -15,6 +15,8 @@ class InstrumentosPedagogicos public const MATERIAIS_EDUCACAO_INDIGENA = 9; public const MATERIAIS_RELACOES_ETNICOS_RACIAIS = 10; public const MATERIAIS_EDUCACAO_CAMPO = 11; + public const NENHUM_DOS_INSTRUMENTOS_LISTADOS = 12; + public const MATERIAL_EDUCACAO_PROFISSIONAL = 13; public static function getDescriptiveValues() { @@ -26,10 +28,12 @@ public static function getDescriptiveValues() self::INSTRUMENTOS_MUSICAIS => 'Instrumentos musicais para conjunto, banda/fanfarra e/ou aulas de música', self::JOGOS_EDUCATIVOS => 'Jogos educativos', self::MATERIAIS_ATIVIDADES_CULTURAIS => 'Materiais para atividades culturais e artísticas', + self::MATERIAL_EDUCACAO_PROFISSIONAL => 'Material para educação profissional', self::MATERIAIS_PRATICA_DESPORTIVA => 'Materiais para prática desportiva e recreação', self::MATERIAIS_EDUCACAO_INDIGENA => 'Materiais pedagógicos para a educação escolar indígena', self::MATERIAIS_RELACOES_ETNICOS_RACIAIS => 'Materiais pedagógicos para a educação das Relações Étnicos Raciais', self::MATERIAIS_EDUCACAO_CAMPO => 'Materiais pedagógicos para a educação do campo', + self::NENHUM_DOS_INSTRUMENTOS_LISTADOS => 'Nenhum dos instrumentos listados', ]; } } diff --git a/src/Modules/Educacenso/Model/Laboratorios.php b/src/Modules/Educacenso/Model/Laboratorios.php index 70eb12656f..c7fcbc2548 100644 --- a/src/Modules/Educacenso/Model/Laboratorios.php +++ b/src/Modules/Educacenso/Model/Laboratorios.php @@ -6,12 +6,14 @@ class Laboratorios { public const INFORMATICA = 1; public const CIENCIAS = 2; + public const EDUCACAO_PROFISSIONAL = 3; public static function getDescriptiveValues() { return [ self::INFORMATICA => 'Laboratório de informática', self::CIENCIAS => 'Laboratório de ciências', + self::EDUCACAO_PROFISSIONAL => 'Laboratório específico para a educação profissional', ]; } } diff --git a/src/Modules/Educacenso/Model/PoderPublicoConveniado.php b/src/Modules/Educacenso/Model/PoderPublicoConveniado.php new file mode 100644 index 0000000000..2cdf0f91d9 --- /dev/null +++ b/src/Modules/Educacenso/Model/PoderPublicoConveniado.php @@ -0,0 +1,19 @@ + 'Secretaria estadual', + self::MUNICIPAL => 'Secretaria municipal', + self::NAO_POSSUI => 'Não possui parceria ou convênio', + ]; + } +} diff --git a/src/Modules/Educacenso/Model/PosGraduacao.php b/src/Modules/Educacenso/Model/PosGraduacao.php index 5b3880b0da..c0ef02a5fd 100644 --- a/src/Modules/Educacenso/Model/PosGraduacao.php +++ b/src/Modules/Educacenso/Model/PosGraduacao.php @@ -7,7 +7,6 @@ class PosGraduacao public const ESPECIALIZACAO = 1; public const MESTRADO = 2; public const DOUTORADO = 3; - public const NAO_POSSUI = 4; public static function getDescriptiveValues() { @@ -15,7 +14,6 @@ public static function getDescriptiveValues() self::ESPECIALIZACAO => 'Especialização', self::MESTRADO => 'Mestrado', self::DOUTORADO => 'Doutorado', - self::NAO_POSSUI => 'Não tem pós-graduação concluída', ]; } } diff --git a/src/Modules/Educacenso/Model/SalasAtividades.php b/src/Modules/Educacenso/Model/SalasAtividades.php index 2492cac5b3..81ba618944 100644 --- a/src/Modules/Educacenso/Model/SalasAtividades.php +++ b/src/Modules/Educacenso/Model/SalasAtividades.php @@ -11,6 +11,7 @@ class SalasAtividades public const MULTIUSO = 5; public const RECURSOS_AEE = 6; public const REPOUSO_ALUNO = 7; + public const EDUCACAO_PROFISSIONAL = 8; public static function getDescriptiveValues() { @@ -22,6 +23,7 @@ public static function getDescriptiveValues() self::MULTIUSO => 'Sala multiúso (música, dança e artes)', self::RECURSOS_AEE => 'Sala de recursos multifuncionais para Atendimento Educacional Especializado (AEE)', self::REPOUSO_ALUNO => 'Sala de repouso para aluno(a)', + self::EDUCACAO_PROFISSIONAL => 'Salas de oficinas da educação profissional', ]; } } diff --git a/src/Modules/Educacenso/Model/TipoCursoItinerario.php b/src/Modules/Educacenso/Model/TipoCursoItinerario.php new file mode 100644 index 0000000000..b9292eb57d --- /dev/null +++ b/src/Modules/Educacenso/Model/TipoCursoItinerario.php @@ -0,0 +1,17 @@ + 'Curso técnico', + self::QUALIFICACAO_PROFISSIONAL => 'Qualificação profissional técnica', + ]; + } +} diff --git a/src/Modules/Educacenso/Model/TipoItinerarioFormativo.php b/src/Modules/Educacenso/Model/TipoItinerarioFormativo.php new file mode 100644 index 0000000000..a987598a35 --- /dev/null +++ b/src/Modules/Educacenso/Model/TipoItinerarioFormativo.php @@ -0,0 +1,36 @@ + 'Linguagens e suas tecnologias', + self::MATEMATICA => 'Matemática e suas tecnologias', + self::CIENCIAS_NATUREZA => 'Ciências da natureza e suas tecnologias', + self::CIENCIAS_HUMANAS => 'Ciências humanas e sociais aplicadas', + self::FORMACAO_TECNICA => 'Formação técnica e profissional', + self::ITINERARIO_INTEGRADO => 'Itinerário formativo integrado', + ]; + } + + public static function getDescriptiveValuesOfItineraryComposition() + { + return [ + self::LINGUANGENS => 'Linguagens e suas tecnologias', + self::MATEMATICA => 'Matemática e suas tecnologias', + self::CIENCIAS_NATUREZA => 'Ciências da natureza e suas tecnologias', + self::CIENCIAS_HUMANAS => 'Ciências humanas e sociais aplicadas', + self::FORMACAO_TECNICA => 'Formação técnica e profissional', + ]; + } +} diff --git a/src/Modules/Educacenso/Model/UnidadesCurriculares.php b/src/Modules/Educacenso/Model/UnidadesCurriculares.php new file mode 100644 index 0000000000..193cad46c1 --- /dev/null +++ b/src/Modules/Educacenso/Model/UnidadesCurriculares.php @@ -0,0 +1,29 @@ + 'Eletivas', + self::LIBRAS => 'Libras', + self::LINGUA_INDIGENA => 'Língua indígena', + self::LINGUA_LITERATURA_ESTRANGEIRA_ESPANHOL => 'Língua/Literatura estrangeira - Espanhol', + self::LINGUA_LITERATURA_ESTRANGEIRA_FRANCES => 'Língua/Literatura estrangeira - Francês', + self::LINGUA_LITERATURA_ESTRANGEIRA_OUTRA => 'Língua/Literatura estrangeira - Outra', + self::PROJETO_DE_VIDA => 'Projeto de vida', + self::TRILHAS_DE_APROFUNDAMENTO_APRENDIZAGENS => 'Trilhas de aprofundamento/aprendizagens', + ]; + } +} diff --git a/src/Modules/Educacenso/Validator/FormaOrganizacaoTurma.php b/src/Modules/Educacenso/Validator/FormaOrganizacaoTurma.php new file mode 100644 index 0000000000..0e4b403cc3 --- /dev/null +++ b/src/Modules/Educacenso/Validator/FormaOrganizacaoTurma.php @@ -0,0 +1,65 @@ +turma = $turma; + } + + /** + * @return bool + */ + public function isValid(): bool + { + if (empty($this->turma->formasOrganizacaoTurma)) { + return true; + } + + if (empty($this->turma->etapaEducacenso)) { + return true; + } + + if (in_array($this->turma->etapaEducacenso, [1, 2, 3, 24])) { + return true; + } + + $validOptionForEducacensoStage = [ + ModelFormaOrganizacaoTurma::SERIE_ANO => [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 56, 64, 69, 70, 71, 72, 73, 74, 67 + ], + ModelFormaOrganizacaoTurma::SEMESTRAL => [ + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 64, 69, 70, 71, 72, 73, 74, 67, 68 + ], + ModelFormaOrganizacaoTurma::CICLOS => [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41, 56 + ], + ModelFormaOrganizacaoTurma::NAO_SERIADO => [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 56, 64, 69, 70, 71, 72, 73, 74, 67, 68 + ], + ModelFormaOrganizacaoTurma::MODULES => [ + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 56, 64, 69, 70, 71, 72, 73, 74, 67,68 + ], + ModelFormaOrganizacaoTurma::ALTERNANCIA_REGULAR => [ + 19, 20, 21, 22, 23, 41, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 64, 69, 70, 71, 72, 73, 74, 67, 68 + ] + ]; + + return in_array($this->turma->etapaEducacenso, $validOptionForEducacensoStage[$this->turma->formasOrganizacaoTurma]); + } + + /** + * @return mixed + */ + public function getMessage() + { + return 'Teste'; + } +} diff --git a/src/Modules/Educacenso/Validator/FormasContratacaoEscolaValidator.php b/src/Modules/Educacenso/Validator/FormasContratacaoEscolaValidator.php new file mode 100644 index 0000000000..0c8d306a6f --- /dev/null +++ b/src/Modules/Educacenso/Validator/FormasContratacaoEscolaValidator.php @@ -0,0 +1,93 @@ +dependenciaAdministrativa = $dependenciaAdministrativa; + $this->categoriaEscolaPrivada = $categoriaEscolaPrivada; + $this->formasContratacao = $formasContratacao; + } + + /** + * @return bool + */ + public function isValid(): bool + { + return $this->validaDependenciaAdministrativa() && $this->validaCategoriaEscolaPrivada(); + } + + /** + * @return bool + */ + private function validaDependenciaAdministrativa() + { + $dependenciasAdimistrativas = [ + DependenciaAdministrativaEscola::FEDERAL, + DependenciaAdministrativaEscola::ESTADUAL, + DependenciaAdministrativaEscola::MUNICIPAL, + ]; + + if (in_array($this->dependenciaAdministrativa, $dependenciasAdimistrativas)) { + $opcoesValidas = [ + FormasContratacaoPoderPublico::TERMO_COOPERACAO_TECNICA, + FormasContratacaoPoderPublico::CONTRATO_CONSORCIO, + ]; + + return count(array_diff($this->formasContratacao, $opcoesValidas)) === 0; + } + + return true; + } + + /** + * @return bool + */ + private function validaCategoriaEscolaPrivada() + { + $categorias = [ + CategoriaEscolaPrivada::COMUNITARIA, + CategoriaEscolaPrivada::CONFESSIONAL, + CategoriaEscolaPrivada::FILANTROPICA, + ]; + + if (in_array($this->categoriaEscolaPrivada, $categorias)) { + $opcoesValidas = [ + FormasContratacaoPoderPublico::TERMO_COLABORACAO, + FormasContratacaoPoderPublico::TERMO_FOMENTO, + FormasContratacaoPoderPublico::ACORDO_COOPERACAO, + FormasContratacaoPoderPublico::CONTRATO_PRESTACAO_SERVICO, + ]; + + return count(array_diff($this->formasContratacao, $opcoesValidas)) === 0; + } + + if ($this->categoriaEscolaPrivada === CategoriaEscolaPrivada::PARTICULAR) { + $opcoesValidas = [ + FormasContratacaoPoderPublico::CONTRATO_PRESTACAO_SERVICO, + ]; + + return count(array_diff($this->formasContratacao, $opcoesValidas)) === 0; + } + + return true; + } + + public function getMessage() + { + return 'Verifique se o INEP possui 12 dígitos'; + } +} diff --git a/src/Modules/Educacenso/Validator/SchoolManagers.php b/src/Modules/Educacenso/Validator/SchoolManagers.php index 56ed6074f7..fb9e9950a6 100644 --- a/src/Modules/Educacenso/Validator/SchoolManagers.php +++ b/src/Modules/Educacenso/Validator/SchoolManagers.php @@ -127,9 +127,12 @@ private function validateAccessLinkType($valueObject) return; } - if ($valueObject->roleId == SchoolManagerRole::DIRETOR && empty($valueObject->linkTypeId)) { + if ((int) $valueObject->roleId === SchoolManagerRole::DIRETOR && + empty($valueObject->linkTypeId) && + $this->operatingSituation === SituacaoFuncionamento::EM_ATIVIDADE + ) { $this->valid = false; - $this->message[] = 'O campo: Tipo de vínculo deve ser preenchido quando o campo: Cargo for: Diretor e o campo: Dependência administrativa não for: Privada'; + $this->message[] = 'O campo: Tipo de vínculo deve ser preenchido quando o campo: Situação de funcionamento for: Em atividade, o campo Cargo for: Diretor e o campo: Dependência administrativa não for: Privada'; } } diff --git a/src/Modules/Servidores/Model/FuncaoExercida.php b/src/Modules/Servidores/Model/FuncaoExercida.php index b491376b20..a3b9b2acf3 100644 --- a/src/Modules/Servidores/Model/FuncaoExercida.php +++ b/src/Modules/Servidores/Model/FuncaoExercida.php @@ -16,6 +16,7 @@ class FuncaoExercida public const DOCENTE_TUTOR_EAD = 6; public const GUIA_INTERPRETE_LIBRAS = 7; public const APOIO_ALUNOS_DEFICIENCIA = 8; + public const INSTRUTOR_EDUCACAO_PROFISSIONAL = 9; public static function getDescriptiveValues() { @@ -28,6 +29,7 @@ public static function getDescriptiveValues() self::DOCENTE_TUTOR_EAD => 'Docente tutor - Auxiliar (de módulo ou disciplina) - EAD', self::GUIA_INTERPRETE_LIBRAS => 'Guia-Intérprete', self::APOIO_ALUNOS_DEFICIENCIA => 'Profissional de apoio escolar para aluno(a)s com deficiência (Lei 13.146/2015)', + self::INSTRUTOR_EDUCACAO_PROFISSIONAL => 'Instrutor da Educação Profissional' ]; } } diff --git a/src/Modules/ValueObjects/EmployeePosgraduateValueObject.php b/src/Modules/ValueObjects/EmployeePosgraduateValueObject.php new file mode 100644 index 0000000000..565ccbe926 --- /dev/null +++ b/src/Modules/ValueObjects/EmployeePosgraduateValueObject.php @@ -0,0 +1,31 @@ +