/** * @param Core_Dto_Entity * @throws Exception * */ public function register(\Core_Dto_Entity $dto) { # @todo implementar regra de negocio que verifica se o comentario pode ser alterado # falta a definicao da estrutura tabela # recupera referencia da pessoa que está realizando operacao $pessoa = $this->_getRepository('app:VwPessoa')->find(\Core_Integration_Sica_User::getPersonId()); # verifica o autor existe (usuario da sessao existe na base) # isso poderá ocorrer quando a sessao cair perando a realizacao # da operacao if (!count($pessoa)) { throw new \Exception(self::T_COMENTARIO_AUTHOR_NOT_FOUND); } $dto->setSqPessoa($pessoa); # recupera a unidade organizacional da pessoa que esta manipulando o comentario $dto->setSqUnidadeOrg($this->_getRepository('app:VwUnidadeOrg')->find(\Core_Integration_Sica_User::getUserUnit())); # verifica se o registro já existe $this->_alreadyExists($dto); # se o sq_comentario_artefato existir indica uma alteracao. # Devido a propriedade de tempo nunca será possível repedir um registro # se levar esta propriedade em consideracao if ($dto->getSqComentarioArtefato()) { $this->_update($dto); $this->getMessaging()->addSuccessMessage('MD002', 'User'); } else { # define a hora de registro/alteracao $dto->setDtComentario(\Zend_Date::now()); # delega a operação de salvar os dados para superclasse $this->_save($dto); $this->getMessaging()->addSuccessMessage('MD001', 'User'); } $this->finish(); $this->getMessaging()->dispatchPackets(); }