Commit d7f17457e4d25f03bf274f2ac935932e525418e6

Authored by Eriksen Costa
1 parent 9309126c
Exists in master

Code refactoring

ieducar/lib/App/Model/IedFinder.php
@@ -63,85 +63,222 @@ class App_Model_IedFinder extends CoreExt_Entity @@ -63,85 +63,222 @@ class App_Model_IedFinder extends CoreExt_Entity
63 } 63 }
64 64
65 /** 65 /**
66 - * Retorna uma instância de RegraAvaliacao_Model_Regra a partir dos dados  
67 - * da matrícula. 66 + * Retorna um nome de curso, procurando pelo seu código.
  67 + * @param int $id
  68 + * @return string|FALSE
  69 + */
  70 + public static function getCurso($id)
  71 + {
  72 + $curso = self::addClassToStorage('clsPmieducarCurso', NULL,
  73 + 'include/pmieducar/clsPmieducarCurso.inc.php');
  74 + $curso->cod_curso = $id;
  75 + $curso = $curso->detalhe();
  76 + return $curso['nm_curso'];
  77 + }
  78 +
  79 + /**
  80 + * Retorna um array com as informações da série a partir de seu código.
68 * 81 *
69 - * @param int $codMatricula  
70 - * @param RegraAvaliacao_Model_RegraDataMapper $mapper  
71 - * @return RegraAvaliacao_Model_Regra 82 + * @param int $codSerie
  83 + * @return array
72 * @throws App_Model_Exception 84 * @throws App_Model_Exception
73 */ 85 */
74 - public static function getRegraAvaliacaoPorMatricula($codMatricula,  
75 - RegraAvaliacao_Model_RegraDataMapper $mapper = NULL) 86 + public static function getSerie($codSerie)
76 { 87 {
77 - $matricula = self::getMatricula($codMatricula);  
78 - $serie = self::getSerie($matricula['ref_ref_cod_serie']); 88 + // Recupera clsPmieducarSerie do storage de classe estático
  89 + $serie = self::addClassToStorage('clsPmieducarSerie', NULL,
  90 + 'include/pmieducar/clsPmieducarSerie.inc.php');
79 91
80 - if (is_null($mapper)) {  
81 - require_once 'RegraAvaliacao/Model/RegraDataMapper.php';  
82 - $mapper = new RegraAvaliacao_Model_RegraDataMapper(); 92 + // Usa o atributo público para depois chamar o método detalhe()
  93 + $serie->cod_serie = $codSerie;
  94 + $serie = $serie->detalhe();
  95 +
  96 + if (FALSE === $serie) {
  97 + throw new App_Model_Exception(
  98 + sprintf('Série com o código "%d" não existe.', $codSerie)
  99 + );
83 } 100 }
84 101
85 - return $mapper->find($serie['regra_avaliacao_id']); 102 + return $serie;
86 } 103 }
87 104
88 /** 105 /**
89 - * Retorna um array de instâncias ComponenteCurricular_Model_Componente ao  
90 - * qual um aluno cursa através de sua matrícula. 106 + * Retorna todas as séries cadastradas na tabela pmieducar.serie, selecionando
  107 + * opcionalmente pelo código da instituição.
  108 + * @param int $instituicaoId
  109 + * @return array
  110 + */
  111 + public static function getSeries($instituicaoId = NULL)
  112 + {
  113 + $serie = self::addClassToStorage('clsPmieducarSerie', NULL,
  114 + 'include/pmieducar/clsPmieducarSerie.inc.php');
  115 +
  116 + // Carrega as séries
  117 + $serie->setOrderby('ref_cod_curso ASC, cod_serie ASC, etapa_curso ASC');
  118 + $serie = $serie->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  119 + NULL, NULL, NULL, NULL, $instituicaoId);
  120 +
  121 + $series = array();
  122 + foreach ($serie as $key => $val) {
  123 + $series[$val['cod_serie']] = $val;
  124 + }
  125 +
  126 + return $series;
  127 + }
  128 +
  129 + /**
  130 + * Retorna as turmas de uma escola.
  131 + * @param int $escola
  132 + * @return array (cod_turma => nm_turma)
  133 + */
  134 + public static function getTurmas($escola)
  135 + {
  136 + $turma = self::addClassToStorage('clsPmieducarTurma', NULL,
  137 + 'include/pmieducar/clsPmieducarTurma.inc.php');
  138 +
  139 + // Carrega as turmas da escola
  140 + $turma->setOrderBy('nm_turma ASC');
  141 + $turmas = $turma->lista(NULL, NULL, NULL, NULL, $escola);
  142 +
  143 + $ret = array();
  144 + foreach ($turmas as $turma) {
  145 + $ret[$turma['cod_turma']] = $turma['nm_turma'];
  146 + }
  147 +
  148 + return $ret;
  149 + }
  150 +
  151 + /**
  152 + * Retorna o total de módulos do ano letivo da escola ou turma (caso o ano
  153 + * escolar do curso não seja "padrão"). Retorna um array com o total de
  154 + * módulos atribuídos ao ano letivo e o nome do módulo. Ex:
91 * 155 *
92 - * Exclui todas os componentes curriculares ao qual o aluno está dispensado  
93 - * de cursar. 156 + * <code>
  157 + * <?php
  158 + * array(
  159 + * 'total' => 4,
  160 + * 'nome' => 'Bimestre'
  161 + * );
  162 + * </code>
94 * 163 *
95 - * @param int $codMatricula  
96 - * @param ComponenteCurricular_Model_ComponenteDataMapper $mapper 164 + * @param int $codEscola
  165 + * @param int $codCurso
  166 + * @param int $codTurma
  167 + * @param int|NULL $ano Ano letivo da escola ou turma. Opcional.
97 * @return array 168 * @return array
98 - * @throws App_Model_Exception  
99 */ 169 */
100 - public static function getComponentesPorMatricula($codMatricula,  
101 - ComponenteCurricular_Model_ComponenteDataMapper $mapper = NULL) 170 + public static function getModulo($codEscola, $codCurso, $codTurma,
  171 + $ano = NULL)
