Exemple #1
0
 /**
  * @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();
 }