Commit c8c9ad32bc54535cabdee7192128f960079a2f4e

Authored by Eriksen Costa
1 parent 2ec380bb
Exists in master

Atualizada funcionalidade Dispensa de Componente Curricular para buscar os compo…

…nentes através da API de {{{App_Model_IedFinder}}}. '''Observação:''' agora o aluno só pode ser dispensado quando estiver enturmado, já que uma turma pode ter componentes curriculares específicos a ela
ieducar/intranet/educar_dispensa_disciplina_cad.php
... ... @@ -168,8 +168,6 @@ class indice extends clsCadastro
168 168 $det_escola = $obj_escola->detalhe();
169 169 $this->ref_cod_instituicao = $det_escola['ref_cod_instituicao'];
170 170  
171   - $this->campoRotulo('nm_aluno', 'Nome do Aluno', $det_aluno['nome_aluno']);
172   -
173 171 $obj_matricula_turma = new clsPmieducarMatriculaTurma();
174 172 $lst_matricula_turma = $obj_matricula_turma->lista($this->ref_cod_matricula,
175 173 NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, NULL,
... ... @@ -181,6 +179,13 @@ class indice extends clsCadastro
181 179 $this->ref_sequencial = $det['sequencial'];
182 180 }
183 181  
  182 + $this->campoRotulo('nm_aluno', 'Nome do Aluno', $det_aluno['nome_aluno']);
  183 +
  184 + if (!isset($this->ref_cod_turma)) {
  185 + $this->mensagem = 'Para dispensar um aluno de um componente curricular, é necessário que este esteja enturmado.';
  186 + return;
  187 + }
  188 +
184 189 // primary keys
185 190 $this->campoOculto('ref_cod_matricula', $this->ref_cod_matricula);
186 191 $this->campoOculto('ref_cod_serie', $this->ref_cod_serie);
... ... @@ -188,15 +193,18 @@ class indice extends clsCadastro
188 193  
189 194 $opcoes = array('' => 'Selecione');
190 195  
191   - $objTemp = new clsPmieducarEscolaSerieDisciplina();
192   - $lista = $objTemp->lista($this->ref_cod_serie, $this->ref_cod_escola, NULL, 1);
  196 + // Seleciona os componentes curriculares da turma
  197 + try {
  198 + $componentes = App_Model_IedFinder::getComponentesTurma($this->ref_cod_serie,
  199 + $this->ref_cod_escola, $this->ref_cod_turma);
  200 + }
  201 + catch (App_Model_Exception $e) {
  202 + $this->mensagem = $e->getMessage();
  203 + return;
  204 + }
193 205  
194   - $componenteMapper = new ComponenteCurricular_Model_ComponenteDataMapper();
195   - if (is_array($lista) && count($lista)) {
196   - foreach ($lista as $registro) {
197   - $componente = $componenteMapper->find($registro['ref_cod_disciplina']);
198   - $opcoes[$componente->id] = $componente->nome;
199   - }
  206 + foreach ($componentes as $componente) {
  207 + $opcoes[$componente->id] = $componente->nome;
200 208 }
201 209  
202 210 if ($this->ref_cod_disciplina) {
... ...
ieducar/intranet/educar_dispensa_disciplina_lst.php
... ... @@ -169,18 +169,12 @@ class indice extends clsListagem
169 169 $opcoes = array('' => 'Selecione');
170 170  
171 171 // Escola série disciplina
172   - $objTemp = new clsPmieducarEscolaSerieDisciplina();
173   - $lista = $objTemp->lista($this->ref_cod_serie, $this->ref_cod_escola, NULL, 1);
174   -
175   - if (is_array($lista) && count($lista)) {
176   - foreach ($lista as $registro) {
177   - $obj_disciplina = new clsPmieducarDisciplina(
178   - $registro['ref_cod_disciplina'], NULL, NULL, NULL, NULL, NULL, NULL,
179   - NULL, NULL, NULL, 1);
  172 + $componentes = App_Model_IedFinder::getComponentesTurma(
  173 + $this->ref_cod_serie, $this->ref_cod_escola, $this->ref_cod_turma
  174 + );
180 175  
181   - $det_disciplina = $obj_disciplina->detalhe();
182   - $opcoes[$registro['ref_cod_disciplina']] = $det_disciplina['nm_disciplina'];
183   - }
  176 + foreach ($componentes as $componente) {
  177 + $opcoes[$componente->id] = $componente->nome;
184 178 }
185 179  
186 180 $this->campoLista('ref_cod_disciplina', 'Disciplina', $opcoes,
... ...
ieducar/intranet/educar_matricula_det.php
... ... @@ -230,7 +230,8 @@ class indice extends clsDetalhe
230 230 $this->array_botao[] = 'Ocorrências Disciplinares';
231 231 $this->array_botao_url_script[] = "go(\"educar_matricula_ocorrencia_disciplinar_lst.php?ref_cod_matricula={$registro['cod_matricula']}\")";
232 232  
233   - if ($registro['ref_ref_cod_serie']) {
  233 + // Apenas libera a dispensa de disciplina quando o aluno estiver enturmado
  234 + if ($registro['ref_ref_cod_serie'] && isset($nm_turma)) {
234 235 $this->array_botao[] = 'Dispensa de Componentes Curriculares';
235 236 $this->array_botao_url_script[] = "go(\"educar_dispensa_disciplina_lst.php?ref_cod_matricula={$registro['cod_matricula']}\")";
236 237 }
... ...
ieducar/intranet/include/pmieducar/clsPmieducarDispensaDisciplina.inc.php
... ... @@ -151,13 +151,17 @@ class clsPmieducarDispensaDisciplina
151 151 if (is_numeric($ref_cod_disciplina) && is_numeric($ref_cod_escola) &&
152 152 is_numeric($ref_cod_serie)
153 153 ) {
154   - $escolaSerieDisciplina = new clsPmieducarEscolaSerieDisciplina($ref_cod_serie,
155   - $ref_cod_escola, $ref_cod_disciplina);
156   -
157   - if ($escolaSerieDisciplina->existe()) {
  154 + require_once 'ComponenteCurricular/Model/AnoEscolarDataMapper.php';
  155 + $anoEscolarMapper = new ComponenteCurricular_Model_AnoEscolarDataMapper();
  156 + $componenteAnos = $anoEscolarMapper->findAll(array(), array(
  157 + 'componenteCurricular' => $ref_cod_disciplina,
  158 + 'anoEscolar' => $ref_cod_serie
  159 + ));
  160 +
  161 + if (1 == count($componenteAnos)) {
158 162 $this->ref_cod_disciplina = $ref_cod_disciplina;
159   - $this->ref_cod_escola = $ref_cod_escola;
160 163 $this->ref_cod_serie = $ref_cod_serie;
  164 + $this->ref_cod_escola = $ref_cod_escola;
161 165 }
162 166 }
163 167  
... ...