102 { 172 {
103 - $matricula = self::getMatricula($codMatricula); 173 + $modulos = array();
104 174
105 - $codEscola = $matricula['ref_ref_cod_escola'];  
106 - $codSerie = $matricula['ref_ref_cod_serie']; 175 + $curso = self::addClassToStorage('clsPmieducarCurso', NULL,
  176 + 'include/pmieducar/clsPmieducarCurso.inc.php');
107 177
108 - $serie = self::getSerie($codSerie); 178 + $curso->cod_curso = $codCurso;
  179 + $curso = $curso->detalhe();
109 180
110 - // Disciplinas da escola na série em que o aluno está matriculado  
111 - $disciplinas = self::getEscolaSerieDisciplina($codSerie, $codEscola); 181 + $padraoAnoEscolar = $curso['padrao_ano_escolar'] == 1 ? TRUE : FALSE;
112 182
113 - // Dispensas do aluno  
114 - $disciplinasDispensa = self::getDisciplinasDispensadasPorMatricula(  
115 - $codMatricula, $codSerie, $codEscola 183 + // Segue o padrão
  184 + if (TRUE == $padraoAnoEscolar) {
  185 + $escolaAnoLetivo = self::addClassToStorage('clsPmieducarEscolaAnoLetivo',
  186 + NULL, 'include/pmieducar/clsPmieducarEscolaAnoLetivo.inc.php');
  187 +
  188 + $anosEmAndamento = $escolaAnoLetivo->lista($codEscola, $ano, NULL, NULL,
  189 + 1, NULL, NULL, NULL, NULL, 1);
  190 +
  191 + // Pela restrição na criação de anos letivos, eu posso confiar no primeiro
  192 + // e único resultado que deve ter retornado
  193 + if (FALSE !== $anosEmAndamento && 1 == count($anosEmAndamento)) {
  194 + $ano = array_shift($anosEmAndamento);
  195 + $ano = $ano['ano'];
  196 + }
  197 + else {
  198 + throw new App_Model_Exception('Existem vários anos escolares em andamento.');
  199 + }
  200 +
  201 + $anoLetivoModulo = self::addClassToStorage('clsPmieducarAnoLetivoModulo',
  202 + NULL, 'include/pmieducar/clsPmieducarAnoLetivoModulo.inc.php');
  203 +
  204 + $modulos = $anoLetivoModulo->lista($ano, $codEscola);
  205 + }
  206 + else {
  207 + $turmaModulo = self::addClassToStorage('clsPmieducarTurmaModulo',
  208 + NULL, 'include/pmieducar/clsPmieducarTurmaModulo.inc.php');
  209 +
  210 + $modulos = $turmaModulo->lista($codTurma);
  211 + }
  212 +
  213 + if (FALSE === $modulos) {
  214 + return 0;
  215 + }
  216 +
  217 + // Total de módulos
  218 + $total = count($modulos);
  219 +
  220 + // Código do tipo de módulo
  221 + $modulo = array_shift($modulos);
  222 + $codModulo = $modulo['ref_cod_modulo'];
  223 +
  224 + // Recupera do regstry o objeto legado
  225 + $modulo = self::addClassToStorage('clsPmieducarModulo', NULL,
  226 + 'include/pmieducar/clsPmieducarModulo.inc.php');
  227 +
  228 + $modulo->cod_modulo = $codModulo;
  229 + $modulo = $modulo->detalhe();
  230 + $modulo = $modulo['nm_tipo'];
  231 +
  232 + return array(
  233 + 'total' => $total,
  234 + 'nome' => $modulo
116 ); 235 );
  236 + }
117 237
118 - // Instancia um data mapper caso nenhum seja provido  
119 - if (is_null($mapper)) { 238 + /**
  239 + * Retorna array com as referências de pmieducar.escola_serie_disciplina
  240 + * a modules.componente_curricular ('ref_ref_cod_disciplina').
  241 + *
  242 + * @param int $codSerie
  243 + * @param int $codEscola
  244 + * @param bool $hydrate
  245 + * @return array
  246 + * @throws App_Model_Exception
  247 + */
  248 + public static function getEscolaSerieDisciplina($codSerie, $codEscola, $hydrate = FALSE)
  249 + {
  250 + // Disciplinas na série na escola
  251 + $escolaSerieDisciplina = self::addClassToStorage('clsPmieducarEscolaSerieDisciplina',
  252 + NULL, 'include/pmieducar/clsPmieducarEscolaSerieDisciplina.inc.php');
  253 +
  254 + $disciplinasEscolaSerie = $escolaSerieDisciplina->lista($codSerie, $codEscola, NULL, 1);
  255 +
  256 + if (FALSE === $disciplinasEscolaSerie) {
  257 + throw new App_Model_Exception(
  258 + sprintf('Nenhuma disciplina para a série (%d) e a escola (%d) informados',
  259 + $codSerie, $codEscola)
  260 + );
  261 + }
  262 +
  263 + if ($hydrate) {
120 require_once 'ComponenteCurricular/Model/ComponenteDataMapper.php'; 264 require_once 'ComponenteCurricular/Model/ComponenteDataMapper.php';
121 $mapper = new ComponenteCurricular_Model_ComponenteDataMapper(); 265 $mapper = new ComponenteCurricular_Model_ComponenteDataMapper();
122 } 266 }
123 267
124 - // Seleciona os componentes curriculares em que o aluno está cursando  
125 - $componentes = array();  
126 -  
127 - foreach ($disciplinas as $disciplina) {  
128 - if (in_array($disciplina['ref_cod_disciplina'], $disciplinasDispensa)) { 268 + $disciplinas = array();
  269 + foreach ($disciplinasEscolaSerie as $disciplinaEscolaSerie) {
  270 + if ($hydrate) {
  271 + $disciplinas[] = $mapper->find($disciplinaEscolaSerie['ref_cod_disciplina']);
129 continue; 272 continue;
130 } 273 }
131 274
132 - $componenteCurricular = $mapper->findComponenteCurricularAnoEscolar(  
133 - $disciplina['ref_cod_disciplina'],  
134 - $codSerie 275 + $disciplinas[] = array(
  276 + 'ref_cod_disciplina' => $disciplinaEscolaSerie['ref_cod_disciplina'],
  277 + 'carga_horaria' => $disciplinaEscolaSerie['carga_horaria']
135 ); 278 );
136 -  
137 - if (!is_null($disciplina['carga_horaria'])) {  
138 - $componenteCurricular->cargaHoraria = $disciplina['carga_horaria'];  
139 - }  
140 -  
141 - $componentes[$componenteCurricular->id] = $componenteCurricular;  
142 } 279 }
143 280
144 - return $componentes; 281 + return $disciplinas;
145 } 282 }
146 283
147 /** 284 /**
@@ -206,75 +343,85 @@ class App_Model_IedFinder extends CoreExt_Entity @@ -206,75 +343,85 @@ class App_Model_IedFinder extends CoreExt_Entity
206 } 343 }
207 344
208 /** 345 /**
209 - * Retorna um array com as informações da série a partir de seu código. 346 + * Retorna uma instância de RegraAvaliacao_Model_Regra a partir dos dados
  347 + * da matrícula.
210 * 348 *
211 - * @param int $codSerie  
212 - * @return array 349 + * @param int $codMatricula
  350 + * @param RegraAvaliacao_Model_RegraDataMapper $mapper
  351 + * @return RegraAvaliacao_Model_Regra
213 * @throws App_Model_Exception 352 * @throws App_Model_Exception
214 */ 353 */
215 - public static function getSerie($codSerie) 354 + public static function getRegraAvaliacaoPorMatricula($codMatricula,
  355 + RegraAvaliacao_Model_RegraDataMapper $mapper = NULL)
