protected function _testAdicionaParecerNoBoletimVerificaValidadores(Avaliacao_Model_ParecerDescritivoAbstract $parecer) { $this->assertEquals(1, $parecer->get('componenteCurricular')); $this->assertEquals('An', $parecer->etapa); $this->assertEquals('N/D.', $parecer->parecer); $validators = $parecer->getValidatorCollection(); $this->assertEquals($this->_getEtapasPossiveisParecer(), $validators['etapa']->getOption('choices')); $this->assertEquals($this->_getComponentesCursados(), array_values($validators['componenteCurricular']->getOption('choices'))); }
/** * Atualiza a etapa de uma instância de Avaliacao_Model_ParecerDescritivoAbstract * para a última etapa possível. * * @param Avaliacao_Model_ParecerDescritivoAbstract $instance * @return Avaliacao_Model_ParecerDescritivoAbstract */ protected function _updateParecerEtapa(Avaliacao_Model_ParecerDescritivoAbstract $instance) { if (!is_null($instance->etapa)) { return $instance; } $proximaEtapa = 1; $anuais = array(RegraAvaliacao_Model_TipoParecerDescritivo::ANUAL_GERAL, RegraAvaliacao_Model_TipoParecerDescritivo::ANUAL_COMPONENTE); $etapas = array(RegraAvaliacao_Model_TipoParecerDescritivo::ETAPA_GERAL, RegraAvaliacao_Model_TipoParecerDescritivo::ETAPA_COMPONENTE); $componentes = array(RegraAvaliacao_Model_TipoParecerDescritivo::ANUAL_COMPONENTE, RegraAvaliacao_Model_TipoParecerDescritivo::ETAPA_COMPONENTE); $gerais = array(RegraAvaliacao_Model_TipoParecerDescritivo::ANUAL_GERAL, RegraAvaliacao_Model_TipoParecerDescritivo::ETAPA_GERAL); $parecerDescritivo = $this->getRegra()->get('parecerDescritivo'); if (in_array($parecerDescritivo, $anuais)) { $instance->etapa = 'An'; return $instance; } elseif (in_array($parecerDescritivo, $etapas)) { $attrValues = array(); if (in_array($parecerDescritivo, $gerais)) { $attrValues = $this->getPareceresGerais(); } elseif (in_array($parecerDescritivo, $componentes)) { $pareceresComponentes = $this->getPareceresComponentes(); if (isset($pareceresComponentes[$instance->get('componenteCurricular')])) { $attrValues = $pareceresComponentes[$instance->get('componenteCurricular')]; } } if (0 < count($attrValues)) { $etapas = CoreExt_Entity::entityFilterAttr($attrValues, 'id', 'etapa'); $proximaEtapa = max($etapas) + 1; } } if ($proximaEtapa <= $this->getOption('etapas')) { $instance->etapa = $proximaEtapa; } elseif ($this->hasRecuperacao()) { $instance->etapa = 'Rc'; } return $instance; }