/**
  * @todo verificar o uso do input filter a nivel de plugin para remover do controller o uso do registro
  * @todo refatorar modularizando
  */
 public function coordenadorgeralprestacaocontasAction()
 {
     $post = Zend_Registry::get('post');
     $bln_envioufiltro = 'false';
     $this->view->parametroPesquisado = 'OUTRAS SITUAÇÕES';
     // cria a sessão com o grupo ativo
     $GrupoAtivo = new Zend_Session_Namespace('GrupoAtivo');
     $this->view->Grupo = $GrupoAtivo->codGrupo;
     $db = Zend_Registry::get('db');
     $db->setFetchMode(Zend_DB::FETCH_OBJ);
     //manteM os parametros de pesquisa enviados da tela anterior para ser capturado pelo ajax na hora de abrir o painel
     $this->view->parametrosBuscaPrestacaoContas = $_POST;
     $this->view->bln_pronacValido = "true";
     $tblProjeto = new Projetos();
     $tblSituacao = new Situacao();
     $situacoes = array("E17", "E18", "E19", "E20", "E22", "E23", "E24", "E25", "E27", "E30", "E46", "L03", "L04", "L05", "L06", "L07", "E68", "G18", "G20", "G21", "G22", "G24", "G43", "G47", "L07", "G19", "G25", "G43", "G47");
     $rsSituacao = $tblSituacao->buscar(array("Codigo IN (?)" => $situacoes));
     //se pesquisou pela SITUACAO do projeto
     if (isset($post->situacao) && !empty($post->situacao)) {
         $descricaoSituacao = $tblSituacao->buscar(array("Codigo = ?" => $post->situacao))->current();
     }
     if (isset($descricaoSituacao) && !empty($descricaoSituacao)) {
         $this->view->parametroPesquisado = $descricaoSituacao->Codigo . ' - ' . $descricaoSituacao->Descricao;
     }
     //se pesquisou pelo PRONAC
     if (isset($post->pronac) && !empty($post->pronac)) {
         $rsProjeto = $tblProjeto->buscar(array("AnoProjeto+Sequencial = ?" => $post->pronac))->current();
         if (empty($rsProjeto)) {
             $this->view->bln_pronacValido = "false";
         }
     }
     if (isset($rsProjeto) && !empty($rsProjeto)) {
         $this->view->parametroPesquisado = 'PRONAC: ' . $post->pronac . ' - ' . $rsProjeto->NomeProjeto;
     }
     //IF - RECUPERA ORGAOS PARA POPULAR COMBO AO ENCAMINHAR PROJETO
     if (isset($_POST['verifica']) and $_POST['verifica'] == 'a') {
         $idOrgaoDestino = $_POST['idorgao'];
         // desabilita o Zend_Layout
         $this->_helper->layout->disableLayout();
         $tblProjetos = new Projetos();
         $AgentesOrgao = $tblProjetos->buscarComboOrgaos($idOrgaoDestino);
         $a = 0;
         if (count($AgentesOrgao) > 0) {
             foreach ($AgentesOrgao as $agentes) {
                 $dadosAgente[$a]['usu_codigo'] = $agentes->usu_codigo;
                 $dadosAgente[$a]['usu_nome'] = utf8_encode($agentes->usu_nome);
                 $dadosAgente[$a]['Perfil'] = utf8_encode($agentes->gru_nome);
                 $dadosAgente[$a]['idperfil'] = $agentes->gru_codigo;
                 $dadosAgente[$a]['idAgente'] = utf8_encode($agentes->idAgente);
                 $a++;
             }
             $jsonEncode = json_encode($dadosAgente);
             //echo $jsonEncode;
             echo json_encode(array('resposta' => true, 'conteudo' => $dadosAgente));
         } else {
             echo json_encode(array('resposta' => false));
         }
         die;
     }
     //IF - BUSCA NOMES DOS TECNICOS QUANDO ENVIA O ORGAO PARA ENCAMINHAR PROJETO
     if (isset($_POST['verifica2']) and $_POST['verifica2'] == 'x') {
         $idagente = $_POST['idagente'];
         if ($idagente != '') {
             $this->_helper->layout->disableLayout();
             // desabilita o Zend_Layout
             $AgentesPerfil = ReadequacaoProjetos::dadosAgentesPerfil($idagente);
             $AgentesPerfil = $db->fetchAll($AgentesPerfil);
             $idperfil = $AgentesPerfil[0]->idVerificacao;
             echo $idperfil;
         } else {
             echo "";
         }
         die;
     }
     $sqllistasDeEntidadesVinculadas = ReadequacaoProjetos::retornaSQLlista("listasDeEntidadesVinculadas", NULL);
     $listaEntidades = $db->fetchAll($sqllistasDeEntidadesVinculadas);
     $this->view->listaEntidades = $listaEntidades;
     /*=====================================================*/
     /*============== TOTAL AGUARDANDO ANALISE =============*/
     /*=====================================================*/
     $bln_dadosDiligencia = false;
     //MONTA ARRAY BUSCA COM PARAMETROS COINCIDENTES PARA TODOS OS GRIDS DO COORD.
     $arrBusca = $this->montaArrBuscaCoincidentes($post);
     //NOME PROJETO
     if (!empty($post->NomeProjeto)) {
         $projeto = $post->NomeProjeto;
         if ($post->tipoPesqNomeProjeto == 'QC') {
             if (!empty($post->NomeProjeto)) {
                 $arrBusca["p.NomeProjeto like (?)"] = "%{$projeto}%";
             }
         } else {
             if ($post->tipoPesqNomeProjeto == 'EIG') {
                 if (!empty($post->NomeProjeto)) {
                     $arrBusca["p.NomeProjeto = ?"] = "{$projeto}";
                 }
             } else {
                 if ($post->tipoPesqNomeProjeto == 'IIG') {
                     if (!empty($post->NomeProjeto)) {
                         $arrBusca["p.NomeProjeto like (?)"] = "{$projeto}%";
                     }
                 }
             }
         }
         //if(!empty($post->NomeProjeto)){ $arrBusca["p.NomeProjeto like (?)"] = "%{$projeto}%"; }
     }
     $arrBusca['p.Situacao in (?)'] = $this->arrSituacoesAguardandoAnalise;
     //DILIGENCIA
     if (!empty($post->diligencia)) {
         if ($post->diligencia == "abertas") {
             $arrBusca["EXISTS(SELECT TOP 1 * FROM SAC.dbo.tbDiligencia d where d.idPronac = p.idPronac AND d.DtSolicitacao IS NOT NULL AND d.DtResposta IS NULL AND idTipoDiligencia = '174')"] = '(?)';
         } elseif ($post->diligencia == "respondidas") {
             $arrBusca["EXISTS(SELECT TOP 1 * FROM SAC.dbo.tbDiligencia d where d.idPronac = p.idPronac AND d.DtSolicitacao IS NOT NULL AND d.DtResposta IS NOT NULL AND stEnviado = 'S' AND idTipoDiligencia = '174')"] = '(?)';
         }
         $bln_dadosDiligencia = true;
     }
     $total = 0;
     $tblProjetos = new Projetos();
     //$total = $tbl->buscarProjetosVotoAlterado($arrBusca, array(), null, null, true);
     $total = $tblProjetos->buscarProjetosPrestacaoContas($arrBusca, array(), null, null, true, false, $bln_dadosDiligencia);
     $this->view->totalAguardandoAnalise = $total;
     if (isset($post->tpPeriodoExecucao) && !empty($post->tpPeriodoExecucao) || !empty($post->pronac) || !empty($post->NomeProjeto) || !empty($post->uf) || !empty($post->mecanismo) || !empty($post->situacao) || !empty($post->diligencia)) {
         $bln_envioufiltro = 'true';
     }
     $this->view->bln_envioufiltro = $bln_envioufiltro;
     /*=====================================================*/
     /*============= TOTAL DEVOLVIDOS APOS ANALISE =========*/
     /*=====================================================*/
     //MONTA ARRAY BUSCA COM PARAMETROS COINCIDENTES PARA TODOS OS GRIDS DO COORD.
     $arrBusca = $this->montaArrBuscaCoincidentes($post);
     //NOME PROJETO
     if (!empty($post->NomeProjeto)) {
         $projeto = $post->NomeProjeto;
         if ($post->tipoPesqNomeProjeto == 'QC') {
             if (!empty($post->NomeProjeto)) {
                 $arrBusca["p.NomeProjeto like (?)"] = "%{$projeto}%";
             }
         } else {
             if ($post->tipoPesqNomeProjeto == 'EIG') {
                 if (!empty($post->NomeProjeto)) {
                     $arrBusca["p.NomeProjeto = ?"] = "{$projeto}";
                 }
             } else {
                 if ($post->tipoPesqNomeProjeto == 'IIG') {
                     if (!empty($post->NomeProjeto)) {
                         $arrBusca["p.NomeProjeto like (?)"] = "{$projeto}%";
                     }
                 }
             }
         }
     }
     //SITUACAO
     $arrBusca['p.Situacao in (?)'] = $this->arrSituacoesDevolvidosAposAnalise;
     if (isset($post->situacao) && !empty($post->situacao) && $post->situacao != 'E18') {
         $arrBusca["NOT EXISTS(SELECT TOP 1 * FROM BDCORPORATIVO.scSAC.tbEncaminhamentoPrestacaoContas where idOrgaoDestino in ('177','12')and stAtivo=1)"] = '(?)';
         //eliminando projetos que estao em consultoria
     }
     //DILIGENCIA
     if (!empty($post->diligencia)) {
         if ($post->diligencia == "abertas") {
             $arrBusca["EXISTS(SELECT TOP 1 * FROM SAC.dbo.tbDiligencia d where d.idPronac = p.idPronac AND d.DtSolicitacao IS NOT NULL AND d.DtResposta IS NULL AND idTipoDiligencia = '174')"] = '(?)';
         } elseif ($post->diligencia == "respondidas") {
             $arrBusca["EXISTS(SELECT TOP 1 * FROM SAC.dbo.tbDiligencia d where d.idPronac = p.idPronac AND d.DtSolicitacao IS NOT NULL AND d.DtResposta IS NOT NULL AND stEnviado = 'S' AND idTipoDiligencia = '174')"] = '(?)';
         }
     }
     //CONDICOES DE DEVOLVIDO APOS ANALISE
     $arrBusca['e.idSituacaoEncPrestContas in (?)'] = array('1', '2');
     //Status Aguardando analise OU Em analise
     $arrBusca['e.cdGruposDestino IN (?)'] = array('125', '126');
     //grupo de coordenador de prestacao de contas
     $arrBusca['e.cdGruposOrigem = ?'] = array('132');
     //grupo do chefe de divisao
     $arrBusca['e.stAtivo = ?'] = 1;
     $total = 0;
     $tblProjetos = new Projetos();
     $total = $tblProjetos->buscarProjetosPrestacaoContas($arrBusca, array(), null, null, true, true, true);
     $this->view->totalDevolvidosAposAnalise = $total;
     /*=====================================================*/
     /*============= TOTAL DILIGENCIADOS ===================*/
     /*=====================================================*/
     //MONTA ARRAY BUSCA COM PARAMETROS COINCIDENTES PARA TODOS OS GRIDS DO COORD.
     $arrBusca = $this->montaArrBuscaCoincidentes($post);
     //NOME PROJETO
     if (!empty($post->NomeProjeto)) {
         $projeto = $post->NomeProjeto;
         if ($post->tipoPesqNomeProjeto == 'QC') {
             if (!empty($post->NomeProjeto)) {
                 $arrBusca["p.NomeProjeto like (?)"] = "%{$projeto}%";
             }
         } else {
             if ($post->tipoPesqNomeProjeto == 'EIG') {
                 if (!empty($post->NomeProjeto)) {
                     $arrBusca["p.NomeProjeto = ?"] = "{$projeto}";
                 }
             } else {
                 if ($post->tipoPesqNomeProjeto == 'IIG') {
                     if (!empty($post->NomeProjeto)) {
                         $arrBusca["p.NomeProjeto like (?)"] = "{$projeto}%";
                     }
                 }
             }
         }
     }
     //SITUACAO
     $arrBusca['p.Situacao in (?)'] = $this->arrSituacoesDiligenciados;
     if (isset($post->situacao) && !empty($post->situacao) && $post->situacao != 'E17') {
         $arrBusca["NOT EXISTS(SELECT TOP 1 * FROM BDCORPORATIVO.scSAC.tbEncaminhamentoPrestacaoContas where idOrgaoDestino in ('177','12')and stAtivo=1)"] = '(?)';
         //eliminando projetos que estao em consultoria
     }
     //DILIGENCIA
     if (!empty($post->diligencia)) {
         if ($post->diligencia == "abertas") {
             $arrBusca["EXISTS(SELECT TOP 1 * FROM SAC.dbo.tbDiligencia d where d.idPronac = p.idPronac AND d.DtSolicitacao IS NOT NULL AND d.DtResposta IS NULL AND idTipoDiligencia = '174')"] = '(?)';
         } elseif ($post->diligencia == "respondidas") {
             $arrBusca["EXISTS(SELECT TOP 1 * FROM SAC.dbo.tbDiligencia d where d.idPronac = p.idPronac AND d.DtSolicitacao IS NOT NULL AND d.DtResposta IS NOT NULL AND stEnviado = 'S' AND idTipoDiligencia = '174')"] = '(?)';
         }
     }
     //CONDICOES DE PARA ESTAR COM O COORD. DE PRESTACAO DE CONTAS
     $arrBusca['e.idSituacaoEncPrestContas in (?)'] = array('1', '2');
     //Status Aguardando analise OU Em analise
     $arrBusca['e.cdGruposDestino IN (?)'] = array('125', '126');
     //grupo de coordenador de prestacao de contas
     $arrBusca['e.cdGruposOrigem = ?'] = array('132');
     //grupo do chefe de divisao
     $arrBusca['e.stAtivo = ?'] = 1;
     $arrBusca['d.DtSolicitacao = (SELECT top 1 d2.DtSolicitacao FROM SAC..tbDiligencia d2 WHERE d2.idPronac = d.idPronac ORDER BY d2.DtSolicitacao DESC)'] = '(?)';
     //seleciona a ultima diligencia realizada
     $arrBusca['d.idTipoDiligencia = ?'] = 174;
     //Diligencia na Prestacao de contas
     $total = 0;
     $tblProjetos = new Projetos();
     $total = $tblProjetos->buscaProjetoDiligenciadosPrestacaoContas($arrBusca, array(), null, null, true);
     $this->view->totalDiligenciados = $total;
     /*=====================================================*/
     /*============= TOTAL PROJETOS TCE ====================*/
     /*=====================================================*/
     //MONTA ARRAY BUSCA COM PARAMETROS COINCIDENTES PARA TODOS OS GRIDS DO COORD.
     $arrBusca = $this->montaArrBuscaCoincidentes($post);
     //NOME PROJETO
     if (!empty($post->NomeProjeto)) {
         $projeto = $post->NomeProjeto;
         if ($post->tipoPesqNomeProjeto == 'QC') {
             if (!empty($post->NomeProjeto)) {
                 $arrBusca["p.NomeProjeto like (?)"] = "%{$projeto}%";
             }
         } else {
             if ($post->tipoPesqNomeProjeto == 'EIG') {
                 if (!empty($post->NomeProjeto)) {
                     $arrBusca["p.NomeProjeto = ?"] = "{$projeto}";
                 }
             } else {
                 if ($post->tipoPesqNomeProjeto == 'IIG') {
                     if (!empty($post->NomeProjeto)) {
                         $arrBusca["p.NomeProjeto like (?)"] = "{$projeto}%";
                     }
                 }
             }
         }
     }
     $arrBusca['p.Situacao in (?)'] = $this->arrSituacoesTCE;
     if (isset($post->situacao) && !empty($post->situacao)) {
         $arrBusca["NOT EXISTS(SELECT TOP 1 * FROM BDCORPORATIVO.scSAC.tbEncaminhamentoPrestacaoContas where idOrgaoDestino in ('177','12')and stAtivo=1)"] = '(?)';
         //eliminando projetos que estao em consultoria
     }
     //DILIGENCIA
     if (!empty($post->diligencia)) {
         if ($post->diligencia == "abertas") {
             $arrBusca["EXISTS(SELECT TOP 1 * FROM SAC.dbo.tbDiligencia d where d.idPronac = p.idPronac AND d.DtSolicitacao IS NOT NULL AND d.DtResposta IS NULL AND idTipoDiligencia = '174')"] = '(?)';
         } elseif ($post->diligencia == "respondidas") {
             $arrBusca["EXISTS(SELECT TOP 1 * FROM SAC.dbo.tbDiligencia d where d.idPronac = p.idPronac AND d.DtSolicitacao IS NOT NULL AND d.DtResposta IS NOT NULL AND stEnviado = 'S' AND idTipoDiligencia = '174')"] = '(?)';
         }
     }
     //CONDICOES DE PARA ESTAR COM O COORD. DE PRESTACAO DE CONTAS
     $arrBusca['e.idSituacaoEncPrestContas in (?)'] = array('1', '2');
     //Status Aguardando analise, e Em analise
     $arrBusca['e.cdGruposDestino IN (?)'] = array('125', '126');
     //grupo de coordenador de prestacao de contas
     $arrBusca['e.cdGruposOrigem = ?'] = array('132');
     //grupo do chefe de divisao
     $arrBusca['e.stAtivo = ?'] = 1;
     $total = 0;
     $tblProjetos = new Projetos();
     $total = $tblProjetos->buscarProjetosPrestacaoContas($arrBusca, array(), null, null, true, true);
     $this->view->totalProjetosTCE = $total;
     /*=====================================================*/
     /*============== OUTRAS SITUACOES =====================*/
     /*=====================================================*/
     $bln_encaminhamento = false;
     $bln_dadosDiligencia = false;
     //MONTA ARRAY BUSCA COM PARAMETROS COINCIDENTES PARA TODOS OS GRIDS DO COORD.
     $arrBusca = $this->montaArrBuscaCoincidentes($post);
     //NOME PROJETO
     if (!empty($post->NomeProjeto)) {
         $projeto = $post->NomeProjeto;
         if ($post->tipoPesqNomeProjeto == 'QC') {
             if (!empty($post->NomeProjeto)) {
                 $arrBusca["p.NomeProjeto like (?)"] = "%{$projeto}%";
             }
         } else {
             if ($post->tipoPesqNomeProjeto == 'EIG') {
                 if (!empty($post->NomeProjeto)) {
                     $arrBusca["p.NomeProjeto = ?"] = "{$projeto}";
                 }
             } else {
                 if ($post->tipoPesqNomeProjeto == 'IIG') {
                     if (!empty($post->NomeProjeto)) {
                         $arrBusca["p.NomeProjeto like (?)"] = "{$projeto}%";
                     }
                 }
             }
         }
     }
     //PRONAC
     if (!empty($post->pronac)) {
         $arrBusca["p.AnoProjeto + p.Sequencial = ?"] = trim($post->pronac);
         $arrBusca["p.Situacao IN (?) "] = $this->arrSituacoesDePrestacaoContas;
     }
     //SITUACAO
     if (isset($post->situacao) && !empty($post->situacao)) {
         $arrBusca = $this->incluiRegrasGridsPrincipais($arrBusca, $post);
         $arrBusca["p.Situacao = ? "] = $post->situacao;
         if (in_array($post->situacao, $this->arrSituacoesDevolvidosAposAnalise) || in_array($post->situacao, $this->arrSituacoesDiligenciados) || in_array($post->situacao, $this->arrSituacoesTCE)) {
             $bln_encaminhamento = true;
         }
         if (in_array($post->situacao, $this->arrSituacoesDiligenciados)) {
             $bln_dadosDiligencia = true;
         }
     } else {
         //deve fazer este filtro apenas se nao for enviado o PRONAC na pesquisa
         if (empty($post->pronac)) {
             $situacoesDePrestacaoContasMenosGrid = implode('\',\'', $this->arrSituacoesDePrestacaoContasMenosGrid);
             $situacoesDePrestacaoContasMenosGrid = "'" . $situacoesDePrestacaoContasMenosGrid . "'";
             $arrBusca["p.Situacao IN ({$situacoesDePrestacaoContasMenosGrid}) "] = '(?)';
         }
     }
     $total = 0;
     $tblProjetos = new Projetos();
     $total = $tblProjetos->buscarProjetosPrestacaoContas($arrBusca, array(), null, null, true, $bln_encaminhamento, $bln_dadosDiligencia, true);
     $this->view->totalProjetosOS = $total;
 }