216 { 356 {
217 - // Recupera clsPmieducarSerie do storage de classe estático  
218 - $serie = self::addClassToStorage('clsPmieducarSerie', NULL,  
219 - 'include/pmieducar/clsPmieducarSerie.inc.php');  
220 -  
221 - // Usa o atributo público para depois chamar o método detalhe()  
222 - $serie->cod_serie = $codSerie;  
223 - $serie = $serie->detalhe(); 357 + $matricula = self::getMatricula($codMatricula);
  358 + $serie = self::getSerie($matricula['ref_ref_cod_serie']);
224 359
225 - if (FALSE === $serie) {  
226 - throw new App_Model_Exception(  
227 - sprintf('Série com o código "%d" não existe.', $codSerie)  
228 - ); 360 + if (is_null($mapper)) {
  361 + require_once 'RegraAvaliacao/Model/RegraDataMapper.php';
  362 + $mapper = new RegraAvaliacao_Model_RegraDataMapper();
229 } 363 }
230 364
231 - return $serie; 365 + return $mapper->find($serie['regra_avaliacao_id']);
232 } 366 }
233 367
234 /** 368 /**
235 - * Retorna array com as referências de pmieducar.escola_serie_disciplina  
236 - * a modules.componente_curricular ('ref_ref_cod_disciplina'). 369 + * Retorna um array de instâncias ComponenteCurricular_Model_Componente ao
  370 + * qual um aluno cursa através de sua matrícula.
237 * 371 *
238 - * @param int $codSerie  
239 - * @param int $codEscola  
240 - * @param bool $hydrate 372 + * Exclui todas os componentes curriculares ao qual o aluno está dispensado
  373 + * de cursar.
  374 + *
  375 + * @param int $codMatricula
  376 + * @param ComponenteCurricular_Model_ComponenteDataMapper $mapper
241 * @return array 377 * @return array
242 * @throws App_Model_Exception 378 * @throws App_Model_Exception
243 */ 379 */
244 - public static function getEscolaSerieDisciplina($codSerie, $codEscola, $hydrate = FALSE) 380 + public static function getComponentesPorMatricula($codMatricula,
  381 + ComponenteCurricular_Model_ComponenteDataMapper $mapper = NULL)
