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 .= '
Lista de enturmações da matrícula | +||||||||||||
Sequencial | +Turma | +Ativo | +Data de enturmação | +Data 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') }} + | +||||||||
+ + | +