/** * @see Core_Controller_Page_EditController#_save() */ protected function _save() { $nota = new Avaliacao_Model_NotaComponente(array('componenteCurricular' => $this->getRequest()->componenteCurricular, 'nota' => urldecode($this->getRequest()->nota), 'etapa' => $this->getRequest()->etapa)); $this->_service->addNota($nota); if ($this->_regra->get('tipoPresenca') == RegraAvaliacao_Model_TipoPresenca::POR_COMPONENTE) { $quantidade = 0 < $this->getRequest()->falta ? (int) $this->getRequest()->falta : 0; $falta = new Avaliacao_Model_FaltaComponente(array('componenteCurricular' => $this->getRequest()->componenteCurricular, 'quantidade' => $quantidade, 'etapa' => $this->getRequest()->etapa)); $this->_service->addFalta($falta); } if (trim($this->getRequest()->parecer) != '' && $this->_regra->get('parecerDescritivo') == RegraAvaliacao_Model_TipoParecerDescritivo::ETAPA_COMPONENTE) { $parecer = new Avaliacao_Model_ParecerDescritivoComponente(array('componenteCurricular' => $this->getRequest()->componenteCurricular, 'parecer' => $this->getRequest()->parecer, 'etapa' => $this->getRequest()->etapa)); $this->_service->addParecer($parecer); } try { $this->_service->save(); } catch (CoreExt_Service_Exception $e) { // Ok. Não pode promover por se tratar de progressão manual ou por estar em andamento } catch (Exception $e) { $this->mensagem = 'Erro no preenchimento do formulário. '; return FALSE; } return TRUE; }