/**
  * 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;
     }
 }
 /**
  * Action responsável por listar as contas
  */
 public function listarContasAction()
 {
     parent::noTemplate();
     $aRecord = array();
     $iLimit = $this->_request->getParam('rows');
     $iPage = $this->_request->getParam('page');
     $sSord = $this->_request->getParam('sord');
     /**
      * Valores enviados para o controller
      */
     $aParametrosBusca = $this->_request->getParam('form');
     $oPaginatorAdapter = new DBSeller_Controller_Paginator(Contribuinte_Model_PlanoContaAbrasf::getQuery(), 'Contribuinte_Model_PlanoContaAbrasf', 'Contribuinte\\PlanoContaAbrasf');
     $oPaginatorAdapter->where("1 = 1");
     /**
      * Filtro pela conta abrasf
      */
     if (!empty($aParametrosBusca['conta_abrasf'])) {
         $oPaginatorAdapter->andWhere("e.conta_abrasf = '{$aParametrosBusca['conta_abrasf']}'");
     }
     /**
      * Filtro pela tributação
      */
     if (!empty($aParametrosBusca['tributavel'])) {
         $oPaginatorAdapter->andWhere("e.tributavel = '{$aParametrosBusca['tributavel']}'");
     }
     /**
      * Filtro pela obrigatoriedade
      */
     if (!empty($aParametrosBusca['obrigatorio'])) {
         $oPaginatorAdapter->andWhere("e.obrigatorio = '{$aParametrosBusca['obrigatorio']}'");
     }
     /**
      * Ordena os registros
      */
     $oPaginatorAdapter->orderBy("e.id, e.conta_abrasf", $sSord);
     /**
      * Monta a paginação do GridPanel
      */
     $oResultado = new Zend_Paginator($oPaginatorAdapter);
     $oResultado->setItemCountPerPage($iLimit);
     $oResultado->setCurrentPageNumber($iPage);
     $iTotal = $oResultado->getTotalItemCount();
     $iTotalPages = $iTotal > 0 && $iLimit > 0 ? ceil($iTotal / $iLimit) : 0;
     foreach ($oResultado as $oPlanoContaAbrasf) {
         $oDadosColuna = new StdClass();
         $oDadosColuna->id = $oPlanoContaAbrasf->getId();
         $oDadosColuna->conta_abrasf = $oPlanoContaAbrasf->getContaAbrasf();
         $oDadosColuna->titulo_contabil_desc = $oPlanoContaAbrasf->getTituloContabilDesc();
         $oDadosColuna->tributavel = $oPlanoContaAbrasf->getTributavel();
         $oDadosColuna->obrigatorio = $oPlanoContaAbrasf->getObrigatorio();
         $aRecord[] = $oDadosColuna;
     }
     /**
      * Parametros de retorno do AJAX
      */
     $aRetornoJson = array('total' => $iTotalPages, 'page' => $iPage, 'records' => $iTotal, 'rows' => $aRecord);
     echo $this->getHelper('json')->sendJson($aRetornoJson);
 }
 /**
  * Tela inicial
  */
 public function indexAction()
 {
     $sBusca = $this->getRequest()->getParam('busca');
     $oPaginatorAdapter = new DBSeller_Controller_Paginator(Administrativo_Model_Usuario::getQuery(), 'Administrativo_Model_Usuario', 'Administrativo\\Usuario');
     $sWhere = ' 1 = 1 ';
     if ($sBusca != '') {
         $sBuscaLower = mb_strtolower($sBusca, 'UTF-8');
         $sWhere .= " AND ( ";
         $sWhere .= "   LOWER(e.nome)  LIKE '%{$sBuscaLower}%' OR ";
         $sWhere .= "   LOWER(e.login) LIKE '%{$sBuscaLower}%' OR ";
         $sWhere .= "   LOWER(e.email) LIKE '%{$sBuscaLower}%'  ";
         $sWhere .= " ) ";
     }
     $oUsuario = $this->view->user;
     // Se usuario nao for administrador
     if (!$oUsuario->getAdministrativo()) {
         // Se não for do tipo Fiscal e com perfil de Fiscal ou Tomador
         if ($oUsuario->getTipo() != 3 && !in_array($this->view->user->getPerfil()->getId(), array(4, 5))) {
             $sWhere .= " AND e.cnpj = '{$this->view->user->getCnpj()}'";
         } else {
             if ($this->view->user->getPerfil()->getId() == 4) {
                 // Se não for usuário de perfil Tomador
                 $sWhere .= " AND e.id = '{$this->view->user->getId()}'";
             } else {
                 // Se for usuário de perfil Fiscal
                 $sWhere .= " AND (e.administrativo IS NULL OR e.administrativo = false)";
             }
         }
     }
     $oPaginatorAdapter->where($sWhere);
     $oUsuarios = new Zend_Paginator($oPaginatorAdapter);
     $oUsuarios->setItemCountPerPage(10);
     $oUsuarios->setCurrentPageNumber($this->getRequest()->getParam('page'));
     $this->view->usuarios = $oUsuarios;
     $this->view->formBusca = $this->formBusca($sBusca);
     $this->view->busca = $this->getRequest()->getParam('busca');
 }
 /**
  * Método para retornar os dados das contas em formato json para a DBJqGrid
  *
  * @param array $aParametros
  * @param bool  $bDetalhes
  * @return array
  */
 protected function retornaContasGuiaDesif(array $aParametros, $bDetalhes = FALSE)
 {
     $aRecord = array();
     $iLimit = $aParametros['rows'];
     $iPage = $aParametros['page'];
     $sSord = $aParametros['sord'];
     $oContribuinte = $this->_session->contribuinte;
     $sCodigosContribuintes = NULL;
     $oPaginatorAdapter = new DBSeller_Controller_Paginator(Contribuinte_Model_ImportacaoDesif::getQuery(), 'Contribuinte_Model_ImportacaoDesif', 'Contribuinte\\ImportacaoDesif');
     foreach ($oContribuinte->getContribuintes() as $iIdContribuinte) {
         if ($sCodigosContribuintes == NULL) {
             $sCodigosContribuintes .= $iIdContribuinte;
         } else {
             $sCodigosContribuintes .= ',' . $iIdContribuinte;
         }
     }
     $oPaginatorAdapter->where("e.contribuinte in ({$sCodigosContribuintes})");
     if (isset($aParametros['id'])) {
         $oPaginatorAdapter->andWhere("e.id = {$aParametros['id']}");
     }
     $oPaginatorAdapter->orderBy("e.competencia_inicial, e.competencia_final", $sSord);
     /**
      * Monta a paginação do GridPanel
      */
     $oResultado = new Zend_Paginator($oPaginatorAdapter);
     $oResultado->setItemCountPerPage($iLimit);
     $oResultado->setCurrentPageNumber($iPage);
     foreach ($oResultado as $oDesif) {
         $aValores = Contribuinte_Model_ImportacaoDesif::getTotalReceitasGuia($oDesif->getId(), $bDetalhes);
         /**
          * Verifica se for para exibir as aliquotas detalhadas
          */
         if ($bDetalhes) {
             foreach ($aValores['aliquotas_issqn'] as $iAliqIssqn => $aReceitas) {
                 $aRecord[] = array('id_importacao_desif' => $oDesif->getId(), 'aliq_issqn' => DBSeller_Helper_Number_Format::toFloat($iAliqIssqn), 'total_receita' => DBSeller_Helper_Number_Format::toMoney($aReceitas['total_receita'], 2, 'R$ '), 'total_iss' => DBSeller_Helper_Number_Format::toMoney($aReceitas['total_iss'], 2, 'R$ '));
             }
         } else {
             if ($aValores['total_receita'] > 0 && $aValores['total_iss'] > 0) {
                 $aRecord[] = array('id' => $oDesif->getId(), 'competencia_inicial' => $oDesif->getCompetenciaInicial(), 'competencia_final' => $oDesif->getCompetenciaFinal(), 'total_receita' => DBSeller_Helper_Number_Format::toMoney($aValores['total_receita'], 2, 'R$ '), 'total_iss' => DBSeller_Helper_Number_Format::toMoney($aValores['total_iss'], 2, 'R$ '), 'aValores' => $aValores);
             }
         }
     }
     $iTotal = $oResultado->getTotalItemCount();
     $iTotalPages = $iTotal > 0 && $iLimit > 0 ? ceil($iTotal / $iLimit) : 0;
     /**
      * Parametros de retorno do AJAX
      */
     $aRetornoJson = array('total' => $iTotalPages, 'page' => $iPage, 'records' => $iTotal, 'rows' => $aRecord);
     return $aRetornoJson;
 }
 /**
  * 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}/";
             }
         }
     }
 }
 /**
  * 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}/";
             }
         }
     }
 }