From 36eb60b15f12868298e5c513ce773319079c506c Mon Sep 17 00:00:00 2001 From: Paulo Date: Mon, 11 Jul 2022 00:08:26 -0300 Subject: [PATCH 1/2] aprimorando depois do primeiro export apos update - corrigindo problemas --- app/controllers/CensoController.php | 4 +- app/controllers/ClassroomController.php | 34 ++++--- ...nstructorDocumentsAndAddressValidation.php | 4 +- .../StudentIdentificationValidation.php | 14 +-- app/extensions/Validator/register.php | 4 +- app/libraries/Educacenso/Register20.php | 89 ++++++++++++++++--- app/libraries/Educacenso/Register30.php | 43 ++++++++- app/libraries/Educacenso/Register60.php | 6 +- .../setando_default_para_alguns_campos_novos | 2 + app/models/SchoolStructure.php | 4 +- js/classroom/form/_initialization.js | 1 - 11 files changed, 161 insertions(+), 44 deletions(-) create mode 100644 app/migrations/2.12.5_validador_educacenso_sli/setando_default_para_alguns_campos_novos diff --git a/app/controllers/CensoController.php b/app/controllers/CensoController.php index d30071fc0..eaae5621b 100755 --- a/app/controllers/CensoController.php +++ b/app/controllers/CensoController.php @@ -794,7 +794,7 @@ public function validateInstructorDocuments($collumn) $result = $idav->isNotGreaterThan($collumn['id'], 20); if (!$result["status"]) array_push($log, array("id" => $result["erro"])); - if (!empty($collumn['cpf'])) { + if (empty($instructor_inep_id) || !empty($collumn['cpf'])) { $result = $idav->isCPFValid($collumn['cpf']); if (!$result["status"]) array_push($log, array("cpf" => $result["erro"])); } @@ -998,7 +998,7 @@ public function validateStudentIdentification($collumn, $studentdocument, $class $year = Yii::app()->user->year; //campo 6 - $result = $stiv->validateBirthday($collumn['birthday'], 1910, $year, $classroom["edcenso_stage_vs_modality_fk"]); + $result = $stiv->validateBirthday($collumn['birthday'], $year, $classroom["edcenso_stage_vs_modality_fk"]); if (!$result["status"]) array_push($log, array("birthday" => $result["erro"])); //campo 7 diff --git a/app/controllers/ClassroomController.php b/app/controllers/ClassroomController.php index 33c50432e..a60031ed5 100755 --- a/app/controllers/ClassroomController.php +++ b/app/controllers/ClassroomController.php @@ -666,25 +666,11 @@ public function actionUpdate($id) { $modelClassroom->addError('week_days_sunday', Yii::t('default', 'Week Days') . ' ' . Yii::t('default', 'cannot be blank')); } } - $compActs = array(); - if (isset($modelClassroom->complementary_activity_type_1)) - array_push($compActs, $modelClassroom->complementary_activity_type_1); - if (isset($modelClassroom->complementary_activity_type_2)) - array_push($compActs, $modelClassroom->complementary_activity_type_2); - if (isset($modelClassroom->complementary_activity_type_3)) - array_push($compActs, $modelClassroom->complementary_activity_type_3); - if (isset($modelClassroom->complementary_activity_type_4)) - array_push($compActs, $modelClassroom->complementary_activity_type_4); - if (isset($modelClassroom->complementary_activity_type_5)) - array_push($compActs, $modelClassroom->complementary_activity_type_5); - if (isset($modelClassroom->complementary_activity_type_6)) - array_push($compActs, $modelClassroom->complementary_activity_type_6); $this->render('update', array( 'modelClassroom' => $modelClassroom, 'modelTeachingData' => $modelTeachingData, - 'complementaryActivities' => $compActs )); } /** @@ -748,6 +734,26 @@ public function loadModel($id, $model) { if ($model == $this->MODEL_CLASSROOM) { $return = Classroom::model()->findByPk($id); + $complementaryActivitiesArray = []; + if ($return->complementary_activity_type_1 != null) { + array_push($complementaryActivitiesArray, $return->complementary_activity_type_1); + } + if ($return->complementary_activity_type_2 != null) { + array_push($complementaryActivitiesArray, $return->complementary_activity_type_2); + } + if ($return->complementary_activity_type_3 != null) { + array_push($complementaryActivitiesArray, $return->complementary_activity_type_3); + } + if ($return->complementary_activity_type_4 != null) { + array_push($complementaryActivitiesArray, $return->complementary_activity_type_4); + } + if ($return->complementary_activity_type_5 != null) { + array_push($complementaryActivitiesArray, $return->complementary_activity_type_5); + } + if ($return->complementary_activity_type_6 != null) { + array_push($complementaryActivitiesArray, $return->complementary_activity_type_6); + } + $return->complementary_activity_type_1 = $complementaryActivitiesArray; } else if ($model == $this->MODEL_TEACHING_DATA) { $classroom = $id; $instructors = InstructorTeachingData::model()->findAll('classroom_id_fk = ' . $classroom); diff --git a/app/extensions/Validator/InstructorDocumentsAndAddressValidation.php b/app/extensions/Validator/InstructorDocumentsAndAddressValidation.php index 02fe81f51..8ed138008 100755 --- a/app/extensions/Validator/InstructorDocumentsAndAddressValidation.php +++ b/app/extensions/Validator/InstructorDocumentsAndAddressValidation.php @@ -9,7 +9,7 @@ class InstructorDocumentsAndAddressValidation extends Register { //campo 5 function isCPFValid($cpfStr) { - if ($cpfStr !== "") { + if ($cpfStr !== "" && $cpfStr !== null) { $cpf = "$cpfStr"; if (strpos($cpf, "-") !== false) { $cpf = str_replace("-", "", $cpf); @@ -59,6 +59,8 @@ function isCPFValid($cpfStr) { if (!$returner) { return array("status" => false, "erro" => "'$cpfStr' inválido."); } + } else { + return array("status" => false, "erro" => "O campo CPF é obrigatório."); } return array("status" => true, "erro" => ""); } diff --git a/app/extensions/Validator/StudentIdentificationValidation.php b/app/extensions/Validator/StudentIdentificationValidation.php index dc8391187..59a83ed79 100755 --- a/app/extensions/Validator/StudentIdentificationValidation.php +++ b/app/extensions/Validator/StudentIdentificationValidation.php @@ -12,7 +12,7 @@ function __construct() } //campo 08 - function validateBirthday($date, $lowyear_limit, $currentyear, $classroomStage) + function validateBirthday($date, $currentyear, $classroomStage) { $result = $this->validateDateformart($date); @@ -24,7 +24,7 @@ function validateBirthday($date, $lowyear_limit, $currentyear, $classroomStage) $result = $this->isGreaterThan($mdy[2], 1910); if (!$result['status']) { - return array("status" => false, "erro" => "O ano de nascimento '$mdy[2]'' foi preenchido incorretamente."); + return array("status" => false, "erro" => "O ano de nascimento '$mdy[2]' foi preenchido incorretamente."); } $result = $this->isNotGreaterThan($mdy[2], $currentyear); @@ -37,6 +37,8 @@ function validateBirthday($date, $lowyear_limit, $currentyear, $classroomStage) $interval = $birthdayDate->diff($currentDate); if ($classroomStage == 1 && $interval->y > 6) { return array("status" => false, "erro" => "O aluno não pode ter mais de 06 anos e estar matriculado em uma turma com etapa de ensino 'Creche'."); + } else if ($classroomStage == 20 && ($interval->y < 9 || $interval->y > 50)) { + return array("status" => false, "erro" => "O aluno não pode ter menos de 09 anos ou mais de 50 anos e estar matriculado em uma turma do 7º Ano do Ensino Fundamental."); } return array("status" => true, "erro" => ""); @@ -92,15 +94,15 @@ function inNeedOfResources($hasDeficiency, $deficiencies, $resources) } else if ($resources[5] == 1 && $deficiencies[0] == 1) { return array("status" => false, "erro" => "Prova Ampliada (Fonte 18) não pode ser selecionado quando o campo Cegueira for selecionado."); } else if ($resources[5] == 1 && $resources[6] == 1) { - return array("status" => false, "erro" => "Prova Ampliada (Fonte 18) não pode ser selecionado quando o campo Prova Superampliada (Fonte 24) for selecionado."); + return array("status" => false, "erro" => "Prova Ampliada (Fonte 18) não pode ser selecionado quando o campo Prova Ampliada (Fonte 24) for selecionado."); } else if ($resources[5] == 1 && $resources[10] == 1) { return array("status" => false, "erro" => "Prova Ampliada (Fonte 18) não pode ser selecionado quando o campo Prova em Braille for selecionado."); } else if ($resources[6] == 1 && ($deficiencies[1] !== 1 && $deficiencies[4] !== 1)) { - return array("status" => false, "erro" => "Prova Superampliada (Fonte 24) não pode ser selecionado quando nenhum dos campos Baixa visão e Surdocegueira for selecionado."); + return array("status" => false, "erro" => "Prova Ampliada (Fonte 24) não pode ser selecionado quando nenhum dos campos Baixa visão e Surdocegueira for selecionado."); } else if ($resources[6] == 1 && $deficiencies[0] == 1) { - return array("status" => false, "erro" => "Prova Superampliada (Fonte 24) não pode ser selecionado quando o campo Cegueira for selecionado."); + return array("status" => false, "erro" => "Prova Ampliada (Fonte 24) não pode ser selecionado quando o campo Cegueira for selecionado."); } else if ($resources[6] == 1 && $resources[10] == 1) { - return array("status" => false, "erro" => "Prova Superampliada (Fonte 24) não pode ser selecionado quando o campo Prova em Braille for selecionado."); + return array("status" => false, "erro" => "Prova Ampliada (Fonte 24) não pode ser selecionado quando o campo Prova em Braille for selecionado."); } else if ($resources[7] == 1 && ($deficiencies[0] !== 1 && $deficiencies[1] !== 1 && $deficiencies[4] !== 1 && $deficiencies[5] !== 1 && $deficiencies[6] !== 1 && $deficiencies[8] !== 1)) { return array("status" => false, "erro" => "CD com áudio para deficiente visual não pode ser selecionado quando nenhum dos campos Cegueira, Baixa visão, Surdocegueira, Deficiência Física, Deficiência Intelectual e Autismo for selecionado."); } else if ($resources[7] == 1 && $deficiencies[2] == 1) { diff --git a/app/extensions/Validator/register.php b/app/extensions/Validator/register.php index 79b36d056..414473ff2 100755 --- a/app/extensions/Validator/register.php +++ b/app/extensions/Validator/register.php @@ -339,7 +339,7 @@ function checkNameRules($value) } if (preg_match('/(.)\1{3,}/', $value)) { - return array("status" => false, "erro" => "'$value' contém 4 ou mais caracteres repetidos"); + return array("status" => false, "erro" => "'$value' contém 4 ou mais caracteres repetidos (podendo ser letras ou caracteres em branco)."); } return array("status" => true, "erro" => ""); @@ -476,7 +476,7 @@ function checkMultiple($hasdeficiency, $multipleDeficiencies, $deficiencies) } } else { if ($multipleDeficiencies != "0") { - return array("status" => false, "erro" => "Opção 'Deficiência múltipla' foi selecionada, mas as deficiências informadas não acarretam em deficiência múltipla. Desmarque esta opção ou marque mais deficiências."); + return array("status" => false, "erro" => "Opção 'Deficiência múltipla' foi selecionada, mas as deficiências informadas não acarretam em deficiência múltipla. Desmarque esta opção ou marque mais de 02 deficiências (além da múltipla)."); } } } diff --git a/app/libraries/Educacenso/Register20.php b/app/libraries/Educacenso/Register20.php index 357a85ea9..041abeecc 100644 --- a/app/libraries/Educacenso/Register20.php +++ b/app/libraries/Educacenso/Register20.php @@ -135,7 +135,7 @@ public static function export($year) $attributes['course'] = ''; } - if ($attributes['edcenso_stage_vs_modality_fk'] == 1 || $attributes['edcenso_stage_vs_modality_fk'] == 2 || $attributes['edcenso_stage_vs_modality_fk'] == 3) { + if ($attributes["schooling"] == '0' || $attributes['edcenso_stage_vs_modality_fk'] == 1 || $attributes['edcenso_stage_vs_modality_fk'] == 2 || $attributes['edcenso_stage_vs_modality_fk'] == 3) { foreach ($attributes as $i => $attr) { $pos = strstr($i, 'discipline'); if ($pos) { @@ -156,6 +156,25 @@ public static function export($year) } } + if ($attributes["complementary_activity_type_1"] != null) { + $attributes["complementary_activity_type_1"] = self::convertComplementaryActivityTypes($attributes["complementary_activity_type_1"]); + } + if ($attributes["complementary_activity_type_2"] != null) { + $attributes["complementary_activity_type_2"] = self::convertComplementaryActivityTypes($attributes["complementary_activity_type_2"]); + } + if ($attributes["complementary_activity_type_3"] != null) { + $attributes["complementary_activity_type_3"] = self::convertComplementaryActivityTypes($attributes["complementary_activity_type_3"]); + } + if ($attributes["complementary_activity_type_4"] != null) { + $attributes["complementary_activity_type_4"] = self::convertComplementaryActivityTypes($attributes["complementary_activity_type_4"]); + } + if ($attributes["complementary_activity_type_5"] != null) { + $attributes["complementary_activity_type_5"] = self::convertComplementaryActivityTypes($attributes["complementary_activity_type_5"]); + } + if ($attributes["complementary_activity_type_6"] != null) { + $attributes["complementary_activity_type_6"] = self::convertComplementaryActivityTypes($attributes["complementary_activity_type_6"]); + } + $edcensoAliases = EdcensoAlias::model()->findAll('year = :year and register = 20 order by corder', [":year" => $year]); foreach ($edcensoAliases as $edcensoAlias) { $register[$edcensoAlias->corder] = $edcensoAlias->default; @@ -164,6 +183,7 @@ public static function export($year) $register[$edcensoAlias->corder] = ''; } else if ($edcensoAlias->corder == 21 && in_array($attributes['edcenso_stage_vs_modality_fk'], [1, 2, 3, 39, 40, 64, 68])) { $register[21] = '0'; + } else if ($edcensoAlias->corder == 23 && in_array($attributes['edcenso_stage_vs_modality_fk'], [1, 2, 3, 39, 40, 64, 68])) { $register[23] = '1'; } } else if ($edcensoAlias->corder == 34 || $edcensoAlias->corder == 35 || $edcensoAlias->corder == 36 || $edcensoAlias->corder == 37 || $edcensoAlias->corder == 38 || $edcensoAlias->corder == 39) { @@ -171,25 +191,35 @@ public static function export($year) $register[$edcensoAlias->corder] = ''; } else if ($edcensoAlias->corder == 34 && !in_array($attributes['edcenso_stage_vs_modality_fk'], [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, 64, 56, 69, 70, 71, 72, 73, 74, 67])) { $register[34] = '0'; + } else if ($register[34] == '0' && $edcensoAlias->corder == 35) { $register[35] = '1'; - } else if ($register[34] == '0' && $edcensoAlias->corder == 35 && !in_array($attributes['edcenso_stage_vs_modality_fk'], [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])) { - $register[35] = '0'; + if (!in_array($attributes['edcenso_stage_vs_modality_fk'], [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])) { + $register[35] = '0'; + } + } else if ($register[34] == '0' && $register[35] == '0' && $edcensoAlias->corder == 36) { $register[36] = '1'; - } else if ($register[34] == '0' && $register[35] == '0' && $edcensoAlias->corder == 36 && !in_array($attributes['edcenso_stage_vs_modality_fk'], [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41, 56])) { - $register[36] = '0'; + if (!in_array($attributes['edcenso_stage_vs_modality_fk'], [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 41, 56])) { + $register[36] = '0'; + } + } else if ($register[34] == '0' && $register[35] == '0' && $register[36] == '0' && $edcensoAlias->corder == 37) { $register[37] = '1'; - } else if ($register[34] == '0' && $register[35] == '0' && $register[36] == '0' && $edcensoAlias->corder == 37 && !in_array($attributes['edcenso_stage_vs_modality_fk'], [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, 64, 56, 69, 70, 71, 72, 73, 74, 67, 68])) { - $register[37] = '0'; + if (!in_array($attributes['edcenso_stage_vs_modality_fk'], [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, 64, 56, 69, 70, 71, 72, 73, 74, 67, 68])) { + $register[37] = '0'; + } + } else if ($register[34] == '0' && $register[35] == '0' && $register[36] == '0' && $register[37] == '0' && $edcensoAlias->corder == 38) { $register[38] = '1'; - } else if ($register[34] == '0' && $register[35] == '0' && $register[36] == '0' && $register[37] == '0' && $edcensoAlias->corder == 38 && !in_array($attributes['edcenso_stage_vs_modality_fk'], [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, 64, 56, 69, 70, 71, 72, 73, 74, 67, 68])) { - $register[38] = '0'; + if (!in_array($attributes['edcenso_stage_vs_modality_fk'], [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, 64, 56, 69, 70, 71, 72, 73, 74, 67, 68])) { + $register[38] = '0'; + } + } else if ($register[34] == '0' && $register[35] == '0' && $register[36] == '0' && $register[37] == '0' && $register[38] == '0' && $edcensoAlias->corder == 39) { $register[39] = '1'; - } else if ($register[34] == '0' && $register[35] == '0' && $register[36] == '0' && $register[37] == '0' && $register[38] == '0' && $edcensoAlias->corder == 39 && !in_array($attributes['edcenso_stage_vs_modality_fk'], [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])) { - $register[39] = '0'; - $register[34] = '1'; + if (!in_array($attributes['edcenso_stage_vs_modality_fk'], [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])) { + $register[39] = '0'; + $register[34] = '1'; + } } } else if ($edcensoAlias->corder == 73) { - if ($attributes['edcenso_stage_vs_modality_fk'] == 1 || $attributes['edcenso_stage_vs_modality_fk'] == 2 || $attributes['edcenso_stage_vs_modality_fk'] == 3) { + if ($attributes["schooling"] == '0' || $attributes['edcenso_stage_vs_modality_fk'] == 1 || $attributes['edcenso_stage_vs_modality_fk'] == 2 || $attributes['edcenso_stage_vs_modality_fk'] == 3) { $register[$edcensoAlias->corder] = ''; } else { $register[$edcensoAlias->corder] = '0'; @@ -205,4 +235,37 @@ public static function export($year) return $registers; } + + private static function convertComplementaryActivityTypes($code) { + switch($code) { + case "13106": + return "13104"; + case "16101": + return "16001"; + case "51002": + return "13301"; + case "45910": + return "41007"; + case "10111": + return "10103"; + case "15001": + return "15001"; + case "15005": + return "15004"; + case "1112": + return "14103"; + case "2": + return "29999"; + case "22011": + return "22011"; + case "31001": + return "31001"; + case "31015": + return "31017"; + case "31002": + return "31016"; + case "39999": + return "39999"; + } + } } \ No newline at end of file diff --git a/app/libraries/Educacenso/Register30.php b/app/libraries/Educacenso/Register30.php index 8fe006b90..faac3d1fb 100644 --- a/app/libraries/Educacenso/Register30.php +++ b/app/libraries/Educacenso/Register30.php @@ -453,6 +453,16 @@ private static function exportInstructorVariable($instructor, $register, $year) $instructor['post_graduation_none'] = '1'; } + if ($instructor['high_education_course_code_1_fk'] !== null && $instructor['high_education_course_code_1_fk'] !== "") { + $instructor['high_education_course_code_1_fk'] = self::convertCourseCodes($instructor['high_education_course_code_1_fk']); + } + if ($instructor['high_education_course_code_2_fk'] !== null && $instructor['high_education_course_code_2_fk'] !== "") { + $instructor['high_education_course_code_2_fk'] = self::convertCourseCodes($instructor['high_education_course_code_2_fk']); + } + if ($instructor['high_education_course_code_3_fk'] !== null && $instructor['high_education_course_code_3_fk'] !== "") { + $instructor['high_education_course_code_3_fk'] = self::convertCourseCodes($instructor['high_education_course_code_3_fk']); + } + foreach ($instructor as $key => $attr) { $alias = EdcensoAlias::model()->findByAttributes(['register' => '302', 'attr' => $key, 'year' => $year]); if (isset($alias->corder)) { @@ -466,6 +476,37 @@ private static function exportInstructorVariable($instructor, $register, $year) return $register; } + private static function convertCourseCodes($code) { + switch($code) { + case "142C01": + return "0113P012"; + case "142P01": + return "0113P011"; + case "145F01": + return "0114B011"; + case "145F10": + return "0114G011"; + case "145F11": + return "0114H011"; + case "145F14": + return "0115L081"; + case "145F15": + return "0115L131"; + case "145F17": + return "0115L191"; + case "145F18": + return "0114M011"; + case "146F15": + return "0114E031"; + case "146P01": + return "0111C012"; + case "421C01": + return "0511B012"; + case "999990": + return "0114E061"; + } + } + public static function export($year) { $registers = []; @@ -505,7 +546,7 @@ public static function export($year) array_push($registers, implode('|', $register)); } - array_push($registers, '30|' . Yii::app()->user->school . '|909999|183258253160|84278560591|RUANCELI DO NASCIMENTO SANTOS|23/05/1988|1|TANIA MARIA DO NASCIMENTO||1|3|1|76|2800670|0|||||||||||||||||||||||||||||6||145F01|2008|3||||||||||||||||||||||||||||1|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|1|0|RUAN@IPTI.ORG.BR'); + array_push($registers, '30|' . Yii::app()->user->school . '|909999|183258253160|84278560591|RUANCELI DO NASCIMENTO SANTOS|23/05/1988|1|TANIA MARIA DO NASCIMENTO||1|3|1|76|2800670|0|||||||||||||||||||||||||||||6||0114B011|2008|3||||||||||||||||||||||||||||1|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|1|0|RUAN@IPTI.ORG.BR'); return $registers; } diff --git a/app/libraries/Educacenso/Register60.php b/app/libraries/Educacenso/Register60.php index adc925496..df855fbd8 100644 --- a/app/libraries/Educacenso/Register60.php +++ b/app/libraries/Educacenso/Register60.php @@ -215,9 +215,9 @@ public static function export($year) } } - if (empty($enrollment['student_inep_id'])) { - $student = StudentIdentification::model()->findByPk($enrollment['student_fk']); - if (!is_null($student)) { + $student = StudentIdentification::model()->findByPk($enrollment['student_fk']); + if (!is_null($student)) { + if (empty($enrollment['student_inep_id']) || $enrollment['student_inep_id'] == $enrollment->school_inep_id_fk) { $enrollment['student_inep_id'] = $student->inep_id; } } diff --git a/app/migrations/2.12.5_validador_educacenso_sli/setando_default_para_alguns_campos_novos b/app/migrations/2.12.5_validador_educacenso_sli/setando_default_para_alguns_campos_novos new file mode 100644 index 000000000..416aae99e --- /dev/null +++ b/app/migrations/2.12.5_validador_educacenso_sli/setando_default_para_alguns_campos_novos @@ -0,0 +1,2 @@ +update school_structure set energy_supply_generator_alternative = 0 where energy_supply_generator_alternative is null; +update school_structure set dependencies_bathroom_workes = 0 where dependencies_bathroom_workes is null; \ No newline at end of file diff --git a/app/models/SchoolStructure.php b/app/models/SchoolStructure.php index 6a2c09bbb..ac27bc0ff 100755 --- a/app/models/SchoolStructure.php +++ b/app/models/SchoolStructure.php @@ -31,6 +31,7 @@ * @property integer $water_supply_inexistent * @property integer $energy_supply_public * @property integer $energy_supply_generator + * @property integer $energy_supply_generator_alternative * @property integer $energy_supply_other * @property integer $energy_supply_inexistent * @property integer $sewage_public @@ -61,6 +62,7 @@ * @property integer $dependencies_prysical_disability_bathroom * @property integer $dependencies_physical_disability_support * @property integer $dependencies_bathroom_with_shower + * @property integer $dependencies_bathroom_workes * @property integer $dependencies_refectory * @property integer $dependencies_storeroom * @property integer $dependencies_warehouse @@ -148,7 +150,7 @@ public function rules() // will receive user inputs. return array( array('school_inep_id_fk', 'required'), - array('operation_location_building, operation_location_temple, operation_location_businness_room, operation_location_instructor_house, operation_location_other_school_room, operation_location_barracks, operation_location_socioeducative_unity, operation_location_prison_unity, operation_location_other, building_occupation_situation, shared_building_with_school, consumed_water_type, water_supply_public, water_supply_artesian_well, water_supply_well, water_supply_river, water_supply_inexistent, energy_supply_public, energy_supply_generator, energy_supply_other, energy_supply_inexistent, sewage_public, sewage_fossa, sewage_inexistent, garbage_destination_collect, garbage_destination_burn, garbage_destination_throw_away, garbage_destination_recycle, garbage_destination_bury, garbage_destination_other, dependencies_principal_room, dependencies_instructors_room, dependencies_secretary_room, dependencies_info_lab, dependencies_science_lab, dependencies_aee_room, dependencies_indoor_sports_court, dependencies_outdoor_sports_court, dependencies_kitchen, dependencies_library, dependencies_reading_room, dependencies_playground, dependencies_nursery, dependencies_outside_bathroom, dependencies_inside_bathroom, dependencies_child_bathroom, dependencies_prysical_disability_bathroom, dependencies_physical_disability_support, dependencies_bathroom_with_shower, dependencies_refectory, dependencies_storeroom, dependencies_warehouse, dependencies_auditorium, dependencies_covered_patio, dependencies_uncovered_patio, dependencies_student_accomodation, dependencies_instructor_accomodation, dependencies_green_area, dependencies_laundry, dependencies_professional_specific_lab, dependencies_vocational_education_workshop, dependencies_none, classroom_count, used_classroom_count, instruments_inexistent, equipments_material_professional_education, equipments_tv, equipments_vcr, equipments_dvd, equipments_satellite_dish, equipments_copier, equipments_overhead_projector, equipments_printer, equipments_stereo_system, equipments_data_show, equipments_fax, equipments_camera, equipments_computer, equipments_multifunctional_printer, equipments_inexistent, administrative_computers_count, student_computers_count, internet_access, bandwidth, employees_count, feeding, aee, complementary_activities, modalities_regular, modalities_especial, modalities_eja, modalities_professional, basic_education_cycle_organized, different_location, sociocultural_didactic_material_none, sociocultural_didactic_material_quilombola, sociocultural_didactic_material_native, native_education, native_education_language_native, native_education_language_portuguese, edcenso_native_languages_fk, brazil_literate, open_weekend, pedagogical_formation_by_alternance, building_otherschool, sewage_fossa_common, garbage_destination_public, supply_food, treatment_garbage_parting_garbage, treatment_garbage_resuse, traetment_garbage_inexistent, dependencies_prysical_disability_bathroom, dependencies_pool, dependencies_arts_room, dependencies_music_room, dependencies_dance_room, dependencies_multiuse_room, dependencies_yardzao, dependencies_vivarium, dependencies_outside_roomspublic, dependencies_indoor_roomspublic, dependencies_climate_roomspublic,dependencies_acessibility_roomspublic, acessability_handrails_guardrails, acessability_elevator, acessability_tactile_floor, acessability_doors_80cm, acessability_ramps, acessability_sound_signaling, acessability_tactile_singnaling,acessability_visual_signaling, acessabilty_inexistent, equipments_scanner, equipments_qtd_blackboard, equipments_qtd_desktop, equipments_qtd_notebookstudent, equipments_qtd_tabletstudent,equipments_multimedia_collection, equipments_toys_early, equipments_scientific_materials, equipments_equipment_amplification, equipments_musical_instruments, equipments_educational_games, equipments_material_cultural, equipments_material_sports, equipments_material_teachingindian, equipments_material_teachingethnic, equipments_material_teachingrural, internet_access_administrative, internet_access_educative_process, internet_access_student, internet_access_community, internet_access_inexistent, internet_access_connected_personaldevice, internet_access_connected_desktop, internet_access_broadband, internet_access_local_cable, internet_access_local_wireless, internet_access_local_inexistet, workers_administrative_assistant, workers_service_assistant, workers_librarian, workers_firefighter, workers_coordinator_shift, workers_speech_therapist, workers_nutritionist, workers_psychologist, workers_cooker, workers_support_professionals, workers_school_secretary, workers_security_guards, workers_monitors, org_teaching_series_year, org_teaching_semester_periods, org_teaching_elementary_cycle, org_teaching_non_serialgroups, org_teaching_modules, org_teaching_regular_alternation, edcenso_native_languages_fk2, edcenso_native_languages_fk3, select_adimission, booking_enrollment_self_declaredskin, booking_enrollment_income, booking_enrollment_public_school, booking_enrollment_disabled_person, booking_enrollment_others, booking_enrollment_inexistent, website, community_integration, space_schoolenviroment, ppp_updated, board_organ_association_parent, board_organ_association_parentinstructors, board_organ_board_school, board_organ_student_guild, board_organ_others, board_organ_inexistent, provide_potable_water, dependencies_student_repose_room', 'numerical', 'integerOnly'=>true), + array('operation_location_building, operation_location_temple, operation_location_businness_room, operation_location_instructor_house, operation_location_other_school_room, operation_location_barracks, operation_location_socioeducative_unity, operation_location_prison_unity, operation_location_other, building_occupation_situation, shared_building_with_school, consumed_water_type, water_supply_public, water_supply_artesian_well, water_supply_well, water_supply_river, water_supply_inexistent, energy_supply_public, energy_supply_generator, energy_supply_generator_alternative, energy_supply_other, energy_supply_inexistent, sewage_public, sewage_fossa, sewage_inexistent, garbage_destination_collect, garbage_destination_burn, garbage_destination_throw_away, garbage_destination_recycle, garbage_destination_bury, garbage_destination_other, dependencies_principal_room, dependencies_instructors_room, dependencies_secretary_room, dependencies_info_lab, dependencies_science_lab, dependencies_aee_room, dependencies_indoor_sports_court, dependencies_outdoor_sports_court, dependencies_kitchen, dependencies_library, dependencies_reading_room, dependencies_playground, dependencies_nursery, dependencies_outside_bathroom, dependencies_inside_bathroom, dependencies_child_bathroom, dependencies_prysical_disability_bathroom, dependencies_physical_disability_support, dependencies_bathroom_with_shower, dependencies_bathroom_workes, dependencies_refectory, dependencies_storeroom, dependencies_warehouse, dependencies_auditorium, dependencies_covered_patio, dependencies_uncovered_patio, dependencies_student_accomodation, dependencies_instructor_accomodation, dependencies_green_area, dependencies_laundry, dependencies_professional_specific_lab, dependencies_vocational_education_workshop, dependencies_none, classroom_count, used_classroom_count, instruments_inexistent, equipments_material_professional_education, equipments_tv, equipments_vcr, equipments_dvd, equipments_satellite_dish, equipments_copier, equipments_overhead_projector, equipments_printer, equipments_stereo_system, equipments_data_show, equipments_fax, equipments_camera, equipments_computer, equipments_multifunctional_printer, equipments_inexistent, administrative_computers_count, student_computers_count, internet_access, bandwidth, employees_count, feeding, aee, complementary_activities, modalities_regular, modalities_especial, modalities_eja, modalities_professional, basic_education_cycle_organized, different_location, sociocultural_didactic_material_none, sociocultural_didactic_material_quilombola, sociocultural_didactic_material_native, native_education, native_education_language_native, native_education_language_portuguese, edcenso_native_languages_fk, brazil_literate, open_weekend, pedagogical_formation_by_alternance, building_otherschool, sewage_fossa_common, garbage_destination_public, supply_food, treatment_garbage_parting_garbage, treatment_garbage_resuse, traetment_garbage_inexistent, dependencies_prysical_disability_bathroom, dependencies_pool, dependencies_arts_room, dependencies_music_room, dependencies_dance_room, dependencies_multiuse_room, dependencies_yardzao, dependencies_vivarium, dependencies_outside_roomspublic, dependencies_indoor_roomspublic, dependencies_climate_roomspublic,dependencies_acessibility_roomspublic, acessability_handrails_guardrails, acessability_elevator, acessability_tactile_floor, acessability_doors_80cm, acessability_ramps, acessability_sound_signaling, acessability_tactile_singnaling,acessability_visual_signaling, acessabilty_inexistent, equipments_scanner, equipments_qtd_blackboard, equipments_qtd_desktop, equipments_qtd_notebookstudent, equipments_qtd_tabletstudent,equipments_multimedia_collection, equipments_toys_early, equipments_scientific_materials, equipments_equipment_amplification, equipments_musical_instruments, equipments_educational_games, equipments_material_cultural, equipments_material_sports, equipments_material_teachingindian, equipments_material_teachingethnic, equipments_material_teachingrural, internet_access_administrative, internet_access_educative_process, internet_access_student, internet_access_community, internet_access_inexistent, internet_access_connected_personaldevice, internet_access_connected_desktop, internet_access_broadband, internet_access_local_cable, internet_access_local_wireless, internet_access_local_inexistet, workers_administrative_assistant, workers_service_assistant, workers_librarian, workers_firefighter, workers_coordinator_shift, workers_speech_therapist, workers_nutritionist, workers_psychologist, workers_cooker, workers_support_professionals, workers_school_secretary, workers_security_guards, workers_monitors, org_teaching_series_year, org_teaching_semester_periods, org_teaching_elementary_cycle, org_teaching_non_serialgroups, org_teaching_modules, org_teaching_regular_alternation, edcenso_native_languages_fk2, edcenso_native_languages_fk3, select_adimission, booking_enrollment_self_declaredskin, booking_enrollment_income, booking_enrollment_public_school, booking_enrollment_disabled_person, booking_enrollment_others, booking_enrollment_inexistent, website, community_integration, space_schoolenviroment, ppp_updated, board_organ_association_parent, board_organ_association_parentinstructors, board_organ_board_school, board_organ_student_guild, board_organ_others, board_organ_inexistent, provide_potable_water, dependencies_student_repose_room', 'numerical', 'integerOnly'=>true), array('register_type', 'length', 'max'=>2), array('school_inep_id_fk, shared_school_inep_id_1, shared_school_inep_id_2, shared_school_inep_id_3, shared_school_inep_id_4, shared_school_inep_id_5, shared_school_inep_id_6', 'length', 'max'=>8), // The following rule is used by search(). diff --git a/js/classroom/form/_initialization.js b/js/classroom/form/_initialization.js index 07c0c3b5a..5a913b5ab 100755 --- a/js/classroom/form/_initialization.js +++ b/js/classroom/form/_initialization.js @@ -15,7 +15,6 @@ $(document).ready(function() { // $(form+"assistance_type").val(val).trigger('change'); // }}); if ($("#Classroom_complementary_activity").is(":checked")) { - $(form+"complementary_activity_type_1").val($.parseJSON(jsonCompActv)); $("#complementary_activity").show(); } else { $("#complementary_activity").hide(); From 707524b29a38e1cba5f2159f438b25df7e158a2e Mon Sep 17 00:00:00 2001 From: Paulo Roberto Date: Mon, 11 Jul 2022 09:23:06 -0300 Subject: [PATCH 2/2] =?UTF-8?q?finalizado=20segunda=20leva=20de=20corre?= =?UTF-8?q?=C3=A7=C3=A3o=20do=20validador=20e=20exportador=20edcenso?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/CensoController.php | 6 +-- .../Validator/ClassroomValidation.php | 38 ++++--------------- .../StudentIdentificationValidation.php | 6 +++ app/extensions/Validator/register.php | 2 +- app/libraries/Educacenso/Register20.php | 5 +++ themes/default/views/censo/validate.php | 2 +- 6 files changed, 21 insertions(+), 38 deletions(-) diff --git a/app/controllers/CensoController.php b/app/controllers/CensoController.php index eaae5621b..c4318e6a0 100755 --- a/app/controllers/CensoController.php +++ b/app/controllers/CensoController.php @@ -597,11 +597,7 @@ public function validateClassroom($column, $school, $schoolstructure) //campo 37 - $schoolStructureModalities['modalities_regular'] = $schoolstructure['modalities_regular']; - $schoolStructureModalities['modalities_especial'] = $schoolstructure['modalities_especial']; - $schoolStructureModalities['modalities_eja'] = $schoolstructure['modalities_eja']; - $schoolStructureModalities['modalities_professional'] = $schoolstructure['modalities_professional']; - $result = $crv->isValidModality($column['modality'], $column['assistance_type'], $schoolStructureModalities, $column['pedagogical_mediation_type']); + $result = $crv->isValidModality($column['modality'], $column['pedagogical_mediation_type'], $column["complementary_activity"]); if (!$result['status']) array_push($log, array('modality' => $result['erro'])); //campo 38 diff --git a/app/extensions/Validator/ClassroomValidation.php b/app/extensions/Validator/ClassroomValidation.php index 72312c769..2ec3f42a6 100755 --- a/app/extensions/Validator/ClassroomValidation.php +++ b/app/extensions/Validator/ClassroomValidation.php @@ -367,40 +367,16 @@ function isValidAEE($aeeArray, $assistance_type) } //campo 37 - function isValidModality($modality, $assistance_type, $schoolStructureModalities, $mediation) + function isValidModality($modality, $mediation, $complementaryActivity) { - $allowedValues = array('1', '2', '3', '4'); - $emptyModality = $this->isEmpty($modality); - - if ($emptyModality['status'] && $assistance_type != 4 && $assistance_type != 5) { - return array('status' => false, 'erro' => 'Deve ser preenchido quando for Atividade Complementar ou AEE'); - } - if (!$emptyModality['status'] && $assistance_type == 4) { - return array('status' => false, 'erro' => 'Nao pode ser preenchido quando for Atividade Complementar'); - } - if (!$emptyModality['status'] && $assistance_type == 5) { - return array('status' => false, 'erro' => 'Nao pode ser preenchido quando for AEE'); - } - if (!in_array($modality, $allowedValues)) { - return array('status' => false, 'erro' => 'O campo foi preenchido com valor invalido'); - } - if ($modality == 1 && $schoolStructureModalities['modalities_regular'] != 1) { - return array('status' => false, 'erro' => $this->replaceCodeModalities('O campo não pode ser preenchido com 1 quando não for educacao regular')); - } - if ($modality == 2 && $schoolStructureModalities['modalities_especial'] != 1) { - return array('status' => false, 'erro' => $this->replaceCodeModalities('O campo nao pode ser preenchido com 2 quando nao for educacao especial')); - } - if ($modality == 3 && $schoolStructureModalities['modalities_eja'] != 1) { - return array('status' => false, 'erro' => $this->replaceCodeModalities('O campo nao pode ser preenchido com 2 quando nao for educacao especial')); - } - if ($modality == 4 && $schoolStructureModalities['modalities_professional'] != 1) { - return array('status' => false, 'erro' => $this->replaceCodeModalities('O campo nao pode ser preenchido com 2 quando nao for educacao especial')); + if ($mediation == 2 && ($modality !== 2 && $modality !== 3)) { + return array('status' => false, 'erro' => 'Deve ser selecionada a opção "Educação Especial" ou "EJA" quando a mediação didático-pedagógica for Semipresencial.'); } - if (!($modality == 2 || $modality == 3) && $mediation == 2) { - return array('status' => false, 'erro' => $this->replaceCodeModalities('O campo modalidade deve ser 2 ou 3 quando a mediacao for semipresencial')); + if ($mediation == 3 && ($modality !== 1 && $modality !== 3 && $modality !== 4)) { + return array('status' => false, 'erro' => 'Deve ser selecionada a opção "Ensino Regular", "EJA" ou "Educação Profissional" quando a mediação didático-pedagógica for Educação à Distância.'); } - if (!($modality == 1 || $modality == 3 || $modality == 4) && $mediation == 3) { - return array('status' => false, 'erro' => $this->replaceCodeModalities('O campo modalidade deve ser 1, 3 ou 4 quando a mediacao for educacao a distancia')); + if ($complementaryActivity == 1 && $modality == 3) { + return array('status' => false, 'erro' => 'Não deve ser selecionada a opção "EJA" quando o tipo de atendimento for "Atividade Complementar".'); } return array('status' => true, 'erro' => ''); } diff --git a/app/extensions/Validator/StudentIdentificationValidation.php b/app/extensions/Validator/StudentIdentificationValidation.php index 59a83ed79..8c9fb6ed5 100755 --- a/app/extensions/Validator/StudentIdentificationValidation.php +++ b/app/extensions/Validator/StudentIdentificationValidation.php @@ -39,6 +39,12 @@ function validateBirthday($date, $currentyear, $classroomStage) return array("status" => false, "erro" => "O aluno não pode ter mais de 06 anos e estar matriculado em uma turma com etapa de ensino 'Creche'."); } else if ($classroomStage == 20 && ($interval->y < 9 || $interval->y > 50)) { return array("status" => false, "erro" => "O aluno não pode ter menos de 09 anos ou mais de 50 anos e estar matriculado em uma turma do 7º Ano do Ensino Fundamental."); + } else if (($classroomStage == 69 || $classroomStage == 70 || $classroomStage == 72) && ($interval->y < 12 || $interval->y > 94)) { + return array("status" => false, "erro" => "O aluno não pode ter menos de 12 anos ou mais de 94 anos e estar matriculado em uma turma EJA do Ensino Fundamental."); + } else if ($classroomStage == 73 && ($interval->y < 12 || $interval->y > 94)) { + return array("status" => false, "erro" => "O aluno não pode ter menos de 12 anos ou mais de 94 anos e estar matriculado em uma turma FIC Integrado à Modalidade EJA do Ensino Fundamental."); + } else if ($classroomStage == 68 && ($interval->y < 12 || $interval->y > 94)) { + return array("status" => false, "erro" => "O aluno não pode ter menos de 12 anos ou mais de 94 anos e estar matriculado em uma turma FIC Concomitante."); } return array("status" => true, "erro" => ""); diff --git a/app/extensions/Validator/register.php b/app/extensions/Validator/register.php index 414473ff2..9213d2fe2 100755 --- a/app/extensions/Validator/register.php +++ b/app/extensions/Validator/register.php @@ -109,7 +109,7 @@ function isRegister($number, $value) function isAllowedInepId($inep_id, $allowed_inep_ids) { if (!in_array($inep_id, $allowed_inep_ids)) { - return array("status" => false, "erro" => "inep_id $inep_id não está entre os permitidos"); + return array("status" => false, "erro" => "ID INEP $inep_id não está entre os permitidos"); } return array("status" => true, "erro" => ""); diff --git a/app/libraries/Educacenso/Register20.php b/app/libraries/Educacenso/Register20.php index 041abeecc..23712b1ae 100644 --- a/app/libraries/Educacenso/Register20.php +++ b/app/libraries/Educacenso/Register20.php @@ -186,6 +186,11 @@ public static function export($year) } else if ($edcensoAlias->corder == 23 && in_array($attributes['edcenso_stage_vs_modality_fk'], [1, 2, 3, 39, 40, 64, 68])) { $register[23] = '1'; } + } else if ($edcensoAlias->corder == 31 || $edcensoAlias->corder == 32) { + $register[$edcensoAlias->corder] = $attributes[$edcensoAlias["attr"]]; + if ($register[21] == '' && $register[23] == '') { + $register[$edcensoAlias->corder] = ''; + } } else if ($edcensoAlias->corder == 34 || $edcensoAlias->corder == 35 || $edcensoAlias->corder == 36 || $edcensoAlias->corder == 37 || $edcensoAlias->corder == 38 || $edcensoAlias->corder == 39) { if ($attributes['edcenso_stage_vs_modality_fk'] == null || in_array($attributes['edcenso_stage_vs_modality_fk'], [1, 2, 3])) { $register[$edcensoAlias->corder] = ''; diff --git a/themes/default/views/censo/validate.php b/themes/default/views/censo/validate.php index 4d25193b7..b50efe99b 100755 --- a/themes/default/views/censo/validate.php +++ b/themes/default/views/censo/validate.php @@ -28,7 +28,7 @@ margin-bottom: 10px; } .ellipsis { - max-width: 100% !important; + max-width: calc(100% - 40px) !important; }