245 { 382 {
246 - // Disciplinas na série na escola  
247 - $escolaSerieDisciplina = self::addClassToStorage('clsPmieducarEscolaSerieDisciplina',  
248 - NULL, 'include/pmieducar/clsPmieducarEscolaSerieDisciplina.inc.php'); 383 + $matricula = self::getMatricula($codMatricula);
249 384
250 - $disciplinasEscolaSerie = $escolaSerieDisciplina->lista($codSerie, $codEscola, NULL, 1); 385 + $codEscola = $matricula['ref_ref_cod_escola'];
  386 + $codSerie = $matricula['ref_ref_cod_serie'];
251 387
252 - if (FALSE === $disciplinasEscolaSerie) {  
253 - throw new App_Model_Exception(  
254 - sprintf('Nenhuma disciplina para a série (%d) e a escola (%d) informados',  
255 - $codSerie, $codEscola)  
256 - );  
257 - } 388 + $serie = self::getSerie($codSerie);
258 389
259 - if ($hydrate) { 390 + // Disciplinas da escola na série em que o aluno está matriculado
  391 + $disciplinas = self::getEscolaSerieDisciplina($codSerie, $codEscola);
  392 +
  393 + // Dispensas do aluno
  394 + $disciplinasDispensa = self::getDisciplinasDispensadasPorMatricula(
  395 + $codMatricula, $codSerie, $codEscola
  396 + );
  397 +
  398 + // Instancia um data mapper caso nenhum seja provido
  399 + if (is_null($mapper)) {
260 require_once 'ComponenteCurricular/Model/ComponenteDataMapper.php'; 400 require_once 'ComponenteCurricular/Model/ComponenteDataMapper.php';
261 $mapper = new ComponenteCurricular_Model_ComponenteDataMapper(); 401 $mapper = new ComponenteCurricular_Model_ComponenteDataMapper();
262 } 402 }
263 403
264 - $disciplinas = array();  
265 - foreach ($disciplinasEscolaSerie as $disciplinaEscolaSerie) {  
266 - if ($hydrate) {  
267 - $disciplinas[] = $mapper->find($disciplinaEscolaSerie['ref_cod_disciplina']); 404 + // Seleciona os componentes curriculares em que o aluno está cursando
  405 + $componentes = array();
  406 +
  407 + foreach ($disciplinas as $disciplina) {
  408 + if (in_array($disciplina['ref_cod_disciplina'], $disciplinasDispensa)) {
268 continue; 409 continue;
269 } 410 }
270 411
271 - $disciplinas[] = array(  
272 - 'ref_cod_disciplina' => $disciplinaEscolaSerie['ref_cod_disciplina'],  
273 - 'carga_horaria' => $disciplinaEscolaSerie['carga_horaria'] 412 + $componenteCurricular = $mapper->findComponenteCurricularAnoEscolar(
  413 + $disciplina['ref_cod_disciplina'],
  414 + $codSerie
274 ); 415 );
  416 +
  417 + if (!is_null($disciplina['carga_horaria'])) {
  418 + $componenteCurricular->cargaHoraria = $disciplina['carga_horaria'];
  419 + }
  420 +
  421 + $componentes[$componenteCurricular->id] = $componenteCurricular;
275 } 422 }
276 423
277 - return $disciplinas; 424 + return $componentes;
278 } 425 }
279 426
280 /** 427 /**
@@ -328,153 +475,6 @@ class App_Model_IedFinder extends CoreExt_Entity @@ -328,153 +475,6 @@ class App_Model_IedFinder extends CoreExt_Entity
328 } 475 }
329 476
330 /** 477 /**
331 - * Retorna o total de módulos do ano letivo da escola ou turma (caso o ano  
332 - * escolar do curso não seja "padrão"). Retorna um array com o total de  
333 - * módulos atribuídos ao ano letivo e o nome do módulo. Ex:  
334 - *  
335 - * <code>  
336 - * <?php  
337 - * array(  
338 - * 'total' => 4,  
339 - * 'nome' => 'Bimestre'  
340 - * );  
341 - * </code>  
342 - *  
343 - * @param int $codEscola  
344 - * @param int $codCurso  
345 - * @param int $codTurma  
346 - * @param int|NULL $ano Ano letivo da escola ou turma. Opcional.  
347 - * @return array  
348 - */  
349 - public static function getModulo($codEscola, $codCurso, $codTurma,  
350 - $ano = NULL)  
351 - {  
352 - $modulos = array();  
353 -  
354 - $curso = self::addClassToStorage('clsPmieducarCurso', NULL,  
355 - 'include/pmieducar/clsPmieducarCurso.inc.php');  
356 -  
357 - $curso->cod_curso = $codCurso;  
358 - $curso = $curso->detalhe();  
359 -  
360 - $padraoAnoEscolar = $curso['padrao_ano_escolar'] == 1 ? TRUE : FALSE;  
361 -  
362 - // Segue o padrão  
363 - if (TRUE == $padraoAnoEscolar) {  
364 - $escolaAnoLetivo = self::addClassToStorage('clsPmieducarEscolaAnoLetivo',  
365 - NULL, 'include/pmieducar/clsPmieducarEscolaAnoLetivo.inc.php');  
366 -  
367 - $anosEmAndamento = $escolaAnoLetivo->lista($codEscola, $ano, NULL, NULL,  
368 - 1, NULL, NULL, NULL, NULL, 1);  
369 -  
370 - // Pela restrição na criação de anos letivos, eu posso confiar no primeiro  
371 - // e único resultado que deve ter retornado  
372 - if (FALSE !== $anosEmAndamento && 1 == count($anosEmAndamento)) {  
373 - $ano = array_shift($anosEmAndamento);  
374 - $ano = $ano['ano'];  
375 - }  
376 - else {  
377 - throw new App_Model_Exception('Existem vários anos escolares em andamento.');  
378 - }  
379 -  
380 - $anoLetivoModulo = self::addClassToStorage('clsPmieducarAnoLetivoModulo',  
381 - NULL, 'include/pmieducar/clsPmieducarAnoLetivoModulo.inc.php');  
382 -  
383 - $modulos = $anoLetivoModulo->lista($ano, $codEscola);  
384 - }  
385 - else {  
386 - $turmaModulo = self::addClassToStorage('clsPmieducarTurmaModulo',  
387 - NULL, 'include/pmieducar/clsPmieducarTurmaModulo.inc.php');  
388 -  
389 - $modulos = $turmaModulo->lista($codTurma);  
390 - }  
391 -  
392 - if (FALSE === $modulos) {  
393 - return 0;  
394 - }  
395 -  
396 - // Total de módulos  
397 - $total = count($modulos);  
398 -  
399 - // Código do tipo de módulo  
400 - $modulo = array_shift($modulos);  
401 - $codModulo = $modulo['ref_cod_modulo'];  
402 -  
403 - // Recupera do regstry o objeto legado  
404 - $modulo = self::addClassToStorage('clsPmieducarModulo', NULL,  
405 - 'include/pmieducar/clsPmieducarModulo.inc.php');  
406 -  
407 - $modulo->cod_modulo = $codModulo;  
408 - $modulo = $modulo->detalhe();  
409 - $modulo = $modulo['nm_tipo'];  
410 -  
411 - return array(  
412 - 'total' => $total,  
413 - 'nome' => $modulo  
414 - );  
415 - }  
416 -  
417 - /**  
418 - * Retorna todas as séries cadastradas na tabela pmieducar.serie, selecionando  
419 - * opcionalmente pelo código da instituição.  
420 - * @param int $instituicaoId  
421 - * @return array  
422 - */  
423 - public static function getSeries($instituicaoId = NULL)  
424 - {  
425 - $serie = self::addClassToStorage('clsPmieducarSerie', NULL,  
426 - 'include/pmieducar/clsPmieducarSerie.inc.php');  
427 -  
428 - // Carrega as séries  
429 - $serie->setOrderby('ref_cod_curso ASC, cod_serie ASC, etapa_curso ASC');  
430 - $serie = $serie->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,  
431 - NULL, NULL, NULL, NULL, $instituicaoId);  
432 -  
433 - $series = array();  
434 - foreach ($serie as $key => $val) {  
435 - $series[$val['cod_serie']] = $val;  
436 - }  
437 -  
438 - return $series;  
439 - }  
440 -  
441 - /**  
442 - * Retorna um nome de curso, procurando pelo seu código.  
443 - * @param int $id  
444 - * @return string|FALSE  
445 - */  
446 - public static function getCurso($id)  
447 - {  
448 - $curso = self::addClassToStorage('clsPmieducarCurso', NULL,  
449 - 'include/pmieducar/clsPmieducarCurso.inc.php');  
450 - $curso->cod_curso = $id;  
451 - $curso = $curso->detalhe();  
452 - return $curso['nm_curso'];  
453 - }  
454 -  
455 - /**  
456 - * Retorna as turmas de uma escola.  
457 - * @param int $escola  
458 - * @return array (cod_turma => nm_turma)  
459 - */  
460 - public static function getTurmas($escola)  
461 - {  
462 - $turma = self::addClassToStorage('clsPmieducarTurma', NULL,  
463 - 'include/pmieducar/clsPmieducarTurma.inc.php');  
464 -  
465 - // Carrega as turmas da escola  
466 - $turma->setOrderBy('nm_turma ASC');  
467 - $turmas = $turma->lista(NULL, NULL, NULL, NULL, $escola);  
468 -  
469 - $ret = array();  
470 - foreach ($turmas as $turma) {  
471 - $ret[$turma['cod_turma']] = $turma['nm_turma'];  
472 - }  
473 -  
474 - return $ret;  
475 - }  
476 -  
477 - /**  
478 * @see CoreExt_Entity_Validatable#getDefaultValidatorCollection() 478 * @see CoreExt_Entity_Validatable#getDefaultValidatorCollection()
479 */ 479 */
480 public function getDefaultValidatorCollection() 480 public function getDefaultValidatorCollection()
ieducar/tests/unit/App/Model/IedFinderTest.php
@@ -101,7 +101,7 @@ class App_Model_IedFinderTest extends UnitBaseTest @@ -101,7 +101,7 @@ class App_Model_IedFinderTest extends UnitBaseTest
101 return $tabela; 101 return $tabela;
102 } 102 }
103 103
104 - public function testCarregaNomeDeCursoPorCodigo() 104 + public function testGetCurso()
105 { 105 {
106 $returnValue = array( 106 $returnValue = array(
107 'nm_curso' => 'Ensino Fundamental' 107 'nm_curso' => 'Ensino Fundamental'
@@ -117,45 +117,63 @@ class App_Model_IedFinderTest extends UnitBaseTest @@ -117,45 +117,63 @@ class App_Model_IedFinderTest extends UnitBaseTest
117 'clsPmieducarCurso', $mock, NULL, TRUE); 117 'clsPmieducarCurso', $mock, NULL, TRUE);
118 118
119 $curso = App_Model_IedFinder::getCurso(1); 119 $curso = App_Model_IedFinder::getCurso(1);
120 - $this->assertEquals($returnValue['nm_curso'], $curso); 120 + $this->assertEquals(
  121 + $returnValue['nm_curso'], $curso,
  122 + '::getCurso() retorna o nome do curso através de uma busca pelo código.'
  123 + );
121 } 124 }
122 125
123 - public function testCarregaSeries() 126 + public function testGetInstituicoes()
124 { 127 {
125 - $returnValue = array(1 => array('cod_serie' => 1, 'nm_serie' => 'Pré')); 128 + $returnValue = array(array('cod_instituicao' => 1, 'nm_instituicao' => 'Instituição'));
  129 + $expected = array(1 => 'Instituição');
126 130
127 - $mock = $this->getCleanMock('clsPmieducarSerie'); 131 + $mock = $this->getCleanMock('clsPmieducarInstituicao');
128 $mock->expects($this->once()) 132 $mock->expects($this->once())
129 ->method('lista') 133 ->method('lista')
130 ->will($this->returnValue($returnValue)); 134 ->will($this->returnValue($returnValue));
131 135
132 // Registra a instância no repositório de classes de CoreExt_Entity 136 // Registra a instância no repositório de classes de CoreExt_Entity
133 - $instance = CoreExt_Entity::addClassToStorage(  
134 - 'clsPmieducarSerie', $mock, NULL, TRUE); 137 + $instance = App_Model_IedFinder::addClassToStorage(
  138 + 'clsPmieducarInstituicao', $mock);
135 139
136 - $series = App_Model_IedFinder::getSeries(1);  
137 - $this->assertEquals($returnValue, $series); 140 + $instituicoes = App_Model_IedFinder::getInstituicoes();
  141 + $this->assertEquals(
  142 + $expected, $instituicoes,
  143 + '::getInstituicoes() retorna todas as instituições cadastradas.'
  144 + );
138 } 145 }
139 146
140 - public function testCarregaInstituicoes() 147 + public function testGetSeries()
141 { 148 {
142 - $returnValue = array(array('cod_instituicao' => 1, 'nm_instituicao' => 'Instituição'));  
143 - $expected = array(1 => 'Instituição'); 149 + $returnValue = array(
  150 + 1 => array('cod_serie' => 1, 'ref_ref_cod_instituicao' => 1, 'nm_serie' => 'Pré'),
  151 + 2 => array('cod_serie' => 2, 'ref_ref_cod_instituicao' => 2, 'nm_serie' => 'Pré')
  152 + );
144 153
145 - $mock = $this->getCleanMock('clsPmieducarInstituicao');  
146 - $mock->expects($this->once()) 154 + $mock = $this->getCleanMock('clsPmieducarSerie');
  155 + $mock->expects($this->exactly(2))
147 ->method('lista') 156 ->method('lista')
148 - ->will($this->returnValue($returnValue)); 157 + ->will($this->onConsecutiveCalls($returnValue, array($returnValue[1])));
149 158
150 // Registra a instância no repositório de classes de CoreExt_Entity 159 // Registra a instância no repositório de classes de CoreExt_Entity
151 - $instance = App_Model_IedFinder::addClassToStorage(  
152 - 'clsPmieducarInstituicao', $mock); 160 + $instance = CoreExt_Entity::addClassToStorage(
  161 + 'clsPmieducarSerie', $mock, NULL, TRUE);
153 162
154 - $instituicoes = App_Model_IedFinder::getInstituicoes();  
155 - $this->assertEquals($expected, $instituicoes); 163 + $series = App_Model_IedFinder::getSeries();
  164 + $this->assertEquals(
  165 + $returnValue, $series,
  166 + '::getSeries() retorna todas as séries cadastradas.'
  167 + );
  168 +
  169 + $series = App_Model_IedFinder::getSeries(1);
  170 + $this->assertEquals(
  171 + array(1 => $returnValue[1]), $series,
  172 + '::getSeries() retorna todas as séries de uma instituição.'
  173 + );
156 } 174 }
157 175
158 - public function testCarregaTurmas() 176 + public function testGetTurmas()
159 { 177 {
160 $returnValue = array(1 => array('cod_turma' => 1, 'nm_turma' => 'Primeiro ano')); 178 $returnValue = array(1 => array('cod_turma' => 1, 'nm_turma' => 'Primeiro ano'));
161 $expected = array(1 => 'Primeiro ano'); 179 $expected = array(1 => 'Primeiro ano');
@@ -170,7 +188,10 @@ class App_Model_IedFinderTest extends UnitBaseTest @@ -170,7 +188,10 @@ class App_Model_IedFinderTest extends UnitBaseTest
170 'clsPmieducarTurma', $mock, NULL, TRUE); 188 'clsPmieducarTurma', $mock, NULL, TRUE);
171 189
172 $turmas = App_Model_IedFinder::getTurmas(1); 190 $turmas = App_Model_IedFinder::getTurmas(1);
173 - $this->assertEquals($expected, $turmas); 191 + $this->assertEquals(
  192 + $expected, $turmas,
  193 + '::getTurmas() retorna todas as turmas de uma escola.'
  194 + );
