/** * @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; }