Ejemplo n.º 1
0
 /**
  * Mapeada como
  * 	/participar
  */
 public function criarAction()
 {
     $this->view->menu = "";
     $form = new Application_Form_Pessoa();
     $this->view->form = $form;
     $data = $this->getRequest()->getPost();
     if ($this->getRequest()->isPost() && $form->isValid($data)) {
         $data = $form->getValues();
         $pessoa = new Application_Model_Pessoa();
         $participante = new Application_Model_Participante();
         $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', APPLICATION_ENV);
         $idEncontro = $config->encontro->codigo;
         $data2 = array('id_encontro' => $idEncontro, 'id_municipio' => $data['id_municipio'], 'id_instituicao' => $data['id_instituicao']);
         unset($data['id_municipio']);
         unset($data['id_instituicao']);
         unset($data['captcha']);
         $adapter = $pessoa->getAdapter();
         try {
             $adapter->beginTransaction();
             $idPessoa = $pessoa->criar($data);
             $data2['id_pessoa'] = $idPessoa;
             $participante->insert($data2);
             // the commit occurs only after send email!
         } catch (Zend_Db_Exception $ex) {
             $adapter->rollBack();
             $sentinela = 1;
             if ($ex->getCode() == 23505) {
                 $this->_helper->flashMessenger->addMessage(array('warning' => _('E-mail already registered.')));
             } else {
                 $this->_helper->flashMessenger->addMessage(array('danger' => _('An unexpected error ocurred.<br/> Details:&nbsp;') . $ex->getMessage()));
             }
         }
         // codigo responsavel por enviar email para confirmacao
         try {
             if (!empty($idPessoa) and $idPessoa > 0) {
                 $rs = $participante->dadosTicketInscricao($idPessoa, $idEncontro);
                 $pdf = new Sige_Pdf_Relatorio_TicketInscricao($rs);
                 $binary = $pdf->obterPdf();
                 $mail = new Application_Model_EmailConfirmacao();
                 $mail->send($idPessoa, $idEncontro, Application_Model_EmailConfirmacao::MSG_CONFIRMACAO, $binary);
                 $data = array('email_enviado' => 'true');
                 $where = $pessoa->getAdapter()->quoteInto('id_pessoa = ?', $idPessoa);
                 $pessoa->update($data, $where);
             }
         } catch (Exception $ex) {
             $adapter->rollBack();
             $sentinela = 1;
             $this->_helper->flashMessenger->addMessage(array('danger' => _('An unexpected error ocurred.<br/> Details:&nbsp;') . $ex->getMessage()));
         }
         if ($sentinela == 0) {
             $adapter->commit();
             return $this->_helper->redirector->goToRoute(array('controller' => 'participante', 'action' => 'sucesso'), 'default', true);
         }
     }
 }
Ejemplo n.º 2
0
 public function editarPermissaoAction()
 {
     $this->autenticacao();
     $this->view->title = $this->t->_('Edit Permission');
     $cache = Zend_Registry::get('cache_common');
     $ps = $cache->load('prefsis');
     $idEncontro = (int) $ps->encontro["id_encontro"];
     $model = new Application_Model_Pessoa();
     $form = new Admin_Form_Permissao();
     $this->view->form = $form;
     if ($this->getRequest()->isPost()) {
         $formData = $this->getRequest()->getPost();
         if ($form->isValid($formData)) {
             $cancelar = $this->getRequest()->getPost('cancelar');
             if (isset($cancelar)) {
                 return $this->_helper->redirector->goToRoute(array('module' => 'admin', 'controller' => 'config', 'action' => 'permissao-usuarios'), 'default', true);
             }
             $id = $this->getRequest()->getParam('id', 0);
             $admin = (bool) $form->getValue('admin') ? 't' : 'f';
             $id_tipo_usuario = $form->getValue('id_tipo_usuario');
             $adapter = $model->getAdapter();
             try {
                 $adapter->beginTransaction();
                 $model->update(array('administrador' => $admin), 'id_pessoa = ' . $id);
                 $adapter->update("encontro_participante", array('id_tipo_usuario' => $id_tipo_usuario), "id_encontro = {$idEncontro} AND id_pessoa = {$id}");
                 $adapter->commit();
                 return $this->_helper->redirector->goToRoute(array('module' => 'admin', 'controller' => 'config', 'action' => 'permissao-usuarios'), 'default', true);
             } catch (Exception $e) {
                 $this->_helper->flashMessenger->addMessage(array('danger' => 'Ocorreu um erro inesperado.<br/>Detalhes: ' . $e->getMessage()));
                 $adapter->rollBack();
             }
         } else {
             $form->populate($formData);
         }
     } else {
         $id = $this->_getParam('id', 0);
         if ($id > 0) {
             $rs = $model->buscarPermissaoUsuarios($idEncontro, $id, "id_pessoa");
             $data = $rs[0];
             $form->populate(array('admin' => $data['administrador'], 'id_tipo_usuario' => $data['id_tipo_usuario']));
             $this->view->usuario = $data['nome'];
         }
     }
 }