174 } 195 }
175 196
176 public function testGetMatricula() 197 public function testGetMatricula()
@@ -222,10 +243,13 @@ class App_Model_IedFinderTest extends UnitBaseTest @@ -222,10 +243,13 @@ class App_Model_IedFinderTest extends UnitBaseTest
222 CoreExt_Entity::addClassToStorage('clsPmieducarCurso', $cursoMock, NULL, TRUE); 243 CoreExt_Entity::addClassToStorage('clsPmieducarCurso', $cursoMock, NULL, TRUE);
223 244
224 $matricula = App_Model_IedFinder::getMatricula(1); 245 $matricula = App_Model_IedFinder::getMatricula(1);
225 - $this->assertEquals($expected, $matricula); 246 + $this->assertEquals(
  247 + $expected, $matricula,
  248 + '::getMatricula() retorna os dados (escola, série, curso, turma e carga horária) de uma matrícula.'
  249 + );
226 } 250 }
227 251
228 - public function testInstanciaRegraDeAvaliacaoPorMatricula() 252 + public function testGetRegraAvaliacaoPorMatricula()
229 { 253 {
230 $expected = new RegraAvaliacao_Model_Regra(array( 254 $expected = new RegraAvaliacao_Model_Regra(array(
231 'id' => 1, 255 'id' => 1,
@@ -268,13 +292,16 @@ class App_Model_IedFinderTest extends UnitBaseTest @@ -268,13 +292,16 @@ class App_Model_IedFinderTest extends UnitBaseTest
268 ->will($this->returnValue($expected)); 292 ->will($this->returnValue($expected));
269 293
270 $regraAvaliacao = App_Model_IedFinder::getRegraAvaliacaoPorMatricula(1, $mapperMock); 294 $regraAvaliacao = App_Model_IedFinder::getRegraAvaliacaoPorMatricula(1, $mapperMock);
271 - $this->assertEquals($expected, $regraAvaliacao); 295 + $this->assertEquals(
  296 + $expected, $regraAvaliacao,
  297 + '::getRegraAvaliacaoPorMatricula() retorna a regra de avaliação de uma matrícula.'
  298 + );
272 } 299 }
273 300
274 /** 301 /**
275 - * @depends App_Model_IedFinderTest::testInstanciaRegraDeAvaliacaoPorMatricula 302 + * @depends App_Model_IedFinderTest::testGetRegraAvaliacaoPorMatricula
276 */ 303 */
277 - public function testDisciplinasPorMatricula() 304 + public function testGetComponentesPorMatricula()
278 { 305 {
279 $componentes = array( 306 $componentes = array(
280 new ComponenteCurricular_Model_Componente( 307 new ComponenteCurricular_Model_Componente(
@@ -346,13 +373,16 @@ class App_Model_IedFinderTest extends UnitBaseTest @@ -346,13 +373,16 @@ class App_Model_IedFinderTest extends UnitBaseTest
346 $expected[3] = clone($expected[3]); 373 $expected[3] = clone($expected[3]);
347 $expected[3]->cargaHoraria = 60; 374 $expected[3]->cargaHoraria = 60;
348 375
349 - $this->assertEquals($expected, $disciplinas); 376 + $this->assertEquals(
  377 + $expected, $disciplinas,
  378 + '::getComponentesPorMatricula() retorna um array de ComponenteCurricular_Model_Componente para uma matrícula.'
  379 + );
350 } 380 }
351 381
352 /** 382 /**
353 - * @depends App_Model_IedFinderTest::testInstanciaRegraDeAvaliacaoPorMatricula 383 + * @depends App_Model_IedFinderTest::testGetRegraAvaliacaoPorMatricula
354 */ 384 */
355 - public function testModulosDeUmCursoPadraoAnoEscolar() 385 + public function testGetQuantidadeDeModulosMatricula()
356 { 386 {
357 $returnEscolaAno = array( 387 $returnEscolaAno = array(
358 array('ref_cod_escola' => 1, 'ano' => 2009, 'andamento' => 1, 'ativo' => 1) 388 array('ref_cod_escola' => 1, 'ano' => 2009, 'andamento' => 1, 'ativo' => 1)
@@ -408,13 +438,16 @@ class App_Model_IedFinderTest extends UnitBaseTest @@ -408,13 +438,16 @@ class App_Model_IedFinderTest extends UnitBaseTest
408 438
409 $modulos = App_Model_IedFinder::getQuantidadeDeModulosMatricula(1); 439 $modulos = App_Model_IedFinder::getQuantidadeDeModulosMatricula(1);
410 440
411 - $this->assertEquals(4, $modulos); 441 + $this->assertEquals(
  442 + 4, $modulos,
  443 + '::getQuantidadeDeModulosMatricula() retorna a quantidade de módulos para uma matrícula de ano escolar padrão (curso padrão ano escolar).'
  444 + );
412 } 445 }
413 446
414 /** 447 /**
415 - * @depends App_Model_IedFinderTest::testInstanciaRegraDeAvaliacaoPorMatricula 448 + * @depends App_Model_IedFinderTest::testGetRegraAvaliacaoPorMatricula
416 */ 449 */
417 - public function testEtapasDeUmCursoAnoNaoPadrao() 450 + public function testGetQuantidadeDeModulosMatriculaCursoAnoNaoPadrao()
418 { 451 {
419 // Curso não padrão 452 // Curso não padrão
420 $returnCurso = array('cod_curso' => 1, 'carga_horaria' => 800, 'hora_falta' => (50 / 60), 'padrao_ano_escolar' => 0); 453 $returnCurso = array('cod_curso' => 1, 'carga_horaria' => 800, 'hora_falta' => (50 / 60), 'padrao_ano_escolar' => 0);
@@ -444,6 +477,9 @@ class App_Model_IedFinderTest extends UnitBaseTest @@ -444,6 +477,9 @@ class App_Model_IedFinderTest extends UnitBaseTest
444 477
445 $etapas = App_Model_IedFinder::getQuantidadeDeModulosMatricula(1); 478 $etapas = App_Model_IedFinder::getQuantidadeDeModulosMatricula(1);
446 479
447 - $this->assertEquals(4, $etapas); 480 + $this->assertEquals(
  481 + 4, $etapas,
  482 + '::getQuantidadeDeModulosMatricula() retorna a quantidade de módulos para uma matrícula de um ano escolar não padrão (curso não padrão).'
  483 + );
448 } 484 }
449 } 485 }
450 \ No newline at end of file 486 \ No newline at end of file