From c8c9ad32bc54535cabdee7192128f960079a2f4e Mon Sep 17 00:00:00 2001 From: Eriksen Costa Date: Wed, 21 Jul 2010 22:19:54 -0300 Subject: [PATCH] Atualizada funcionalidade Dispensa de Componente Curricular para buscar os componentes 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 | 28 ++++++++++++++++++---------- ieducar/intranet/educar_dispensa_disciplina_lst.php | 16 +++++----------- ieducar/intranet/educar_matricula_det.php | 3 ++- ieducar/intranet/include/pmieducar/clsPmieducarDispensaDisciplina.inc.php | 14 +++++++++----- 4 files changed, 34 insertions(+), 27 deletions(-) diff --git a/ieducar/intranet/educar_dispensa_disciplina_cad.php b/ieducar/intranet/educar_dispensa_disciplina_cad.php index f953562..e98795e 100644 --- a/ieducar/intranet/educar_dispensa_disciplina_cad.php +++ b/ieducar/intranet/educar_dispensa_disciplina_cad.php @@ -168,8 +168,6 @@ class indice extends clsCadastro $det_escola = $obj_escola->detalhe(); $this->ref_cod_instituicao = $det_escola['ref_cod_instituicao']; - $this->campoRotulo('nm_aluno', 'Nome do Aluno', $det_aluno['nome_aluno']); - $obj_matricula_turma = new clsPmieducarMatriculaTurma(); $lst_matricula_turma = $obj_matricula_turma->lista($this->ref_cod_matricula, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, NULL, @@ -181,6 +179,13 @@ class indice extends clsCadastro $this->ref_sequencial = $det['sequencial']; } + $this->campoRotulo('nm_aluno', 'Nome do Aluno', $det_aluno['nome_aluno']); + + if (!isset($this->ref_cod_turma)) { + $this->mensagem = 'Para dispensar um aluno de um componente curricular, é necessário que este esteja enturmado.'; + return; + } + // primary keys $this->campoOculto('ref_cod_matricula', $this->ref_cod_matricula); $this->campoOculto('ref_cod_serie', $this->ref_cod_serie); @@ -188,15 +193,18 @@ class indice extends clsCadastro $opcoes = array('' => 'Selecione'); - $objTemp = new clsPmieducarEscolaSerieDisciplina(); - $lista = $objTemp->lista($this->ref_cod_serie, $this->ref_cod_escola, NULL, 1); + // Seleciona os componentes curriculares da turma + try { + $componentes = App_Model_IedFinder::getComponentesTurma($this->ref_cod_serie, + $this->ref_cod_escola, $this->ref_cod_turma); + } + catch (App_Model_Exception $e) { + $this->mensagem = $e->getMessage(); + return; + } - $componenteMapper = new ComponenteCurricular_Model_ComponenteDataMapper(); - if (is_array($lista) && count($lista)) { - foreach ($lista as $registro) { - $componente = $componenteMapper->find($registro['ref_cod_disciplina']); - $opcoes[$componente->id] = $componente->nome; - } + foreach ($componentes as $componente) { + $opcoes[$componente->id] = $componente->nome; } if ($this->ref_cod_disciplina) { diff --git a/ieducar/intranet/educar_dispensa_disciplina_lst.php b/ieducar/intranet/educar_dispensa_disciplina_lst.php index 04083e4..6f913cb 100644 --- a/ieducar/intranet/educar_dispensa_disciplina_lst.php +++ b/ieducar/intranet/educar_dispensa_disciplina_lst.php @@ -169,18 +169,12 @@ class indice extends clsListagem $opcoes = array('' => 'Selecione'); // Escola série disciplina - $objTemp = new clsPmieducarEscolaSerieDisciplina(); - $lista = $objTemp->lista($this->ref_cod_serie, $this->ref_cod_escola, NULL, 1); - - if (is_array($lista) && count($lista)) { - foreach ($lista as $registro) { - $obj_disciplina = new clsPmieducarDisciplina( - $registro['ref_cod_disciplina'], NULL, NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, 1); + $componentes = App_Model_IedFinder::getComponentesTurma( + $this->ref_cod_serie, $this->ref_cod_escola, $this->ref_cod_turma + ); - $det_disciplina = $obj_disciplina->detalhe(); - $opcoes[$registro['ref_cod_disciplina']] = $det_disciplina['nm_disciplina']; - } + foreach ($componentes as $componente) { + $opcoes[$componente->id] = $componente->nome; } $this->campoLista('ref_cod_disciplina', 'Disciplina', $opcoes, diff --git a/ieducar/intranet/educar_matricula_det.php b/ieducar/intranet/educar_matricula_det.php index 1ae5077..72ce250 100644 --- a/ieducar/intranet/educar_matricula_det.php +++ b/ieducar/intranet/educar_matricula_det.php @@ -230,7 +230,8 @@ class indice extends clsDetalhe $this->array_botao[] = 'Ocorrências Disciplinares'; $this->array_botao_url_script[] = "go(\"educar_matricula_ocorrencia_disciplinar_lst.php?ref_cod_matricula={$registro['cod_matricula']}\")"; - if ($registro['ref_ref_cod_serie']) { + // Apenas libera a dispensa de disciplina quando o aluno estiver enturmado + if ($registro['ref_ref_cod_serie'] && isset($nm_turma)) { $this->array_botao[] = 'Dispensa de Componentes Curriculares'; $this->array_botao_url_script[] = "go(\"educar_dispensa_disciplina_lst.php?ref_cod_matricula={$registro['cod_matricula']}\")"; } diff --git a/ieducar/intranet/include/pmieducar/clsPmieducarDispensaDisciplina.inc.php b/ieducar/intranet/include/pmieducar/clsPmieducarDispensaDisciplina.inc.php index d771e84..0b6b1cc 100644 --- a/ieducar/intranet/include/pmieducar/clsPmieducarDispensaDisciplina.inc.php +++ b/ieducar/intranet/include/pmieducar/clsPmieducarDispensaDisciplina.inc.php @@ -151,13 +151,17 @@ class clsPmieducarDispensaDisciplina if (is_numeric($ref_cod_disciplina) && is_numeric($ref_cod_escola) && is_numeric($ref_cod_serie) ) { - $escolaSerieDisciplina = new clsPmieducarEscolaSerieDisciplina($ref_cod_serie, - $ref_cod_escola, $ref_cod_disciplina); - - if ($escolaSerieDisciplina->existe()) { + require_once 'ComponenteCurricular/Model/AnoEscolarDataMapper.php'; + $anoEscolarMapper = new ComponenteCurricular_Model_AnoEscolarDataMapper(); + $componenteAnos = $anoEscolarMapper->findAll(array(), array( + 'componenteCurricular' => $ref_cod_disciplina, + 'anoEscolar' => $ref_cod_serie + )); + + if (1 == count($componenteAnos)) { $this->ref_cod_disciplina = $ref_cod_disciplina; - $this->ref_cod_escola = $ref_cod_escola; $this->ref_cod_serie = $ref_cod_serie; + $this->ref_cod_escola = $ref_cod_escola; } } -- libgit2 0.21.2