Ejemplo n.º 3
0
 /**
  * Mapeada como
  *    /login
  */
 public function loginAction()
 {
     $isMobile = false;
     $mobile = new Sige_Mobile_Browser();
     if ($mobile->isMobile()) {
         $this->_helper->layout->setLayout('mobile');
         $isMobile = true;
         $form = new Mobile_Form_Login();
         $this->_helper->viewRenderer('mobile-login');
     } else {
         $this->_helper->layout->setLayout('twbs3/front-page');
         $form = new Application_Form_Login();
     }
     $this->view->form = $form;
     $data = $this->getRequest()->getPost();
     if ($this->getRequest()->isPost() && $form->isValid($data)) {
         $data = $form->getValues();
         $model = new Application_Model_Pessoa();
         $resultadoConsulta = $model->avaliaLogin($data['email'], $data['senha']);
         if ($resultadoConsulta != NULL) {
             $idPessoa = $resultadoConsulta['id_pessoa'];
             $administrador = $resultadoConsulta['administrador'];
             $apelido = $resultadoConsulta['apelido'];
             $twitter = $resultadoConsulta['twitter'];
             $cadastro_validado = $resultadoConsulta['cadastro_validado'];
             if ($cadastro_validado == false) {
                 $where = $model->getAdapter()->quoteInto('id_pessoa = ?', $idPessoa);
                 $model->update(array('cadastro_validado' => true), $where);
             }
             $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', APPLICATION_ENV);
             $idEncontro = $config->encontro->codigo;
             $result = $model->buscarUltimoEncontro($idPessoa);
             $irParaEditar = false;
             // se ultimo encontro do participante for diferente do atual
             if ($model->verificaEncontro($idEncontro, $idPessoa) == false) {
                 $result['id_encontro'] = intval($idEncontro);
                 // forçar participante validado : issue #32
                 $result['validado'] = 't';
                 // true
                 $result['data_validacao'] = new Zend_Db_Expr('now()');
                 try {
                     $model->getAdapter()->insert("encontro_participante", $result);
                     $this->_helper->flashMessenger->addMessage(array('success' => _('Welcome back. Your registration was confirmed!<br/>Please update your profile data.')));
                     $irParaEditar = true;
                     $this->_enviarEmailConfirmacaoInscricao($idEncontro, $idPessoa);
                 } catch (Exception $e) {
                     $irParaEditar = false;
                     $this->_helper->flashMessenger->addMessage(array('danger' => $e->getMessage()));
                 }
             } else {
                 if (!$result['validado']) {
                     // se participante ainda não está validado no encontro
                     // devemos validar
                     $adapter = $model->getAdapter();
                     $adapter->fetchAll("UPDATE encontro_participante\n                    SET validado = 't', data_validacao = now()\n                    WHERE id_pessoa = {$result['id_pessoa']}\n                    AND id_encontro = {$idEncontro}");
                 }
             }
             $auth = Zend_Auth::getInstance();
             $storage = $auth->getStorage();
             $storage->write(array("idPessoa" => $idPessoa, "administrador" => $administrador, "apelido" => $apelido, "idEncontro" => $idEncontro, "twitter" => $twitter, "email" => $data['email']));
             if ($isMobile) {
                 return $this->_helper->redirector->goToRoute(array(), 'mobile', true);
             } else {
                 if ($irParaEditar) {
                     return $this->_helper->redirector->goToRoute(array('controller' => 'participante', 'action' => 'editar'), 'default', true);
                 } else {
                     $session = new Zend_Session_Namespace();
                     if (isset($session->url)) {
                         $this->_redirect($session->url, array('prependBase' => false));
                         unset($session->url);
                     } else {
                         return $this->_helper->redirector->goToRoute(array('controller' => 'participante', 'action' => 'index'), 'default', true);
                     }
                 }
             }
         } else {
             $this->_helper->flashMessenger->addMessage(array('danger' => _('E-mail or Password incorrect.')));
         }
     }
 }