Commit 9bd5df3b3eaee117819a60c0f7a6bcad38744a8d

Authored by Paula Bonot
Committed by GitHub
2 parents cedcf36f 16bcf3dd
Exists in 2.8 and in 6 other branches 2.2, 2.3, 2.4, 2.5, 2.6, 2.7

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,
... ...