/**
  * Consulta notas para exportar RPS
  */
 public function rpsConsultarAction()
 {
     parent::noTemplate();
     $aParametros = $this->getRequest()->getParams();
     /**
      * Verifica se foi informado mês e ano da competência
      */
     if (!empty($aParametros['mes_competencia']) && !empty($aParametros['ano_competencia'])) {
         $oContribuinte = $this->_session->contribuinte;
         $sCodigosContribuintes = implode(',', $oContribuinte->getContribuintes());
         $oPaginatorAdapter = new DBSeller_Controller_Paginator(Contribuinte_Model_Nota::getQuery(), 'Contribuinte_Model_Nota', 'Contribuinte\\Nota');
         /**
          * Monta a query de consulta
          */
         $oPaginatorAdapter->where("e.id_contribuinte in ({$sCodigosContribuintes})");
         $oPaginatorAdapter->andWhere("e.mes_comp = {$aParametros['mes_competencia']}");
         $oPaginatorAdapter->andWhere("e.ano_comp = {$aParametros['ano_competencia']}");
         if (!empty($aParametros['numero_rps'])) {
             $oPaginatorAdapter->andWhere("e.nota = {$aParametros['numero_rps']}");
         }
         $oPaginatorAdapter->orderBy('e.nota', 'DESC');
         /**
          * Monta a paginação do GridPanel
          */
         $oResultado = new Zend_Paginator($oPaginatorAdapter);
         $oResultado->setItemCountPerPage(10);
         $oResultado->setCurrentPageNumber($this->_request->getParam('page'));
         foreach ($oResultado as $oNota) {
             $oNota->oContribuinte = $oContribuinte;
             $oNota->lNaoGeraGuia = !$oNota->getEmite_guia();
             $oNota->lGuiaEmitida = Contribuinte_Model_Guia::existeGuia($oContribuinte, $oNota->getMes_comp(), $oNota->getAno_comp(), Contribuinte_Model_Guia::$DOCUMENTO_ORIGEM_NFSE);
             /**
              * Informações da nota substituta
              */
             $oNota->oNotaSubstituida = NULL;
             if ($oNota->getIdNotaSubstituida()) {
                 $oNota->oNotaSubstituida = Contribuinte_Model_Nota::getById($oNota->getIdNotaSubstituida());
             }
             /**
              * Informações da nota substituta
              */
             $oNota->oNotaSubstituta = NULL;
             if ($oNota->getIdNotaSubstituta()) {
                 $oNota->oNotaSubstituta = Contribuinte_Model_Nota::getById($oNota->getIdNotaSubstituta());
             }
         }
         /**
          * Valores da pesquisa para montar a paginação
          */
         if (is_array($aParametros)) {
             foreach ($aParametros as $sParametro => $sParametroValor) {
                 if ($sParametroValor) {
                     $sParametroValor = str_replace('/', '-', $sParametroValor);
                     $this->view->sBusca .= "{$sParametro}/{$sParametroValor}/";
                 }
             }
         }
         $this->view->oDadosNota = $oResultado;
     }
 }
 /**
  * Processa a pesquisa e retorna o html com o resultado da consulta [Ajax]
  */
 public function consultaProcessarAction()
 {
     parent::noTemplate();
     $oFormConsulta = new Contribuinte_Form_NotaConsulta();
     $oFormConsulta->populate($this->getRequest()->getParams());
     $sCodigosContribuintes = NULL;
     $oContribuinte = $this->_session->contribuinte;
     $aParametrosBusca = $oFormConsulta->getValues();
     $oPaginatorAdapter = new DBSeller_Controller_Paginator(Contribuinte_Model_Nota::getQuery(), 'Contribuinte_Model_Nota', 'Contribuinte\\Nota');
     foreach ($oContribuinte->getContribuintes() as $iIdContribuinte) {
         if ($sCodigosContribuintes == NULL) {
             $sCodigosContribuintes .= $iIdContribuinte;
         } else {
             $sCodigosContribuintes .= ',' . $iIdContribuinte;
         }
     }
     $oPaginatorAdapter->where("e.id_contribuinte in ({$sCodigosContribuintes}) ");
     if (!empty($aParametrosBusca['numero_nota'])) {
         $oPaginatorAdapter->andWhere("e.nota = '{$aParametrosBusca['numero_nota']}' ");
     }
     if (!empty($aParametrosBusca['retido'])) {
         $oPaginatorAdapter->andWhere('e.s_dados_iss_retido = 2 ');
     }
     if (!empty($aParametrosBusca['cpfcnpj'])) {
         $oPaginatorAdapter->andWhere("e.t_cnpjcpf = '{$aParametrosBusca['cpfcnpj']}'");
     }
     if (!empty($aParametrosBusca['im'])) {
         $oPaginatorAdapter->andWhere("e.im = '{$aParametrosBusca['im']}'");
     }
     if (!empty($aParametrosBusca['data_emissao_inicial']) && !empty($aParametrosBusca['data_emissao_final'])) {
         $oPaginatorAdapter->andWhere("e.dt_nota BETWEEN '{$aParametrosBusca['data_emissao_inicial']}' AND\n                        '{$aParametrosBusca['data_emissao_final']}'");
     } else {
         if (!empty($aParametrosBusca['data_emissao_inicial'])) {
             $oPaginatorAdapter->andWhere("e.dt_nota >= '{$aParametrosBusca['data_emissao_inicial']}' ");
         } else {
             if (!empty($aParametrosBusca['data_emissao_final'])) {
                 $oPaginatorAdapter->andWhere("e.dt_nota <= '{$aParametrosBusca['data_emissao_final']}' ");
             }
         }
     }
     if ($aParametrosBusca['ordenacao_campo'] == 'competencia') {
         $oPaginatorAdapter->orderBy('e.ano_comp', $aParametrosBusca['ordenacao_direcao']);
         $oPaginatorAdapter->orderBy('e.mes_comp', $aParametrosBusca['ordenacao_direcao']);
     } else {
         $oPaginatorAdapter->orderBy("e.{$aParametrosBusca['ordenacao_campo']}", $aParametrosBusca['ordenacao_direcao']);
     }
     $oResultado = new Zend_Paginator($oPaginatorAdapter);
     $oResultado->setItemCountPerPage(10);
     $oResultado->setCurrentPageNumber($this->_request->getParam('page'));
     $this->view->oFormConsulta = $oFormConsulta;
     $this->view->notas = $oResultado;
     if (is_array($aParametrosBusca)) {
         foreach ($aParametrosBusca as $sParametro => $sParametroValor) {
             if ($sParametroValor) {
                 $sParametroValor = str_replace('/', '-', $sParametroValor);
                 $this->view->sBusca .= "{$sParametro}/{$sParametroValor}/";
             }
         }
     }
 }