From 5602008e7c516cc513d1ecc0310dd1ebd7e3d7f8 Mon Sep 17 00:00:00 2001 From: Eriksen Costa Paixão Date: Tue, 4 May 2010 19:15:05 +0000 Subject: [PATCH] Atualizado relatório '''Espelho de Nota Anual''' para usar {{{Avaliacao_Service_Boletim}}} e classes dos módulos ComponenteCurricular e RegraAvaliacao. Refactoring de {{{App_Model_IedFinder}}} e testes relacionados --- ieducar/intranet/educar_relatorio_alunos_nota_semestre_proc.php | 354 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ieducar/intranet/educar_relatorio_ata_resultado_final_proc.php | 2 +- ieducar/lib/App/Model/IedFinder.php | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------- ieducar/modules/Avaliacao/Service/Boletim.php | 2 +- ieducar/modules/Avaliacao/_tests/Service/TestCommon.php | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- ieducar/tests/unit/App/Model/IedFinderTest.php | 47 +++++++++++++++++++++++++++++++++++------------ 6 files changed, 262 insertions(+), 282 deletions(-) diff --git a/ieducar/intranet/educar_relatorio_alunos_nota_semestre_proc.php b/ieducar/intranet/educar_relatorio_alunos_nota_semestre_proc.php index 945a9e0..8c01335 100644 --- a/ieducar/intranet/educar_relatorio_alunos_nota_semestre_proc.php +++ b/ieducar/intranet/educar_relatorio_alunos_nota_semestre_proc.php @@ -34,6 +34,8 @@ require_once 'include/clsBanco.inc.php'; require_once 'include/pmieducar/geral.inc.php'; require_once 'include/relatorio.inc.php'; +require_once 'Avaliacao/Service/Boletim.php'; + /** * clsIndexBase class. * @@ -69,6 +71,16 @@ class indice extends clsCadastro { var $pessoa_logada; + /** + * @var RegraAvaliacao_Model_Regra + */ + var $regra = NULL; + + /** + * @var array + */ + static $boletim = array(); + var $ref_cod_instituicao; var $ref_cod_escola; var $ref_cod_serie; @@ -105,9 +117,9 @@ class indice extends clsCadastro if (empty($this->ref_cod_turma)) { echo ''; + alert("Erro ao gerar relatório!\nNenhuma turma selecionada!"); + window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1)); + '; return TRUE; } @@ -134,6 +146,10 @@ class indice extends clsCadastro $det_serie = $obj_serie->detalhe(); $this->nm_serie = $det_serie['nm_serie']; + // Regra da série + $regraMapper = new RegraAvaliacao_Model_RegraDataMapper(); + $this->regra = $regraMapper->find($det_serie['regra_avaliacao_id']); + $obj_pessoa = new clsPessoa_($det_turma['ref_cod_regente']); $det = $obj_pessoa->detalhe(); $this->nm_professor = $det['nome']; @@ -147,11 +163,6 @@ class indice extends clsCadastro return TRUE; } - $obj = new clsPmieducarSerie(); - $obj->setOrderby('cod_serie,etapa_curso'); - $lista_serie_curso = $obj->lista(null, null, null, $this->ref_cod_curso, - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao); - $obj_curso = new clsPmieducarCurso($this->ref_cod_curso); $det_curso = $obj_curso->detalhe(); $this->nm_curso = $det_curso['nm_curso']; @@ -163,57 +174,21 @@ class indice extends clsCadastro $obj_matricula_turma = new clsPmieducarMatriculaTurma(); $obj_matricula_turma->setOrderby('nome_ascii'); - if (!$this->is_padrao && is_numeric($this->semestre) && $this->ano != 2007) { - $lst_matricula_turma = $obj_matricula_turma->lista($this->ref_cod_matricula, - $this->ref_cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, - $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, - NULL, NULL, array(1,2,3), NULL, NULL, $this->ano, NULL, NULL, NULL, NULL, - TRUE, NULL, NULL, NULL, NULL, $this->semestre); - } - else { - $lst_matricula_turma = $obj_matricula_turma->lista($this->ref_cod_matricula, - $this->ref_cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, - $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, - NULL, NULL, array(1,2,3), NULL, NULL, $this->ano, NULL, NULL, NULL, NULL, TRUE); - } + $lst_matricula_turma = $obj_matricula_turma->lista($this->ref_cod_matricula, + $this->ref_cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, + $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, + NULL, NULL, array(1,2,3), NULL, NULL, $this->ano, NULL, NULL, NULL, NULL, TRUE); $obj_disciplinas = new clsPmieducarEscolaSerieDisciplina(); $lst_disciplinas = $obj_disciplinas->lista($this->ref_cod_serie, $this->ref_cod_escola, NULL, 1); - // Caso o curso siga o padrão da escola - if ($det_curso["padrao_ano_escolar"]) { - $obj_ano_letivo_modulo = new clsPmieducarAnoLetivoModulo(); - $lst_ano_letivo_modulo = $obj_ano_letivo_modulo->lista($this->ano, $this->ref_cod_escola); + // Recupera a quantidade de módulos e o nome do módulo da escola/turma + $modulo = App_Model_IedFinder::getModulo($this->ref_cod_escola, + $this->ref_cod_curso, $this->ref_cod_turma, $this->ano); - if (is_array($lst_ano_letivo_modulo)) { - // Guarda a qtd de módulos a serem cursados - $qtd_modulos = count($lst_ano_letivo_modulo); - $segue_padrão = TRUE; - } - } - // Caso o curso não siga o padrão da escola - else { - $obj_turma_modulo = new clsPmieducarTurmaModulo(); - $lst_turma_modulo = $obj_turma_modulo->lista($this->ref_cod_turma); - - if (is_array($lst_turma_modulo)) { - // Guarda a qtd de módulos a serem cursados - $qtd_modulos = count($lst_turma_modulo); - - $aux_turma_modulo = array_shift($lst_turma_modulo); - $obj_modulo = new clsPmieducarModulo($aux_turma_modulo['ref_cod_modulo']); - $det_modulo = $obj_modulo->detalhe(); - $nm_modulo = $det_modulo['nm_tipo']; - $segue_padrão = FALSE; - $mostra_cabecalho = array(); - $nm_modulo = substr(strtoupper($nm_modulo), 0, 1); - - for ($i = 0; $i < $qtd_modulos; $i++) { - $mostra_cabecalho[$i] = ($i + 1) . 'º' . $nm_modulo; - } - } - } + $nomeModulo = $modulo['nome'][0]; + $modulos = $modulo['total']; if ($lst_matricula_turma) { $relatorio = new relatorios('Espelho de Notas Ano - ' . $this->ano, 210, @@ -223,229 +198,115 @@ class indice extends clsCadastro $relatorio->setMargem(20, 20, 20, 20); $relatorio->exibe_produzido_por = FALSE; - $db = new clsBanco(); + // Mapper para o componente + $componenteMapper = new ComponenteCurricular_Model_ComponenteDataMapper(); - if (!$conceitual) { - $campo_nota = 'COALESCE(nota,valor) '; - } - else { - $campo_nota = 'nome '; - } + $array_val = array( + array(40, 'Cód.'), + array(160, 'Nome do Aluno') + ); - foreach ($lst_disciplinas as $disciplina) { - $obj_disciplina = new clsPmieducarDisciplina($disciplina['ref_cod_disciplina']); - $det_disciplina = $obj_disciplina->detalhe(); + foreach (range(1, $modulos) as $num) { + $array_val[] = array(30, $num . $nomeModulo); + } - $relatorio->novalinha(array($det_disciplina['nm_disciplina']), 0, 16, - TRUE, 'arial', array(400), '#515151', '#D3D3D3', '#FFFFFF', FALSE, TRUE); + $array_val[] = array(55, 'M.Parcial'); + $array_val[] = array(50, 'Exame'); + $array_val[] = array(50, 'M.Final'); + $array_val[] = array(38, 'Faltas'); - if ($segue_padrão) { - if (!$conceitual) { - $array_val = array('Cód. Aluno', 'Nome do Aluno', '1ºB', '2ºB', '3ºB', - '4ºB', 'M.Parcial', 'Exame', 'M.Final', 'Faltas'); - } - else { - $array_val = array('Cód. Aluno', 'Nome do Aluno', '1ºB', '2ºB', '3ºB', - '4ºB', '', '', '', 'Faltas'); - } - } - else { - if (!$conceitual) { - $array_val = array('Cód. Aluno', 'Nome do Aluno', $mostra_cabecalho[0], - $mostra_cabecalho[1], $mostra_cabecalho[2], $mostra_cabecalho[3], - 'M.Parcial', 'Exame', 'M.Final', 'Faltas'); - } - else { - $array_val = array('Cód. Aluno', 'Nome do Aluno', $mostra_cabecalho[0], - $mostra_cabecalho[1], $mostra_cabecalho[2], $mostra_cabecalho[3], - '', '', '', 'Faltas'); - } + $arrFuncBody = ' + $values = array(); + foreach ($data as $d) { + $values[] = $d[$index]; } + return $values; + '; - $relatorio->novalinha($array_val, 0, 13, TRUE, 'arial', - array(40, 160, 30, 30, 30, 30, 55, 50, 50, 38), '#515151', '#D3D3D3', - '#FFFFFF', FALSE, TRUE); + $arrFunc = create_function('$data, $index', $arrFuncBody); - foreach ($lst_matricula_turma as $matricula) { - $consulta = " - SELECT - ref_cod_disciplina, - $campo_nota AS nota, - modulo - FROM - pmieducar.nota_aluno - LEFT OUTER JOIN - pmieducar.tipo_avaliacao_valores - ON - ( - ref_ref_cod_tipo_avaliacao = ref_cod_tipo_avaliacao - AND ref_sequencial = sequencial - ) - WHERE - ref_cod_matricula = {$matricula['ref_cod_matricula']} - AND ref_cod_escola = {$this->ref_cod_escola} - AND ref_cod_serie = {$this->ref_cod_serie} - AND ref_cod_disciplina = {$disciplina['ref_cod_disciplina']} - AND nota_aluno.ativo = 1 - GROUP BY - ref_cod_disciplina, - modulo, - $campo_nota - ORDER BY - modulo ASC"; - - $db->Consulta($consulta); - - $media_parcial = 0; - $registro = NULL; - $nota1 = ''; - $nota2 = ''; - $nota3 = ''; - $nota4 = ''; - $faltas = ''; - $nota_exame = ''; - $media_final = ''; - - while ($db->ProximoRegistro()) { - $registro = $db->Tupla(); - $variavel = "nota{$registro['modulo']}"; - $$variavel = $conceitual ? $registro['nota'] : number_format( $registro['nota'] ,2,'.',''); - $ultimo_modulo = $registro['modulo']; - - if (!$conceitual) { - $media_parcial = $media_parcial + $registro['nota']; - /** - * nota do exame - */ - if ($registro['modulo'] > $qtd_modulos) { - $nota_exame = $conceitual ? '' : number_format($registro['nota'] ,2, '.', ''); - } - else { - $nota_exame = ''; - } - } - else { - $media_parcial = ''; - } - } + foreach ($lst_disciplinas as $k => $disciplina) { + $componenteId = $disciplina['ref_cod_disciplina']; + $componente = $componenteMapper->find($componenteId); - if (!$conceitual) { - $media_parcial = number_format($media_parcial / $ultimo_modulo, 2, '.', ''); - } + $relatorio->novalinha(array($componente->nome), 0, 16, + TRUE, 'arial', array(400), '#515151', '#D3D3D3', '#FFFFFF', FALSE, TRUE); - //exame ou total modulos - if (($ultimo_modulo == $qtd_modulos || $ultimo_modulo - 1 == $qtd_modulos) && !$conceitual) { - $objNotaAluno = new clsPmieducarNotaAluno(); - - if ($qtd_modulos == $ultimo_modulo) { - if (!dbBool($det_serie['ultima_nota_define'])) { - $media_final = $objNotaAluno->getMediaAluno( - $matricula['ref_cod_matricula'], $disciplina['ref_cod_disciplina'], - $this->ref_cod_serie, $ultimo_modulo, $det_curso['media'] - ); - } - else { - $media_final = $objNotaAluno->getUltimaNotaModulo( - $matricula['ref_cod_matricula'], $disciplina['ref_cod_disciplina'], - $this->ref_cod_serie, $ultimo_modulo - ); - } - } - else { - $media_final = $objNotaAluno->getMediaAlunoExame( - $matricula['ref_cod_matricula'], $disciplina['ref_cod_disciplina'], - $this->ref_cod_serie, $ultimo_modulo - 1 - ); - } + $relatorio->novalinha($arrFunc($array_val, 1), 0, 16, TRUE, 'arial', + $arrFunc($array_val, 0), '#515151', '#D3D3D3', + '#FFFFFF', FALSE, TRUE); - $media_final = number_format($media_final, 2, '.', ''); + foreach ($lst_matricula_turma as $matricula) { + $codMatricula = $matricula['ref_cod_matricula']; + + if (!isset($this->boletim[$codMatricula])) { + $boletim = new Avaliacao_Service_Boletim(array( + 'matricula' => $codMatricula, + 'ComponenteDataMapper' => $componenteMapper, + 'RegraDataMapper' => $regraMapper + )); } else { - $media_final = $conceitual ? '' : '-'; + $boletim = $this->boletim[$codMatricula]; } - $total_faltas = 0; + $media_final = $media_parcial = $nota_exame = ''; + $medias = $boletim->getMediasComponentes(); + $notas = $boletim->getNotasComponentes(); - if ($det_curso['falta_ch_globalizada']) { - $obj_falta = new clsPmieducarFaltas(); - $obj_falta->setOrderby('sequencial ASC'); - $det_falta = $obj_falta->lista($matricula['ref_cod_matricula'], NULL, - NULL, NULL, NULL, NULL); - - if (is_array($det_falta)) { - foreach ($det_falta as $key => $value) { - $total_faltas += $det_falta[$key]['faltas'] = $value['falta']; - } - } + if ($boletim->getRegra()->get('tipoPresenca') == RegraAvaliacao_Model_TipoPresenca::GERAL) { + $faltas = array_sum(CoreExt_Entity::entityFilterAttr( + $boletim->getFaltasGerais(), 'id', 'quantidade' + )); } else { - $obj_falta = new clsPmieducarFaltaAluno(); - $obj_falta->setOrderby("cod_falta_aluno asc"); + $faltas = $boletim->getFaltasComponentes(); - if ($det_curso['padrao_ano_escolar'] == 1) { - $det_falta = $obj_falta->lista(NULL, NULL, NULL, $this->ref_cod_serie, - $this->ref_cod_escola, $disciplina['ref_cod_disciplina'], - $matricula['ref_cod_matricula'], NULL, NULL, NULL, NULL, NULL, 1); + if (isset($faltas[$componente->id])) { + $faltas = array_sum(CoreExt_Entity::entityFilterAttr( + $faltas[$componente->id], 'id', 'quantidade' + )); } else { - $det_falta = $obj_falta->lista(NULL, NULL, NULL, $this->ref_cod_serie, - $this->ref_cod_escola, NULL, $matricula['ref_cod_matricula'], - NULL, NULL, NULL, NULL, NULL, 1, NULL, $disciplina['ref_cod_disciplina']); - } - - if (is_array($det_falta)) { - foreach ($det_falta as $key => $value) { - $total_faltas += $det_falta[$key]['faltas']; - } + $faltas = ''; } } - if (strlen($matricula['nome']) > 30) { - $matricula['nome'] = explode(' ', $matricula['nome']); + $etapas = range(1, count($notas[$componente->id])); - if (is_array($matricula['nome'])) { - $nome_aluno = array_shift($matricula['nome']); - } + // Se tiver mais etapas nas notas lançadas, significa que prestou exame + if (count($etapas) > $modulos) { + array_pop($etapas); + } - if (is_array($matricula['nome'])) { - $nome_aluno .= ' ' . array_shift($matricula['nome']); - } + $data = array( + array(40, $matricula['ref_cod_aluno']), + array(160, $matricula['nome']) + ); - if (is_array($matricula['nome'])) { - $nome_aluno .= ' ' . array_pop($matricula['nome']); - } + foreach ($etapas as $i) { + $data[] = array(30, $boletim->getNotaComponente($componente->id, $i)->notaArredondada); + $media_parcial = $medias[$componente->id][0]->mediaArredondada; - $matricula['nome'] = $nome_aluno; + if ($i == $modulos) { + $media_final = $media_parcial; + $media_parcial = ''; + $nota_exame = $boletim->getNotaComponente($componente->id, 'Rc')->notaArredondada; + } } - if ($segue_padrão || !$conceitual) { - $relatorio->novalinha(array($matricula['ref_cod_aluno'], $matricula['nome'], - $nota1, $nota2, $nota3, $nota4, $media_parcial, $nota_exame, - $media_final, $total_faltas), 0, 12, FALSE, 'arial', - array(35, 165, 30, 30, 30, 40, 55, 50, 55), '#515151', '#D3D3D3', - '#FFFFFF', FALSE, TRUE); + // Adiciona entradas em branco no array de dados + for ($i = 0, $loop = $modulos - count($etapas); $i < $loop; $i++) { + $data[] = array(30, ''); } - else { - $obj_matricula = new clsPmieducarMatricula($matricula["ref_cod_matricula"]); - $situacao = $obj_matricula->detalhe(); - $situacao = $situacao["aprovado"]; - if ($situacao == 1) { - $situacao = 'Apr.'; - } - elseif ($situacao == 2) { - $situacao = 'Repr;'; - } - elseif ($situacao == 3) { - $situacao = 'And.'; - } + $data[] = array(55, $media_parcial); + $data[] = array(50, $nota_exame); + $data[] = array(50, $media_final); + $data[] = array(38, $faltas); - $relatorio->novalinha(array($matricula['ref_cod_aluno'], $matricula['nome'], - $nota1, $nota2, $nota3, $nota4, $media_parcial, $nota_exame, $media_final, - $total_faltas, $situacao), 0, 12, FALSE, 'arial', - array(40, 160, 30, 30, 30, 30, 55, 50, 50, 38), '#515151', '#D3D3D3', - '#FFFFFF', FALSE, TRUE); - } + $relatorio->novalinha($arrFunc($data, 1), 0, 12, FALSE, 'arial', + $arrFunc($data, 0), '#515151', '#D3D3D3', '#FFFFFF', FALSE, TRUE); } $relatorio->quebraPagina(); @@ -480,14 +341,13 @@ class indice extends clsCadastro function Editar() { - return false; + return FALSE; } function Excluir() { - return false; + return FALSE; } - } // Instancia objeto de página diff --git a/ieducar/intranet/educar_relatorio_ata_resultado_final_proc.php b/ieducar/intranet/educar_relatorio_ata_resultado_final_proc.php index 2ad8843..ac13563 100644 --- a/ieducar/intranet/educar_relatorio_ata_resultado_final_proc.php +++ b/ieducar/intranet/educar_relatorio_ata_resultado_final_proc.php @@ -360,7 +360,7 @@ class indice extends clsCadastro return $carga_global; } - function getAlunoNotasFaltasTable($alunos_matriculados, $det_curso, $curso_conceitual) + function getAlunoNotasFaltasTable($alunos_matriculados) { $fonte = 'arial'; $corTexto = '#000000'; diff --git a/ieducar/lib/App/Model/IedFinder.php b/ieducar/lib/App/Model/IedFinder.php index 1939508..642af02 100644 --- a/ieducar/lib/App/Model/IedFinder.php +++ b/ieducar/lib/App/Model/IedFinder.php @@ -289,7 +289,7 @@ class App_Model_IedFinder extends CoreExt_Entity * @return int * @throws App_Model_Exception */ - public static function getQuantidadeDeEtapasMatricula($codMatricula) + public static function getQuantidadeDeModulosMatricula($codMatricula) { $modulos = array(); @@ -297,9 +297,41 @@ class App_Model_IedFinder extends CoreExt_Entity $matricula = self::getMatricula($codMatricula); $codEscola = $matricula['ref_ref_cod_escola']; $codCurso = $matricula['ref_cod_curso']; + $codTurma = NULL; + + $matriculaTurma = self::addClassToStorage('clsPmieducarMatriculaTurma', + NULL, 'include/pmieducar/clsPmieducarMatriculaTurma.inc.php'); + + $matriculas = $matriculaTurma->lista($codMatricula); + + if (is_array($matriculas)) { + $matricula = array_shift($matriculas); + $codTurma = $matricula['ref_cod_turma']; + } + else { + throw new App_Model_Exception('Aluno não enturmado.'); + } + + $modulos = self::getModulo($codEscola, $codCurso, $codTurma); + + return $modulos['total']; + } + + /** + * + * @param unknown_type $codEscola + * @param unknown_type $codCurso + * @param unknown_type $codTurma + * @param unknown_type $ano + * @return unknown_type + */ + public static function getModulo($codEscola, $codCurso, $codTurma, + $ano = NULL) + { + $modulos = array(); $curso = self::addClassToStorage('clsPmieducarCurso', NULL, - 'include/pmieducar/clsPmieducar.inc.php'); + 'include/pmieducar/clsPmieducarCurso.inc.php'); $curso->cod_curso = $codCurso; $curso = $curso->detalhe(); @@ -311,7 +343,7 @@ class App_Model_IedFinder extends CoreExt_Entity $escolaAnoLetivo = self::addClassToStorage('clsPmieducarEscolaAnoLetivo', NULL, 'include/pmieducar/clsPmieducarEscolaAnoLetivo.inc.php'); - $anosEmAndamento = $escolaAnoLetivo->lista($codEscola, NULL, NULL, NULL, + $anosEmAndamento = $escolaAnoLetivo->lista($codEscola, $ano, NULL, NULL, 1, NULL, NULL, NULL, NULL, 1); // Pela restrição na criação de anos letivos, eu posso confiar no primeiro @@ -330,19 +362,6 @@ class App_Model_IedFinder extends CoreExt_Entity $modulos = $anoLetivoModulo->lista($ano, $codEscola); } else { - $matriculaTurma = self::addClassToStorage('clsPmieducarMatriculaTurma', - NULL, 'include/pmieducar/clsPmieducarMatriculaTurma.inc.php'); - - $matriculas = $matriculaTurma->lista($codMatricula); - - if (is_array($matriculas)) { - $matricula = array_shift($matriculas); - $codTurma = $matricula['ref_cod_turma']; - } - else { - throw new App_Model_Exception('Aluno não enturmado.'); - } - $turmaModulo = self::addClassToStorage('clsPmieducarTurmaModulo', NULL, 'include/pmieducar/clsPmieducarTurmaModulo.inc.php'); @@ -353,7 +372,25 @@ class App_Model_IedFinder extends CoreExt_Entity return 0; } - return count($modulos); + // Total de módulos + $total = count($modulos); + + // Código do tipo de módulo + $modulo = array_shift($modulos); + $codModulo = $modulo['ref_cod_modulo']; + + // Recupera do regstry o objeto legado + $modulo = self::addClassToStorage('clsPmieducarModulo', NULL, + 'include/pmieducar/clsPmieducarModulo.inc.php'); + + $modulo->cod_modulo = $codModulo; + $modulo = $modulo->detalhe(); + $modulo = $modulo['nm_tipo']; + + return array( + 'total' => $total, + 'nome' => $modulo + ); } /** diff --git a/ieducar/modules/Avaliacao/Service/Boletim.php b/ieducar/modules/Avaliacao/Service/Boletim.php index 4e34eb6..a780e84 100644 --- a/ieducar/modules/Avaliacao/Service/Boletim.php +++ b/ieducar/modules/Avaliacao/Service/Boletim.php @@ -779,7 +779,7 @@ class Avaliacao_Service_Boletim implements CoreExt_Configurable // Valores scalar de referência $matricula = App_Model_IedFinder::getMatricula($codMatricula); - $etapas = App_Model_IedFinder::getQuantidadeDeEtapasMatricula($codMatricula); + $etapas = App_Model_IedFinder::getQuantidadeDeModulosMatricula($codMatricula); $this->setOption('matriculaData', $matricula); $this->setOption('aprovado', $matricula['aprovado']); $this->setOption('cursoHoraFalta', $matricula['curso_hora_falta']); diff --git a/ieducar/modules/Avaliacao/_tests/Service/TestCommon.php b/ieducar/modules/Avaliacao/_tests/Service/TestCommon.php index 3a5e3f0..3475e1c 100644 --- a/ieducar/modules/Avaliacao/_tests/Service/TestCommon.php +++ b/ieducar/modules/Avaliacao/_tests/Service/TestCommon.php @@ -199,10 +199,12 @@ abstract class Avaliacao_Service_TestCommon extends UnitBaseTest // instâncias de objetos legados e novos $this->_setConfigOptions('usuario', array('cod_usuario' => 1)) ->_setConfigOptions('matricula', $this->_getMatricula()) + ->_setConfigOptions('matriculaTurma', $this->_getMatriculaTurma()) ->_setConfigOptions('serie', $this->_getSerie()) ->_setConfigOptions('curso', $this->_getCurso()) ->_setConfigOptions('escolaAnoLetivo', $this->_getEscolaAnoLetivo()) ->_setConfigOptions('anoLetivoModulo', $this->_getAnoLetivoModulo()) + ->_setConfigOptions('modulo', $this->_getModulo()) ->_setConfigOptions('escolaSerieDisciplina', $this->_getEscolaSerieDisciplina()) ->_setConfigOptions('dispensaDisciplina', $this->_getDispensaDisciplina()) ->_setConfigOptions('componenteCurricular', $this->_getComponenteCurricular()) @@ -235,10 +237,12 @@ abstract class Avaliacao_Service_TestCommon extends UnitBaseTest // Cria os mocks das classes legadas $this->_setUpMatriculaMock() + ->_setUpMatriculaTurmaMock() ->_setUpCursoMock() ->_setUpSerieMock() ->_setUpEscolaAnoLetivo() ->_setUpAnoLetivoModulo() + ->_setUpModulo() ->_setUpEscolaSerieDisciplinaMock() ->_setUpDispensaDisciplinaMock(); @@ -364,6 +368,17 @@ abstract class Avaliacao_Service_TestCommon extends UnitBaseTest /** * @return array */ + protected function _getMatriculaTurma() + { + return array( + 'ref_cod_matricula' => 1, + 'ref_cod_turma' => 1 + ); + } + + /** + * @return array + */ protected function _getSerie() { return array( @@ -403,10 +418,20 @@ abstract class Avaliacao_Service_TestCommon extends UnitBaseTest protected function _getAnoLetivoModulo() { return array( - array('ref_ano' => 2009, 'ref_ref_cod_escola' => 1, 'sequencial' => 1), - array('ref_ano' => 2009, 'ref_ref_cod_escola' => 1, 'sequencial' => 2), - array('ref_ano' => 2009, 'ref_ref_cod_escola' => 1, 'sequencial' => 3), - array('ref_ano' => 2009, 'ref_ref_cod_escola' => 1, 'sequencial' => 4) + array('ref_ano' => 2009, 'ref_ref_cod_escola' => 1, 'sequencial' => 1, 'ref_cod_modulo' => 1), + array('ref_ano' => 2009, 'ref_ref_cod_escola' => 1, 'sequencial' => 2, 'ref_cod_modulo' => 1), + array('ref_ano' => 2009, 'ref_ref_cod_escola' => 1, 'sequencial' => 3, 'ref_cod_modulo' => 1), + array('ref_ano' => 2009, 'ref_ref_cod_escola' => 1, 'sequencial' => 4, 'ref_cod_modulo' => 1) + ); + } + + /** + * @return array + */ + protected function _getModulo() + { + return array( + 'cod_modulo' => 1, 'nm_tipo' => 'Bimestre' ); } @@ -535,6 +560,25 @@ abstract class Avaliacao_Service_TestCommon extends UnitBaseTest } /** + * @return clsPmieducarMatriculaTurma + */ + protected function _setUpMatriculaTurmaMock() + { + $mock = $this->getCleanMock('clsPmieducarMatriculaTurma'); + + $mock->expects($this->any()) + ->method('lista') + ->with(1) + ->will($this->returnValue($this->_getConfigOptions('matriculaTurma'))); + + CoreExt_Entity::addClassToStorage('clsPmieducarMatriculaTurma', + $mock, NULL, TRUE + ); + + return $this; + } + + /** * @return clsPmieducarSerie */ protected function _setUpSerieMock() @@ -609,6 +653,22 @@ abstract class Avaliacao_Service_TestCommon extends UnitBaseTest } /** + * @return clsPmieducarModulo + */ + protected function _setUpModulo() + { + $mock = $this->getCleanMock('clsPmieducarModulo'); + + $mock->expects($this->any()) + ->method('detalhe') + ->will($this->returnValue($this->_getConfigOptions('modulo'))); + + CoreExt_Entity::addClassToStorage('clsPmieducarModulo', $mock, NULL, TRUE); + + return $this; + } + + /** * @return clsPmieducarEscolaSerieDisciplina */ protected function _setUpEscolaSerieDisciplinaMock() diff --git a/ieducar/tests/unit/App/Model/IedFinderTest.php b/ieducar/tests/unit/App/Model/IedFinderTest.php index 2846a19..dde8303 100644 --- a/ieducar/tests/unit/App/Model/IedFinderTest.php +++ b/ieducar/tests/unit/App/Model/IedFinderTest.php @@ -323,19 +323,24 @@ class App_Model_IedFinderTest extends UnitBaseTest /** * @depends App_Model_IedFinderTest::testInstanciaRegraDeAvaliacaoPorMatricula */ - public function testEtapasDeUmCursoPadraoAnoEscolar() + public function testModulosDeUmCursoPadraoAnoEscolar() { $returnEscolaAno = array( array('ref_cod_escola' => 1, 'ano' => 2009, 'andamento' => 1, 'ativo' => 1) ); $returnAnoLetivo = array( - array('ref_ano' => 2009, 'ref_ref_cod_escola' => 1, 'sequencial' => 1), - array('ref_ano' => 2009, 'ref_ref_cod_escola' => 1, 'sequencial' => 2), - array('ref_ano' => 2009, 'ref_ref_cod_escola' => 1, 'sequencial' => 3), - array('ref_ano' => 2009, 'ref_ref_cod_escola' => 1, 'sequencial' => 4) + array('ref_ano' => 2009, 'ref_ref_cod_escola' => 1, 'sequencial' => 1, 'ref_cod_modulo' => 1), + array('ref_ano' => 2009, 'ref_ref_cod_escola' => 1, 'sequencial' => 2, 'ref_cod_modulo' => 1), + array('ref_ano' => 2009, 'ref_ref_cod_escola' => 1, 'sequencial' => 3, 'ref_cod_modulo' => 1), + array('ref_ano' => 2009, 'ref_ref_cod_escola' => 1, 'sequencial' => 4, 'ref_cod_modulo' => 1) ); + $returnMatriculaTurma = array( + array('ref_cod_matricula' => 1, 'ref_cod_turma' => 1) + ); + + $returnModulo = array('cod_modulo' => 1, 'nm_tipo' => 'Bimestre'); // Mock para escola ano letivo (ano letivo em andamento) $escolaAnoMock = $this->getCleanMock('clsPmieducarEscolaAnoLetivo'); @@ -351,17 +356,35 @@ class App_Model_IedFinderTest extends UnitBaseTest ->with(2009, 1) ->will($this->returnValue($returnAnoLetivo)); + $matriculaTurmaMock = $this->getCleanMock('clsPmieducarMatriculaTurma'); + $matriculaTurmaMock->expects($this->any()) + ->method('lista') + ->with(1) + ->will($this->onConsecutiveCalls($returnMatriculaTurma, $returnMatriculaTurma)); + + $moduloMock = $this->getCleanMock('clsPmieducarModulo'); + $moduloMock->expects($this->any()) + ->method('detalhe') + ->will($this->onConsecutiveCalls($returnModulo, $returnModulo)); + // Adiciona mocks ao repositório estático App_Model_IedFinder::addClassToStorage('clsPmieducarEscolaAnoLetivo', $escolaAnoMock, NULL, TRUE); App_Model_IedFinder::addClassToStorage('clsPmieducarAnoLetivoModulo', $anoLetivoMock, NULL, TRUE); + App_Model_IedFinder::addClassToStorage('clsPmieducarMatriculaTurma', + $matriculaTurmaMock, NULL, TRUE); + App_Model_IedFinder::addClassToStorage('clsPmieducarModulo', + $moduloMock, NULL, TRUE); - $etapas = App_Model_IedFinder::getQuantidadeDeEtapasMatricula(1); + $modulos = App_Model_IedFinder::getQuantidadeDeModulosMatricula(1); - $this->assertEquals(4, $etapas); + $this->assertEquals(4, $modulos); } + /** + * @depends App_Model_IedFinderTest::testInstanciaRegraDeAvaliacaoPorMatricula + */ public function testEtapasDeUmCursoAnoNaoPadrao() { // Curso não padrão @@ -375,7 +398,7 @@ class App_Model_IedFinderTest extends UnitBaseTest CoreExt_Entity::addClassToStorage('clsPmieducarCurso', $cursoMock, NULL, TRUE); // Pega informação da turma - $returnMatriculaTurma = array( + /*$returnMatriculaTurma = array( array('ref_cod_matricula' => 1, 'ref_cod_turma' => 1) ); @@ -383,7 +406,7 @@ class App_Model_IedFinderTest extends UnitBaseTest $matriculaTurmaMock->expects($this->at(0)) ->method('lista') ->with(1) - ->will($this->returnValue($returnMatriculaTurma)); + ->will($this->returnValue($returnMatriculaTurma));*/ $returnTurmaModulo = array( array('ref_cod_turma' => 1, 'ref_cod_modulo' => 1, 'sequencial' => 1), @@ -398,13 +421,13 @@ class App_Model_IedFinderTest extends UnitBaseTest ->with(1) ->will($this->returnValue($returnTurmaModulo)); - App_Model_IedFinder::addClassToStorage('clsPmieducarMatriculaTurma', - $matriculaTurmaMock, NULL, TRUE); + #App_Model_IedFinder::addClassToStorage('clsPmieducarMatriculaTurma', + # $matriculaTurmaMock, NULL, TRUE); App_Model_IedFinder::addClassToStorage('clsPmieducarTurmaModulo', $turmaModuloMock, NULL, TRUE); - $etapas = App_Model_IedFinder::getQuantidadeDeEtapasMatricula(1); + $etapas = App_Model_IedFinder::getQuantidadeDeModulosMatricula(1); $this->assertEquals(4, $etapas); } -- libgit2 0.21.2