public function cadastrarVoluntario(Entity\Voluntario $voluntario, Entity\Usuario $usuario, $curso_id)
 {
     $this->em->getConnection()->beginTransaction();
     try {
         $voluntario_orig = $this->voluntario_dao->findVoluntarioByCPF($usuario->getCpf());
         if ($voluntario_orig != NULL) {
             $this->CI->session->set_flashdata('erro', 'Este voluntário já existe.');
             throw new Exception("Este voluntário já existe", 2);
         }
         // TODO: consultar CPF aqui, mover para um método abstrato no usuario_bo
         $senha = $usuario->getSenha();
         $usuario->setSenha(md5($senha));
         // cadastra o usuário
         $this->usuario_dao->insert($usuario);
         $voluntario->setUsuario($usuario);
         $this->_fazerCadastroVoluntarioAux($voluntario, $curso_id);
         $this->em->flush();
         $this->em->refresh($usuario);
         $this->usuario_bo->redefinirUserRegras($usuario->getIdUsuario());
         sendEmailAfterRecordUser($usuario->getCpf(), $usuario->getNome(), $usuario->getEmail(), "voluntario");
         return $usuario->getIdUsuario();
     } catch (Exception $ex) {
         $this->em->getConnection()->rollBack();
         $this->CI->log->write_log('error', $ex->getMessage());
     }
     return false;
 }
 /**
  * Constroi uma nova Entity usuario com base nos dados da view-model
  * @return \Usuario
  */
 public function load_user()
 {
     $usuario = new Entity\Usuario();
     $usuario->setCpf($this->getCpf());
     $usuario->setEmail($this->getEmail());
     $usuario->setNome($this->getNome());
     $usuario->setSenha($this->getSenha());
     return $usuario;
 }
 public function loadUsuario()
 {
     $usuario = new \Entity\Usuario();
     $usuario->setCpf($this->get_cpf());
     $usuario->setEmail($this->get_email());
     $usuario->setNome($this->get_nome());
     $usuario->setSenha($this->get_senha());
     return $usuario;
 }