/** * Mapeada como * /c/validar/:id * /c/invalidar/:id */ public function situacaoAction() { $this->autenticacao(); $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $id = $this->_getParam('id', 0); $validar = $this->_getParam('validar', 'f'); $cache = Zend_Registry::get('cache_common'); $ps = $cache->load('prefsis'); $idEncontro = (int) $ps->encontro["id_encontro"]; $model = new Application_Model_Caravana(); try { $select = "UPDATE caravana_encontro SET validada = ? WHERE id_caravana = ? AND id_encontro = ?"; $model->getAdapter()->fetchAll($select, array($validar, $id, $idEncontro)); $this->_helper->flashMessenger->addMessage(array('success' => 'Caravana atualizada com sucesso.')); } catch (Exception $ex) { $this->_helper->flashMessenger->addMessage(array('danger' => 'Ocorreu um erro inesperado.<br/>Detalhes: ' . $ex->getMessage())); } return $this->_helper->redirector->goToRoute(array('module' => 'admin', 'controller' => 'caravana', 'action' => 'index'), 'default', true); }
/** * TODO: criar um método só para criar e editar! * @return type */ public function editarAction() { $this->autenticacao(); $data = $this->getRequest()->getPost(); if (isset($data['cancelar'])) { return $this->_helper->redirector->goToRoute(array('controller' => 'caravana', 'action' => 'index'), null, true); } $this->_helper->viewRenderer->setRender('salvar'); $sessao = Zend_Auth::getInstance()->getIdentity(); $cache = Zend_Registry::get('cache_common'); $ps = $cache->load('prefsis'); $idEncontro = (int) $ps->encontro["id_encontro"]; $idPessoa = $sessao["idPessoa"]; $form = new Application_Form_Caravana(); $form->setAction($this->view->url(array('controller' => 'caravana', 'action' => 'editar'))); $this->view->form = $form; $caravana = new Application_Model_Caravana(); $caravana_encontro = new Application_Model_CaravanaEncontro(); $select = $caravana_encontro->select(); $rows = $caravana_encontro->fetchAll($select->where('responsavel = ?', $idPessoa)->where('id_encontro = ?', $idEncontro)); if (count($rows) == 0) { return $this->_helper->redirector->goToRoute(array('controller' => 'caravana', 'action' => 'index'), null, true); } $row = $rows[0]; $select = $caravana->select(); $dados_caravana = $caravana->find($row['id_caravana']); $dados_caravana = $dados_caravana[0]; $form->populate($dados_caravana->toArray()); if ($this->getRequest()->isPost() && $form->isValid($data)) { $data = $form->getValues(); $where = $caravana->getAdapter()->quoteInto('id_caravana = ?', $dados_caravana['id_caravana']); try { $caravana->update($data, $where); return $this->_helper->redirector->goToRoute(array('controller' => 'caravana', 'action' => 'index'), null, true); } catch (Zend_Db_Exception $ex) { // 23505 UNIQUE VIOLATION if ($ex->getCode() == 23505) { $this->_helper->flashMessenger->addMessage(array('danger' => _('A caravan with this description already exists.'))); } else { $this->_helper->flashMessenger->addMessage(array('danger' => _('An unexpected error ocurred.<br/> Details: ') . $ex->getMessage())); } } } $this->view->title = _('Edit Caravan'); }