public function verificaCaravana($idPessoa, $idEncontro) { $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 true; } else { return false; } }
/** * 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'); }