public function devolverprojetoAction()
 {
     /** Usuario Logado ************************************************/
     $auth = Zend_Auth::getInstance();
     // instancia da autenticação
     $idusuario = $auth->getIdentity()->usu_codigo;
     /******************************************************************/
     $idpronac = $this->_request->getParam("idpronac");
     $idorgao = $this->_request->getParam("idorgao");
     $observacao = $this->_request->getParam("observacao");
     $db = Zend_Registry::get('db');
     $db->setFetchMode(Zend_DB::FETCH_OBJ);
     try {
         $db->beginTransaction();
         $tbDistribuirParecer = new tbDistribuirParecer();
         $dadosWhere["t.idPRONAC = ?"] = $idpronac;
         $dadosWhere["t.stEstado = ?"] = 0;
         $dadosWhere["t.TipoAnalise in (?)"] = array(1, 3);
         $buscaDadosProjeto = $tbDistribuirParecer->dadosParaDistribuir($dadosWhere);
         foreach ($buscaDadosProjeto as $dp) {
             $dadosE = array('idOrgao' => $dp->idOrgao, 'DtEnvio' => new Zend_Db_Expr("GETDATE()"), 'idAgenteParecerista' => null, 'DtDistribuicao' => null, 'DtDevolucao' => null, 'DtRetorno' => new Zend_Db_Expr("GETDATE()"), 'FecharAnalise' => 2, 'Observacao' => $observacao, 'idUsuario' => $idusuario, 'idPRONAC' => $dp->IdPRONAC, 'idProduto' => $dp->idProduto, 'TipoAnalise' => 3, 'stEstado' => 0, 'stPrincipal' => $dp->stPrincipal, 'stDiligenciado' => $dp->stDiligenciado);
             $where['idDistribuirParecer = ?'] = $dp->idDistribuirParecer;
             $salvar = $tbDistribuirParecer->alterar(array('stEstado' => 1), $where);
             $insere = $tbDistribuirParecer->inserir($dadosE);
         }
         $atualizaProjeto = GerenciarPareceresDAO::atualizaProjeto($idpronac, 'B11');
         $db->commit();
         parent::message("Devolvido com sucesso!", "gerenciarpareceres/index", "CONFIRM");
     } catch (Zend_Exception $ex) {
         $db->rollBack();
         parent::message($ex->getMessage(), "gerenciarpareceres/devolverparaanalise/idpronac/" . $idpronac, "ERROR");
     }
 }
 /**
  * Metodo para efetuar a retirada de pauta
  */
 public function retirarDePautaAction()
 {
     // recebe os dados via post
     $post = Zend_Registry::get('post');
     $idPronac = $post->idPronacPauta;
     $idRetirarDePauta = $post->idRetirarDePauta;
     $justificativa = $post->justificativaCoordenador;
     $tpAcao = $post->tpAcaoPauta;
     try {
         // altera o status da tabela tbRetirarDePauta
         $tbRetirarDePauta = new tbRetirarDePauta();
         $dados = array('idAgenteAnalise' => $this->idAgente, 'dtAnalise' => new Zend_Db_Expr('GETDATE()'), 'dsJustificativaAnalise' => $justificativa, 'tpAcao' => $tpAcao, 'stAtivo' => 0);
         $where = array('idRetirarDePauta = ?' => $idRetirarDePauta);
         if ($tbRetirarDePauta->alterar($dados, $where)) {
             // início devolver pra vinculada
             if ($tpAcao == 3) {
                 if ($this->bln_readequacao == "true") {
                     throw new Exception("Este Projeto encontra-se em Análise de Readequação!");
                 }
                 $arrBusca = array();
                 $arrBusca['p.IdPRONAC = ?'] = $idPronac;
                 $arrBusca['t.stPrincipal = ?'] = 1;
                 $arrBusca['t.stEstado = ?'] = 0;
                 $tbDistParecer = new tbDistribuirParecer();
                 $rsProduto = $tbDistParecer->buscarProdutos($arrBusca);
                 if (count($rsProduto) <= 0) {
                     throw new Exception("Dados n&atilde;o encontrados.");
                 } else {
                     // usuario logado
                     $auth = Zend_Auth::getInstance();
                     // instancia da autenticacao
                     $idusuario = $auth->getIdentity()->usu_codigo;
                     $idorgao = $rsProduto[0]->idOrgao;
                     try {
                         $arrBusca = array();
                         $arrBusca['p.IdPRONAC = ?'] = $idPronac;
                         $arrBusca['t.stEstado = ?'] = 0;
                         $tbDistParecer = new tbDistribuirParecer();
                         $rsProdutos = $tbDistParecer->buscarProdutos($arrBusca);
                         //VOLTANDO TODOS OS PRODUTOS
                         foreach ($rsProdutos as $produto) {
                             $rsDistParecer = $tbDistParecer->find($produto->idDistribuirParecer)->current();
                             //ALTERA REGISTROS ANTERIORES PARA SE TORNAR HISTORICO
                             $rsDistParecer->FecharAnalise = 0;
                             //informacao inserida por solicitacao do gestor para prever esta acao na Trigger de update da tabela tbDistribuirParecer
                             $rsDistParecer->stEstado = 1;
                             $rsDistParecer->save();
                             //GRAVA NOVA DISTRIBUICAO
                             $dados = array('idPRONAC' => $idPronac, 'idProduto' => $produto->idProduto, 'TipoAnalise' => $produto->TipoAnalise, 'idOrgao' => $produto->idOrgao, 'DtEnvio' => date("Y-m-d H:i:s"), 'DtDistribuicao' => null, 'DtDevolucao' => null, 'Observacao' => $justificativa, 'stEstado' => 0, 'stPrincipal' => $produto->stPrincipal, 'FecharAnalise' => 2, 'DtRetorno' => null, 'idUsuario' => $idusuario);
                             //                                            xd($dados);
                             $tbDistParecer->inserir($dados);
                         }
                         //============================================================================================//
                         //======= APAGA/ALTERA REGISTROS DESSA ANALISE REFERENTE AO COMPONENTE DA COMISSAO ============//
                         //============================================================================================//
                         //INATIVA DISTRIBUICAO FEITA PARA O COMPONENTE
                         $tblDistProjComissao = new tbDistribuicaoProjetoComissao();
                         $rsDistProjComissao = $tblDistProjComissao->buscar(array('IdPRONAC =?' => $idPronac), array('dtDistribuicao DESC'))->current();
                         if (!empty($rsDistProjComissao)) {
                             try {
                                 $where = "IdPRONAC = {$idPronac}";
                                 $tblDistProjComissao->alterar(array('stDistribuicao' => 'I'), $where);
                             } catch (Zend_Exception $ex) {
                                 parent::message("Erro ao inativar a distribui&ccedil;&atilde;o do Projeto para o Componente - " . $ex->getMessage(), "projetosgerenciar/index", "ERROR");
                             }
                         }
                         //APAGA PLANILHA APROVACAO CRIADA
                         $tblPlanilha = new PlanilhaAprovacao();
                         $arrBuscaPlanilha = array();
                         $arrBuscaPlanilha["IdPRONAC = ? "] = $idPronac;
                         $arrBuscaPlanilha["tpPlanilha = ? "] = 'CO';
                         $arrBuscaPlanilha["stAtivo = ? "] = 'S';
                         $rsPlanilha = $tblPlanilha->buscar($arrBuscaPlanilha);
                         $arrIdsPlanilha = array();
                         foreach ($rsPlanilha as $planilha) {
                             $arrIdsPlanilha[] = $planilha->idPlanilhaAprovacao;
                         }
                         if (count($arrIdsPlanilha) > 0) {
                             $where = null;
                             $where = " idPRONAC           = " . $idPronac . " and idPlanilhaAprovacao IN (" . implode(",", $arrIdsPlanilha) . ")";
                             try {
                                 $tblPlanilha->apagar($where);
                             } catch (Zend_Exception $ex) {
                                 parent::message("Erro ao apagar a planilha do Componente - " . $ex->getMessage(), "projetosgerenciar/index", "ERROR");
                             }
                         }
                         //APAGA ANALISE DO COMPONENTE
                         $tblAnalise = new AnaliseAprovacao();
                         $rsAnalise = $tblAnalise->buscar(array('IdPRONAC = ?' => $idPronac));
                         $arrIdsAnalises = array();
                         foreach ($rsAnalise as $analise) {
                             $arrIdsAnalises[] = $analise->idAnaliseAprovacao;
                         }
                         if (count($arrIdsAnalises) > 0) {
                             $where = null;
                             $where = " IdPRONAC               = " . $idPronac . " and idAnaliseAprovacao IN (" . implode(",", $arrIdsAnalises) . ")";
                             try {
                                 $tblAnalise->apagar($where);
                             } catch (Zend_Exception $ex) {
                                 parent::message("Erro ao apagar a an&aacute;lise  do Componente - " . $ex->getMessage(), "projetosgerenciar/index", "ERROR");
                             }
                         }
                         //APAGA PARECER DO COMPONENTE
                         $tblParecer = new Parecer();
                         $rsParecer = $tblParecer->buscar(array('idPRONAC = ?' => $idPronac, 'idTipoAgente = ?' => 6))->current();
                         if (!empty($rsParecer)) {
                             $idparecer = isset($rsParecer->IdParecer) ? $rsParecer->IdParecer : $rsParecer->idParecer;
                             $where = null;
                             $where = " idPRONAC      = " . $idPronac . " and idParecer = " . $idparecer;
                             try {
                                 $tblParecer->apagar($where);
                             } catch (Zend_Exception $ex) {
                                 parent::message("Erro ao excluir o parecer do Componente - " . $ex->getMessage(), "projetosgerenciar/index", "ERROR");
                             }
                         }
                         //APAGA PARECER do PARECERISTA
                         $rsParecer = array();
                         $tblParecer = new Parecer();
                         $rsParecer = $tblParecer->buscar(array('IdPRONAC =?' => $idPronac, 'idTipoAgente = ?' => 1))->current();
                         if (!empty($rsParecer)) {
                             $idparecer = isset($rsParecer->IdParecer) ? $rsParecer->IdParecer : $rsParecer->idParecer;
                             $where = null;
                             $where = " idPRONAC      = " . $idPronac . " and idParecer = " . $idparecer;
                             try {
                                 $tblParecer->apagar($where);
                             } catch (Zend_Exception $ex) {
                                 parent::message("Erro ao excluir o parecer do Parecerista - " . $ex->getMessage(), "projetosgerenciar/index", "ERROR");
                             }
                         }
                         try {
                             //ALTERA SITUACAO DO PROJETO
                             $tblProjeto = new Projetos();
                             $ProvidenciaTomada = 'Projeto devolvido para análise técnica por solicitação do Componente.';
                             $tblProjeto->alterarSituacao($idPronac, '', 'B11', $ProvidenciaTomada);
                         } catch (Zend_Exception $ex) {
                             parent::message("Erro ao alterar a situa&ccedil;&atilde;o do Projeto - " . $ex->getMessage(), "projetosgerenciar/index", "ERROR");
                         }
                         parent::message("Devolvido com sucesso!", "projetosgerenciar/index/", "CONFIRM");
                     } catch (Zend_Exception $ex) {
                         parent::message("Erro ao devolver projeto - " . $ex->getMessage(), "projetosgerenciar/index", "ERROR");
                     }
                 }
             }
             // fecha if ($tpAcao == 3)
             // fim devolver pra vinculada
             parent::message("Solicita&ccedil;&atilde;o enviada com sucesso!", "projetosgerenciar/index", "CONFIRM");
         } else {
             throw new Exception("Erro ao enviar solicita&ccedil;&atilde;o");
         }
     } catch (Exception $e) {
         parent::message($e->getMessage(), "projetosgerenciar/index", "ERROR");
     }
 }
 public function concluiuAction()
 {
     //** Usuario Logado ************************************************/
     $auth = Zend_Auth::getInstance();
     // pega a autenticação
     $idusuario = $auth->getIdentity()->usu_codigo;
     $GrupoAtivo = new Zend_Session_Namespace('GrupoAtivo');
     // cria a sessão com o grupo ativo
     $codOrgao = $GrupoAtivo->codOrgao;
     //  Órgão ativo na sessão
     /******************************************************************/
     $idDistribuirParecer = $this->_request->getParam("idDistribuirParecer");
     $idPronac = $this->_request->getParam("idpronac");
     $observacao = $this->_request->getParam("obs");
     if (strlen($observacao) < 11 or strlen($observacao) > 8000) {
         parent::message("Dados obrigatórios n&atilde;o informados.", "gerenciarparecer/concluir/idDistribuirParecer/" . $idDistribuirParecer . "/idpronac/" . $idPronac, "ALERT");
     }
     $db = Zend_Registry::get('db');
     $db->setFetchMode(Zend_DB::FETCH_OBJ);
     try {
         $db->beginTransaction();
         $tbDistribuirParecer = new tbDistribuirParecer();
         $dadosWhere["t.idDistribuirParecer = ?"] = $idDistribuirParecer;
         $buscaDadosProjeto = $tbDistribuirParecer->dadosParaDistribuir($dadosWhere);
         foreach ($buscaDadosProjeto as $dp) {
             // FECHAR ANALISE ( COORDENADOR DE PARECER )
             $orgaos = array('91', '92', '93', '94', '95', '160', '171', '335');
             // Caso não esteja dentro do array
             if (!in_array($dp->idOrgao, $orgaos)) {
                 $idOrgao = 91;
                 $fecharAnalise = 0;
             } else {
                 $idOrgao = $dp->idOrgao;
                 $fecharAnalise = 1;
             }
             $dados = array('DtEnvio' => $dp->DtEnvio, 'idAgenteParecerista' => $dp->idAgenteParecerista, 'DtDistribuicao' => $dp->DtDistribuicao, 'DtDevolucao' => $dp->DtDevolucao, 'DtRetorno' => new Zend_Db_Expr("GETDATE()"), 'Observacao' => $observacao, 'idUsuario' => $idusuario, 'FecharAnalise' => $fecharAnalise, 'idOrgao' => $idOrgao, 'idPRONAC' => $dp->IdPRONAC, 'idProduto' => $dp->idProduto, 'TipoAnalise' => $dp->TipoAnalise, 'stEstado' => 0, 'stPrincipal' => $dp->stPrincipal, 'stDiligenciado' => null);
             $whereD['idDistribuirParecer = ?'] = $idDistribuirParecer;
             $salvar = $tbDistribuirParecer->alterar(array('stEstado' => 1), $whereD);
             $insere = $tbDistribuirParecer->inserir($dados);
         }
         /** Grava o Parecer nas Tabelas tbPlanilhaProjeto e Parecer e altera a situação do Projeto para  ***************/
         $projeto = new Projetos();
         $wherePro['IdPRONAC = ?'] = $idPronac;
         $buscaDadosdoProjeto = $projeto->buscar($wherePro);
         if ($buscaDadosProjeto[0]->stPrincipal == 1) {
             $inabilitadoDAO = new Inabilitado();
             $buscaInabilitado = $inabilitadoDAO->BuscarInabilitado($buscaDadosdoProjeto[0]->CgcCpf, $buscaDadosdoProjeto[0]->AnoProjeto, $buscaDadosdoProjeto[0]->Sequencial);
             if (count($buscaInabilitado == 0)) {
                 if (in_array($dp->idOrgao, array(91, 92, 93, 94, 95, 160, 171, 335))) {
                     $dadosProjeto = array('ProvidenciaTomada' => 'Análise técnica concluída', 'DtSituacao' => new Zend_Db_Expr('GETDATE()'), 'Situacao' => 'C20');
                 } else {
                     $dadosProjeto = array('ProvidenciaTomada' => 'Análise técnica concluída', 'DtSituacao' => new Zend_Db_Expr('GETDATE()'));
                 }
             } else {
                 $dadosProjeto = array('ProvidenciaTomada' => 'Projeto fora da pauta de reunião da CNIC porque o proponente está inabilitado no Ministério da Cultura.', 'DtSituacao' => new Zend_Db_Expr('GETDATE()'), 'Situacao' => 'C09');
             }
             $where['IdPRONAC = ?'] = $idPronac;
             $alterar = $projeto->alterarProjetos($dadosProjeto, $where);
             /****************************************************************************************************************/
             $parecerDAO = new Parecer();
             $whereParecer['idPRONAC = ?'] = $idPronac;
             $buscarParecer = $parecerDAO->buscar($whereParecer);
             $analiseDeConteudoDAO = new Analisedeconteudo();
             $whereADC['idPRONAC = ?'] = $idPronac;
             $dadosADC = array('idParecer' => $buscarParecer[0]->IdParecer);
             $alteraADC = $analiseDeConteudoDAO->alterar($dadosADC, $whereADC);
             $planilhaProjetoDAO = new PlanilhaProjeto();
             $wherePP['idPRONAC = ?'] = $idPronac;
             $dadosPP = array('idParecer' => $buscarParecer[0]->IdParecer);
             $alteraPP = $planilhaProjetoDAO->alterar($dadosPP, $wherePP);
             /****************************************************************************************************************/
         }
         $db->commit();
         parent::message("Concluído com sucesso!", "gerenciarparecer/listaprojetos?tipoFiltro=2", "CONFIRM");
     } catch (Zend_Exception $ex) {
         $db->rollBack();
         parent::message("Erro ao concluir " . $ex->getMessage(), "gerenciarparecer/concluir/idDistribuirParecer/" . $idDistribuirParecer, "ERROR");
     }
 }