Skip to content

Commit

Permalink
Merge pull request #21 from portabilis/educacenso-2024-import
Browse files Browse the repository at this point in the history
Educacenso 2024 importação
  • Loading branch information
edineivaldameri authored Jan 31, 2025
2 parents 7f0f942 + 2443bf5 commit 6a95944
Show file tree
Hide file tree
Showing 8 changed files with 579 additions and 4 deletions.
2 changes: 1 addition & 1 deletion config/educacenso.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

return [
'stage-1' => [
'years' => [2019, 2020, 2021, 2022, 2023],
'years' => [2019, 2020, 2021, 2022, 2023, 2024],
],
'stage-2' => [
'years' => [2022, 2023, 2024],
Expand Down
2 changes: 2 additions & 0 deletions src/Services/ImportServiceFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
use iEducar\Packages\Educacenso\Services\Version2021\ImportService as ImportService2021;
use iEducar\Packages\Educacenso\Services\Version2022\ImportService as ImportService2022;
use iEducar\Packages\Educacenso\Services\Version2023\ImportService as ImportService2023;
use iEducar\Packages\Educacenso\Services\Version2024\ImportService as ImportService2024;

class ImportServiceFactory
{
Expand Down Expand Up @@ -43,6 +44,7 @@ private static function getClassByYear($year)
2021 => ImportService2021::class,
2022 => ImportService2022::class,
2023 => ImportService2023::class,
2024 => ImportService2024::class,
];

if (isset($imports[$year])) {
Expand Down
6 changes: 3 additions & 3 deletions src/Services/Version2019/Registro10Import.php
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ private function getArrayLocalFuncionamento()
return $this->getPostgresIntegerArray($arrayLocal);
}

private function getArrayAbastecimentoAgua()
protected function getArrayAbastecimentoAgua()
{
$arrayAbastecimentoAgua = [];

Expand Down Expand Up @@ -372,7 +372,7 @@ protected function getArrayLaboratorios()
return $this->getPostgresIntegerArray($arrayLaboratorios);
}

private function getArrayAreasExternas()
protected function getArrayAreasExternas()
{
$arrayAreas = [];

Expand Down Expand Up @@ -500,7 +500,7 @@ protected function getArraySalasAtividades()
return $this->getPostgresIntegerArray($arraySalas);
}

private function getArrayRecursosAcessibilidade()
protected function getArrayRecursosAcessibilidade()
{
$arrayRecursosAcessibilidade = [];

Expand Down
52 changes: 52 additions & 0 deletions src/Services/Version2024/ImportService.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?php

namespace iEducar\Packages\Educacenso\Services\Version2024;

use iEducar\Packages\Educacenso\Services\Version2020\Registro40Import;
use iEducar\Packages\Educacenso\Services\Version2022\ImportService as ImportServiceVersion2022;
use iEducar\Packages\Educacenso\Services\Version2023\Registro20Import;
use iEducar\Packages\Educacenso\Services\Version2023\Registro30Import;
use iEducar\Packages\Educacenso\Services\Version2023\Registro50Import;
use iEducar\Packages\Educacenso\Services\Version2023\Registro60Import;

class ImportService extends ImportServiceVersion2022
{
/**
* Retorna o ano a que o service se refere
*
* @return int
*/
public function getYear()
{
return 2024;
}

/**
* Retorna a classe responsável por importar o registro da linha
*/
public function getRegistroById($lineId)
{
$arrayRegistros = [
'00' => Registro00Import::class,
'10' => Registro10Import::class,
'20' => Registro20Import::class,
'30' => Registro30Import::class,
'40' => Registro40Import::class,
'50' => Registro50Import::class,
'60' => Registro60Import::class,
];

if (! isset($arrayRegistros[$lineId])) {
return;
}

return new $arrayRegistros[$lineId]();
}

public function getSchoolNameByFile($school)
{
$columns = explode(self::DELIMITER, $school[0]);

return $columns[5];
}
}
90 changes: 90 additions & 0 deletions src/Services/Version2024/Models/Registro00Model.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
<?php

namespace iEducar\Packages\Educacenso\Services\Version2024\Models;

use App\Models\Educacenso\Registro00;
use iEducar\Modules\Educacenso\Model\FormasContratacaoPoderPublico;
use iEducar\Modules\Educacenso\Model\PoderPublicoConveniado;
use Illuminate\Validation\ValidationException;

class Registro00Model extends Registro00
{
public function hydrateModel($arrayColumns): void
{
array_unshift($arrayColumns, null);
unset($arrayColumns[0]);

if (is_null($arrayColumns[2]) || $arrayColumns[2] === '') {
throw ValidationException::withMessages([
'error' => 'Você está tentando importar um arquivo com escola(s) inválida(s). o i-Educar aceita apenas arquivos oriundos do sistema do MEC.',
]);
}

$this->registro = $arrayColumns[1];
$this->codigoInep = $arrayColumns[2];
$this->situacaoFuncionamento = $arrayColumns[3];
$this->inicioAnoLetivo = $arrayColumns[4];
$this->fimAnoLetivo = $arrayColumns[5];
$this->nome = $arrayColumns[6];
$this->cep = $arrayColumns[7];
$this->codigoIbgeMunicipio = $arrayColumns[8];
$this->codigoIbgeDistrito = $arrayColumns[9];
$this->logradouro = $arrayColumns[10];
$this->numero = $arrayColumns[11];
$this->complemento = $arrayColumns[12];
$this->bairro = $arrayColumns[13];
$this->ddd = $arrayColumns[14];
$this->telefone = $arrayColumns[15];
$this->telefoneOutro = $arrayColumns[16];
$this->email = $arrayColumns[17];
$this->orgaoRegional = $arrayColumns[18];
$this->zonaLocalizacao = $arrayColumns[19];
$this->localizacaoDiferenciada = $arrayColumns[20];
$this->dependenciaAdministrativa = $arrayColumns[21];
$this->orgaoEducacao = $arrayColumns[22];
$this->orgaoSeguranca = $arrayColumns[23];
$this->orgaoSaude = $arrayColumns[24];
$this->orgaoOutro = $arrayColumns[25];
$this->mantenedoraEmpresa = $arrayColumns[26];
$this->mantenedoraSindicato = $arrayColumns[27];
$this->mantenedoraOng = $arrayColumns[28];
$this->mantenedoraInstituicoes = $arrayColumns[29];
$this->mantenedoraSistemaS = $arrayColumns[30];
$this->mantenedoraOscip = $arrayColumns[31];
$this->categoriaEscolaPrivada = $arrayColumns[32];

$this->poderPublicoConveniado = array_filter([
$arrayColumns[33] ? PoderPublicoConveniado::ESTADUAL : null,
$arrayColumns[34] ? PoderPublicoConveniado::MUNICIPAL : null,
$arrayColumns[35] ? PoderPublicoConveniado::NAO_POSSUI : null,
]);

$this->formasContratacaoPoderPublicoEstadual = array_filter([
$arrayColumns[36] ? FormasContratacaoPoderPublico::TERMO_COLABORACAO : null,
$arrayColumns[37] ? FormasContratacaoPoderPublico::TERMO_FOMENTO : null,
$arrayColumns[38] ? FormasContratacaoPoderPublico::ACORDO_COOPERACAO : null,
$arrayColumns[39] ? FormasContratacaoPoderPublico::CONTRATO_PRESTACAO_SERVICO : null,
$arrayColumns[40] ? FormasContratacaoPoderPublico::TERMO_COOPERACAO_TECNICA : null,
$arrayColumns[41] ? FormasContratacaoPoderPublico::CONTRATO_CONSORCIO : null,
]);

$this->formasContratacaoPoderPublicoMunicipal = array_filter([
$arrayColumns[42] ? FormasContratacaoPoderPublico::TERMO_COLABORACAO : null,
$arrayColumns[43] ? FormasContratacaoPoderPublico::TERMO_FOMENTO : null,
$arrayColumns[44] ? FormasContratacaoPoderPublico::ACORDO_COOPERACAO : null,
$arrayColumns[45] ? FormasContratacaoPoderPublico::CONTRATO_PRESTACAO_SERVICO : null,
$arrayColumns[46] ? FormasContratacaoPoderPublico::TERMO_COOPERACAO_TECNICA : null,
$arrayColumns[47] ? FormasContratacaoPoderPublico::CONTRATO_CONSORCIO : null,
]);

$this->cnpjMantenedoraPrincipal = $arrayColumns[48];
$this->cnpjEscolaPrivada = $arrayColumns[49];
$this->regulamentacao = $arrayColumns[50];
$this->esferaFederal = $arrayColumns[51];
$this->esferaEstadual = $arrayColumns[52];
$this->esferaMunicipal = $arrayColumns[53];
$this->unidadeVinculada = (int) $arrayColumns[54];
$this->inepEscolaSede = $arrayColumns[55];
$this->codigoIes = $arrayColumns[56];
}
}
Loading

0 comments on commit 6a95944

Please sign in to comment.