Commit 9bd5df3b3eaee117819a60c0f7a6bcad38744a8d
Committed by
GitHub
Exists in
2.8
and in
6 other branches
Merge pull request #6480 from portabilis/issue-6454
Desconsidera disciplina dispensada da turma
Showing
1 changed file
with
28 additions
and
1 deletions
Show diff stats
ieducar/lib/App/Model/IedFinder.php
... | ... | @@ -3,6 +3,7 @@ |
3 | 3 | use App\Models\LegacyDiscipline; |
4 | 4 | use App\Models\LegacyDisciplineAcademicYear; |
5 | 5 | use App\Models\LegacySchool; |
6 | +use App\Models\LegacySchoolClass; | |
6 | 7 | use iEducar\Modules\Enrollments\Exceptions\StudentNotEnrolledInSchoolClass; |
7 | 8 | use iEducar\Modules\AcademicYear\Exceptions\DisciplineNotLinkedToRegistrationException; |
8 | 9 | use iEducar\Modules\EvaluationRules\Exceptions\EvaluationRuleNotDefinedInLevel; |
... | ... | @@ -671,11 +672,13 @@ class App_Model_IedFinder extends CoreExt_Entity |
671 | 672 | $where['componente_curricular_id'] = $componenteCurricularId; |
672 | 673 | } |
673 | 674 | |
675 | + $disciplinaDispensada = self::disciplinaDispensadaDaTurma($turma); | |
676 | + | |
674 | 677 | $componentesTurma = $mapper->findAll([], $where); |
675 | 678 | |
676 | 679 | // Não existem componentes específicos para a turma |
677 | 680 | if (0 == count($componentesTurma)) { |
678 | - return self::getEscolaSerieDisciplina( | |
681 | + $componentesTurma = self::getEscolaSerieDisciplina( | |
679 | 682 | $serieId, |
680 | 683 | $escola, |
681 | 684 | $componenteMapper, |
... | ... | @@ -684,6 +687,9 @@ class App_Model_IedFinder extends CoreExt_Entity |
684 | 687 | $trazerDetalhes, |
685 | 688 | $ano |
686 | 689 | ); |
690 | + | |
691 | + unset($componentesTurma[$disciplinaDispensada]); | |
692 | + return $componentesTurma; | |
687 | 693 | } |
688 | 694 | |
689 | 695 | $componentes = []; |
... | ... | @@ -1101,6 +1107,27 @@ class App_Model_IedFinder extends CoreExt_Entity |
1101 | 1107 | return $disciplinasDispensa; |
1102 | 1108 | } |
1103 | 1109 | |
1110 | + public static function disciplinaDispensadaDaTurma($codTurma) | |
1111 | + { | |
1112 | + if (!$codTurma) { | |
1113 | + return; | |
1114 | + } | |
1115 | + | |
1116 | + $discipline = Cache::store('array')->remember("disciplinaDispensadaDaTurma:{$codTurma}", now()->addMinute(), function () use ($codTurma) { | |
1117 | + $discipline = LegacySchoolClass::query()->find($codTurma)->ref_cod_disciplina_dispensada; | |
1118 | + | |
1119 | + // Caso não exista a disciplina, armazena a string 'null' | |
1120 | + return $discipline ?: 'null'; | |
1121 | + }); | |
1122 | + | |
1123 | + // Se o retorno é uma string 'null', sabemos o que o valor real é null | |
1124 | + if ($discipline === 'null') { | |
1125 | + return null; | |
1126 | + } | |
1127 | + | |
1128 | + return $discipline; | |
1129 | + } | |
1130 | + | |
1104 | 1131 | public static function validaDispensaPorMatricula( |
1105 | 1132 | $codMatricula, |
1106 | 1133 | $codSerie, | ... | ... |