/** * Processa a pesquisa e retorna o html com o resultado da consulta [Ajax] */ public function consultaProcessarAction() { parent::noTemplate(); $oFormConsulta = new Administrativo_Form_ProtocoloConsulta(); $oFormConsulta->populate($this->getRequest()->getParams()); /** * Valores enviados para o controller */ $aParametrosBusca = $oFormConsulta->getValues(); $oPaginatorAdapter = new DBSeller_Controller_Paginator(Administrativo_Model_Protocolo::getQuery(), 'Administrativo_Model_Protocolo', 'Administrativo\\Protocolo'); $oPaginatorAdapter->where("1 = 1"); /** * Filtro por usuário */ if (!empty($aParametrosBusca['usuario'])) { $oPaginatorAdapter->andWhere("e.usuario = {$aParametrosBusca['usuario']}"); } /** * Filtro pelo código do protocolo */ if (!empty($aParametrosBusca['protocolo'])) { $oPaginatorAdapter->andWhere("e.protocolo = '{$aParametrosBusca['protocolo']}'"); } /** * Filtra pela data inicial e final */ if (!empty($aParametrosBusca['data_processamento_inicial']) && !empty($aParametrosBusca['data_processamento_final'])) { $oPaginatorAdapter->andWhere("e.data_processamento BETWEEN '{$aParametrosBusca['data_processamento_inicial']}' AND\n '{$aParametrosBusca['data_processamento_final']}'"); } else { if (!empty($aParametrosBusca['data_processamento_inicial'])) { $oPaginatorAdapter->andWhere("e.data_processamento = '{$aParametrosBusca['data_processamento_inicial']}'"); } else { if (!empty($aParametrosBusca['data_processamento_final'])) { $oPaginatorAdapter->andWhere("e.data_processamento = '{$aParametrosBusca['data_processamento_final']}'"); } } } /** * Ordena os registros */ $oPaginatorAdapter->orderBy("e.protocolo, e.data_processamento", $aParametrosBusca['ordenacao']); /** * Monta a paginação do GridPanel */ $oResultado = new Zend_Paginator($oPaginatorAdapter); $oResultado->setItemCountPerPage(10); $oResultado->setCurrentPageNumber($this->_request->getParam('page')); /** * Valores enviados para a View */ $this->view->oFormConsulta = $oFormConsulta; $this->view->protocolos = $oResultado; /** * Valores da pesquisa */ if (is_array($aParametrosBusca)) { foreach ($aParametrosBusca as $sParametro => $sParametroValor) { if ($sParametroValor) { $sParametroValor = str_replace('/', '-', $sParametroValor); $this->view->sBusca .= "{$sParametro}/{$sParametroValor}/"; } } } }