/**
  * Método para buscar o nível do Projeto
  *
  * @access public
  * @static
  * @param int $idPronac
  * @return array
  */
 public static function nivelProjeto($idPronac)
 {
     $dados = array('NvNumero' => 1, 'NvRomano' => 'I', 'VrPagamentoParecerista' => 122.0);
     $projetosDAO = new tbDistribuirParecer();
     $PlanilhaDAO = new PlanilhaProjeto();
     $total = $PlanilhaDAO->valorTotalDoProjeto($idPronac);
     $areas = $projetosDAO->BuscarQtdAreasProjetos($idPronac);
     $totalAreas = $areas->QDTArea;
     $valorTotal = str_replace(",", ".", $total->valorTotal);
     if ($valorTotal <= 100000.0 and $totalAreas <= 2) {
         $dados = array('NvNumero' => 1, 'NvRomano' => 'I', 'VrPagamentoParecerista' => 122.0);
     } else {
         if ($valorTotal >= 100000.0 and $valorTotal <= 300000.0 and $totalAreas > 2) {
             $dados = array('NvNumero' => 2, 'NvRomano' => 'II', 'VrPagamentoParecerista' => 370.0);
         } else {
             if ($valorTotal >= 300000.0 and $valorTotal <= 10000000.0) {
                 $dados = array('NvNumero' => 3, 'NvRomano' => 'III', 'VrPagamentoParecerista' => 661.0);
             } else {
                 if ($valorTotal > 10000000.0) {
                     $dados = array('NvNumero' => 4, 'NvRomano' => 'IV', 'VrPagamentoParecerista' => 1183.0);
                 } else {
                     if ($valorTotal > 50000000.0) {
                         $dados = array('NvNumero' => 5, 'NvRomano' => 'V', 'VrPagamentoParecerista' => 1649.0);
                     }
                 }
             }
         }
     }
     return $dados;
 }
 /**
  * Método para verificar o status da diligencia do projeto
  * @access public
  * @param integer $idPronac
  * @param integer $idProduto
  * @param array $idTipoDiligencia
  * @return string
  */
 public function checarDiligencia($idPronac = null, $idProduto = null, $idTipoDiligencia = array())
 {
     if (isset($idPronac) && !empty($idPronac)) {
         // objetos
         $tbDiligencia = new tbDiligencia();
         $tbDistribuirParecer = new tbDistribuirParecer();
         // busca a diligência
         $where = array('idPronac = ?' => $idPronac);
         $order = array('DtSolicitacao DESC');
         // filtra pelo id do produto
         if (!empty($idProduto)) {
             $where = array_merge($where, array('idProduto = ?' => $idProduto));
         }
         // filtra por tipos de diligências
         if (count($idTipoDiligencia) > 0) {
             $where = array_merge($where, array('idTipoDiligencia IN (?)' => $idTipoDiligencia));
         }
         $buscarDiligencia = $tbDiligencia->buscar($where, $order);
         // busca o parecer distribuido
         $whereParecer = array('idPRONAC = ?' => $idPronac, 'DtDistribuicao ?' => new Zend_Db_Expr('IS NOT NULL'), 'DtDevolucao ?' => new Zend_Db_Expr('IS NULL'), 'stEstado = ?' => 0, 'TipoAnalise = ?' => 3);
         $buscarParecer = $tbDistribuirParecer->buscar($whereParecer);
         if (count($buscarDiligencia) > 0) {
             $DtSolicitacao = $buscarDiligencia[0]->DtSolicitacao;
             $DtResposta = $buscarDiligencia[0]->DtResposta;
             $stEnviado = trim($buscarDiligencia[0]->stEnviado);
             $buscarTmpFimDiligencia = $tbDiligencia->buscar(array('idPronac = ?' => $idPronac, 'stProrrogacao = ?' => 'N'), array('DtSolicitacao DESC'));
             if (count($buscarTmpFimDiligencia) > 0) {
                 $TmpFimDiligencia = 20;
             } else {
                 $TmpFimDiligencia = 40;
             }
             if (count($buscarParecer) > 0) {
                 $DtDistribuicao = $buscarParecer[0]->{$DtDistribuicao};
             } else {
                 $DtDistribuicao = null;
             }
         } else {
             $DtSolicitacao = null;
             $DtResposta = null;
             $TmpFimDiligencia = null;
             $DtDistribuicao = null;
             $stEnviado = null;
         }
         $TmpDtDistribuicao = !empty($DtDistribuicao) ? round(Data::CompararDatas($DtDistribuicao)) : 0;
         if ($DtSolicitacao != null && $TmpDtDistribuicao > $TmpFimDiligencia) {
             return 3;
             // Diligência não respondida
         } elseif ($DtSolicitacao != null && $DtResposta != null) {
             return 2;
             // Diligência respondida
         } elseif ($DtSolicitacao != null && $DtResposta == null && $stEnviado == 'S') {
             return 1;
             // Diligenciado
         } else {
             return 0;
             // A diligenciar
         }
     } else {
         return 0;
         // A diligenciar
     }
 }
 /**
  * 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 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");
     }
 }
 public function carregarhistoricoAction()
 {
     $this->view->perfilAtual = self::$perfilAtual;
     //	    	xd($_GET);
     $Pronac = $_GET['Pronac'];
     $idPronac = $_GET['idPronac'];
     $projeto = new ProjetoDAO();
     $dadosProjeto = $projeto->buscar($Pronac);
     $this->view->PRONAC = $dadosProjeto[0]->pronac;
     $this->view->nomeProjeto = $dadosProjeto[0]->NomeProjeto;
     $buscaHistorico = new tbDistribuirParecer();
     $historico = $buscaHistorico->buscarHistoricoDeAnalise($idPronac, self::$codOrgao);
     $this->view->Historico = $historico;
     //	    	xd($this->view->Historico);
 }
 private function gerarInfoPaginas($tipo, $where = array(), $paginacao = 0)
 {
     $post = Zend_Registry::get('post');
     $retorno = array();
     $ProjetosDAO = new Projetos();
     $distribuirParecerDAO = new tbDistribuirParecer();
     switch ($tipo) {
         case 'resaguardandoparecer':
             if ($paginacao > 0) {
                 $total = $distribuirParecerDAO->aguardandoparecerTotal($where)->current()->toArray();
                 $limit = $this->paginacao($total["total"], $paginacao);
                 $resp = $distribuirParecerDAO->aguardandoparecer($where, $limit['tamanho'], $limit['inicio']);
             } else {
                 $resp = $distribuirParecerDAO->aguardandoparecer($where);
             }
             $cDistribuicao = 0;
             foreach ($resp as $val) {
                 $retorno[$val['idOrgao']]['nmOrgao'] = $val['nmOrgao'];
                 $retorno[$val['idOrgao']]['pareceristas'][$val['idAgente']]['nmParecerista'] = $val['nmParecerista'];
                 $retorno[$val['idOrgao']]['pareceristas'][$val['idAgente']]['projetos'][$val['IdPRONAC']]['idPronac'] = $val['IdPRONAC'];
                 $retorno[$val['idOrgao']]['pareceristas'][$val['idAgente']]['projetos'][$val['IdPRONAC']]['pronac'] = $val['pronac'];
                 $retorno[$val['idOrgao']]['pareceristas'][$val['idAgente']]['projetos'][$val['IdPRONAC']]['nmProjeto'] = $val['NomeProjeto'];
                 $retorno[$val['idOrgao']]['pareceristas'][$val['idAgente']]['projetos'][$val['IdPRONAC']]['Produtos'][$val['idProduto']]['nmProduto'] = $val['nmProduto'];
                 $retorno[$val['idOrgao']]['pareceristas'][$val['idAgente']]['projetos'][$val['IdPRONAC']]['Produtos'][$val['idProduto']]['distribuicao'][$cDistribuicao]['dtEnvio'] = date('d/m/Y', strtotime($val['DtEnvio']));
                 $retorno[$val['idOrgao']]['pareceristas'][$val['idAgente']]['projetos'][$val['IdPRONAC']]['Produtos'][$val['idProduto']]['distribuicao'][$cDistribuicao]['dtDistribuicao'] = date('d/m/Y', strtotime($val['DtDistribuicao']));
                 $retorno[$val['idOrgao']]['pareceristas'][$val['idAgente']]['projetos'][$val['IdPRONAC']]['Produtos'][$val['idProduto']]['distribuicao'][$cDistribuicao]['qtDias'] = $val['nrDias'];
                 $cDistribuicao++;
             }
             break;
         case 'resumo':
             $resp = $distribuirParecerDAO->aguardandoparecerresumo($where);
             $orgAnt = '';
             foreach ($resp as $val) {
                 if ($orgAnt == '' || $orgAnt != $val['idOrgao']) {
                     $retorno[$val['idOrgao']]['qt'] = 0;
                     $orgAnt = $val['idOrgao'];
                 }
                 $retorno[$val['idOrgao']]['nmOrgao'] = $val['nmOrgao'];
                 $retorno[$val['idOrgao']]['qt'] += $val['qt'];
                 $retorno[$val['idOrgao']]['pareceristas'][$val['idAgente']]['nmParecerista'] = $val['nmParecerista'];
                 $retorno[$val['idOrgao']]['pareceristas'][$val['idAgente']]['qt'] = $val['qt'];
             }
             break;
         case 'pareceremitido':
             if ($paginacao > 0) {
                 $total = $ProjetosDAO->listaPareceremitidoTotal()->current()->toArray();
                 $limit = $this->paginacao($total["total"], $paginacao);
                 $resp = $ProjetosDAO->listaPareceremitido($limit['tamanho'], $limit['inicio']);
             } else {
                 $resp = $ProjetosDAO->listaPareceremitido();
             }
             foreach ($resp as $val) {
                 $retorno[$val['IdPRONAC']]['idPronac'] = $val['IdPRONAC'];
                 $retorno[$val['IdPRONAC']]['pronac'] = $val['pronac'];
                 $retorno[$val['IdPRONAC']]['nmProjeto'] = $val['NomeProjeto'];
                 $retorno[$val['IdPRONAC']]['nmOrgao'] = $val['OrgaoOrigem'];
                 $retorno[$val['IdPRONAC']]['dtEnvio'] = date('d/m/Y', strtotime($val['DtEnvio']));
                 $retorno[$val['IdPRONAC']]['dtRetorno'] = date('d/m/Y', strtotime($val['DtRetorno']));
                 $retorno[$val['IdPRONAC']]['qtDias'] = $val['Dias'];
                 $retorno[$val['IdPRONAC']]['qtDiasConsolidado'] = $val['QtdeConsolidar'];
                 $retorno[$val['IdPRONAC']]['dtConsolidacao'] = $val['DtConsolidacaoParecer'];
                 $retorno[$val['IdPRONAC']]['stParecer'] = 'Emitido';
                 $resp2 = $distribuirParecerDAO->pareceremitido($val['pronac']);
                 foreach ($resp2 as $val2) {
                     $retorno[$val['IdPRONAC']]['Orgaos'][$val2['idOrgao']]['nmOrgao'] = $val2['Sigla'];
                     $retorno[$val['IdPRONAC']]['Orgaos'][$val2['idOrgao']]['Produtos'][$val2['idProduto']]['nmProduto'] = $val2['Produto'];
                     if ($val2['stPrincipal']) {
                         $retorno[$val['IdPRONAC']]['Orgaos'][$val2['idOrgao']]['Produtos'][$val2['idProduto']]['prodPrincipal'] = 'sim';
                     } else {
                         $retorno[$val['IdPRONAC']]['Orgaos'][$val2['idOrgao']]['Produtos'][$val2['idProduto']]['prodPrincipal'] = '';
                     }
                     $retorno[$val['IdPRONAC']]['Orgaos'][$val2['idOrgao']]['Produtos'][$val2['idProduto']]['dtFechamento'] = date('d/m/Y', strtotime($val2['DtDevolucao']));
                     $retorno[$val['IdPRONAC']]['Orgaos'][$val2['idOrgao']]['Produtos'][$val2['idProduto']]['area'] = $val2['Area'];
                     $retorno[$val['IdPRONAC']]['Orgaos'][$val2['idOrgao']]['Produtos'][$val2['idProduto']]['segmento'] = $val2['Segmento'];
                 }
             }
             break;
         case 'parecerconsolidado':
             if ($paginacao > 0) {
                 $total = $ProjetosDAO->listaParecerconsolidadoTotal()->current()->toArray();
                 $limit = $this->paginacao($total["total"], $paginacao);
                 $resp = $ProjetosDAO->listaParecerconsolidado($limit['tamanho'], $limit['inicio']);
             } else {
                 $resp = $ProjetosDAO->listaParecerconsolidado();
             }
             foreach ($resp as $val) {
                 $retorno[$val['IdPRONAC']]['idPronac'] = $val['IdPRONAC'];
                 $retorno[$val['IdPRONAC']]['pronac'] = $val['pronac'];
                 $retorno[$val['IdPRONAC']]['nmProjeto'] = $val['NomeProjeto'];
                 $retorno[$val['IdPRONAC']]['nmOrgao'] = $val['OrgaoOrigem'];
                 $retorno[$val['IdPRONAC']]['dtEnvio'] = date('d/m/Y', strtotime($val['DtEnvio']));
                 $retorno[$val['IdPRONAC']]['dtRetorno'] = date('d/m/Y', strtotime($val['DtRetorno']));
                 $retorno[$val['IdPRONAC']]['qtDiasRetorno'] = date('d/m/Y', strtotime($val['DtConsolidacaoParecer']));
                 $retorno[$val['IdPRONAC']]['dtConsolidacao'] = $val['Dias'];
                 $retorno[$val['IdPRONAC']]['qtDiasConsolidado'] = $val['QtdeConsolidar'];
                 $retorno[$val['IdPRONAC']]['stParecer'] = 'Consolidado';
                 $resp2 = $distribuirParecerDAO->parecerconsolidado($val['pronac']);
                 foreach ($resp2 as $val2) {
                     $retorno[$val['IdPRONAC']]['Orgaos'][$val2['idOrgao']]['nmOrgao'] = $val2['Sigla'];
                     $retorno[$val['IdPRONAC']]['Orgaos'][$val2['idOrgao']]['Produtos'][$val2['idProduto']]['nmProduto'] = $val2['Produto'];
                     if ($val2['stPrincipal']) {
                         $retorno[$val['IdPRONAC']]['Orgaos'][$val2['idOrgao']]['Produtos'][$val2['idProduto']]['prodPrincipal'] = 'sim';
                     } else {
                         $retorno[$val['IdPRONAC']]['Orgaos'][$val2['idOrgao']]['Produtos'][$val2['idProduto']]['prodPrincipal'] = '';
                     }
                     $retorno[$val['IdPRONAC']]['Orgaos'][$val2['idOrgao']]['Produtos'][$val2['idProduto']]['dtFechamento'] = date('d/m/Y', strtotime($val2['DtDevolucao']));
                     $retorno[$val['IdPRONAC']]['Orgaos'][$val2['idOrgao']]['Produtos'][$val2['idProduto']]['area'] = $val2['Area'];
                     $retorno[$val['IdPRONAC']]['Orgaos'][$val2['idOrgao']]['Produtos'][$val2['idProduto']]['segmento'] = $val2['Segmento'];
                 }
             }
             break;
         case 'resgeraldeanalise':
             $this->view->titulo = array('PRONAC', 'Nome do Projeto', 'Produto', 'Dt. Primeiro Envio para Vinculada', 'Dt. &Uacute;ltimo Envio para Vinculada', 'Dt. Distribui&ccedil;&atilde;o para Parecerista', 'Parecerista', 'Qtde Dias Para Distribuir', 'Qtde Dias na caixa do Parecerista', 'Total de dias gastos para An&aacute;lise', 'Dt. Devolu&ccedil;&atilde;o do Parecerista para o Coordenador', 'Qtde Dias para  Parecerista Analisar', 'Qtde Dias Aguardando Avalia&ccedil;&atilde;o do Coordenador', 'Status da Dilig&ecirc;ncia', '&Oacute;rg&atilde;o', 'Periodo de Execu&ccedil;&atilde;o do Projeto', 'Dias Vencidos ou a Vencer para Execu&ccedil;&atilde;o do Projeto');
             if ($paginacao > 0) {
                 $total = $ProjetosDAO->geraldeanaliseTotal($where)->current()->toArray();
                 $limit = $this->paginacao($total["total"], $paginacao);
                 $resp = $ProjetosDAO->geraldeanalise($where, $limit['tamanho'], $limit['inicio']);
             } else {
                 $resp = $ProjetosDAO->geraldeanalise($where);
             }
             foreach ($resp as $key => $val) {
                 $retorno[$key]['pronac'] = $val['PRONAC'];
                 $retorno[$key]['idpronac'] = $val['IdPRONAC'];
                 $retorno[$key]['nmProjeto'] = $val['NomeProjeto'];
                 $retorno[$key]['Produtos'][$val['idProduto']]['nmProduto'] = $val['Produto'];
                 $retorno[$key]['Produtos'][$val['idProduto']]['dtPriEnvVinc'] = $val['DtPrimeiroEnvio'];
                 $retorno[$key]['Produtos'][$val['idProduto']]['dtUltEnvVinc'] = $val['DtUltimoEnvio'];
                 $retorno[$key]['Produtos'][$val['idProduto']]['dtDistPar'] = $val['DtDistribuicao'];
                 $retorno[$key]['Produtos'][$val['idProduto']]['nmParecerista'] = $val['Parecerista'];
                 $retorno[$key]['Produtos'][$val['idProduto']]['qtDiasDist'] = $val['QtdeDiasParaDistribuir'];
                 $retorno[$key]['Produtos'][$val['idProduto']]['qtDiasCaixaPar'] = $val['QtdeDiasComParecerista'];
                 $retorno[$key]['Produtos'][$val['idProduto']]['tDiasAnal'] = $val['QtdeTotalDiasAnalisar'];
                 $retorno[$key]['Produtos'][$val['idProduto']]['dtDevParCoo'] = $val['dtDevolucao'];
                 $retorno[$key]['Produtos'][$val['idProduto']]['qtDiasParAnal'] = $val['QtdeDiasPareceristaAnalisar'];
                 $retorno[$key]['Produtos'][$val['idProduto']]['qtDiasAguarAval'] = $val['QtdeDiasDevolvidosCoordenador'];
                 $retorno[$key]['Produtos'][$val['idProduto']]['stDiligencia'] = $this->estadoDiligencia($val);
                 $retorno[$key]['Produtos'][$val['idProduto']]['nmOrgao'] = $val['nmOrgao'];
                 $retorno[$key]['Produtos'][$val['idProduto']]['perExecProj'] = $val['PeriodoExecucao'];
                 $retorno[$key]['Produtos'][$val['idProduto']]['qtDiasVencExecProj'] = $val['QtdeDiasVencido'];
             }
             break;
         case 'resconsolidacaoparecerista':
             $zerado = false;
             $resp = $distribuirParecerDAO->analisePorParecerista($where);
             if ($resp->count() > 0) {
                 foreach ($resp as $val) {
                     if (!empty($post->stAnalise)) {
                         if ($post->stAnalise == 1) {
                             if ($val->DtSolicitacao && $val->DtResposta == NULL) {
                                 $retorno = $this->dadosResconsolidacaoparecerista($val, $retorno);
                             }
                         }
                         if ($post->stAnalise == 2) {
                             if ($val->DtSolicitacao && $val->DtResposta != NULL) {
                                 $retorno = $this->dadosResconsolidacaoparecerista($val, $retorno);
                             }
                         }
                         if ($post->stAnalise == 3) {
                             if ($val->DtSolicitacao && round(data::CompararDatas($val->DtDistribuicao)) > $val->tempoFimDiligencia) {
                                 $retorno = $this->dadosResconsolidacaoparecerista($val, $retorno);
                             }
                         }
                         if ($post->stAnalise == 0) {
                             if (!($val->DtSolicitacao && round(data::CompararDatas($val->DtDistribuicao)) > $val->tempoFimDiligencia) and !($val->DtSolicitacao && $val->DtResposta == NULL)) {
                                 $retorno = $this->dadosResconsolidacaoparecerista($val, $retorno);
                             }
                         }
                     } else {
                         $retorno = $this->dadosResconsolidacaoparecerista($val, $retorno);
                     }
                 }
                 if (count($retorno) > 0) {
                     $cProduto = 0;
                     $contaProjetos = 0;
                     $cDistribuicao = 0;
                     foreach ($retorno['projetos'] as $projeto) {
                         $contaProjetos++;
                         $cProduto += count($projeto['produtos']);
                         foreach ($projeto['produtos'] as $produto) {
                             $cDistribuicao += count($produto['distribuicao']);
                         }
                     }
                     $retorno['qtAnalise'] = $cDistribuicao;
                 } else {
                     $zerado = true;
                 }
             } else {
                 $zerado = true;
             }
             if ($zerado) {
                 $agentesDAO = new Agentes();
                 $tela = 'resconsolidacaoparecerista2';
                 $where = $this->filtroGeral($tela);
                 $val = $agentesDAO->dadosParecerista($where);
                 $retorno = $this->dadosParecerista($val, $retorno);
                 $retorno['qtAnalise'] = 0;
             }
             break;
     }
     return $retorno;
 }
 public function consultarmensagemAction()
 {
     $idpronac = $this->_request->getParam('idpronac');
     $GrupoAtivo = new Zend_Session_Namespace('GrupoAtivo');
     // cria a sessão com o grupo ativo
     $grupologado = $GrupoAtivo->codGrupo;
     $usuario = new Usuario();
     $auth = Zend_Auth::getInstance();
     // pega a autenticação
     $Agente = $usuario->getIdUsuario($auth->getIdentity()->usu_codigo);
     $usu_codigo = $auth->getIdentity()->usu_codigo;
     $idAgente = $Agente['idAgente'];
     $mensagemprojeto = new Mensagemprojeto();
     $projetos = new Projetos();
     //$idpronac = $this->_request->getParam('idpronac');
     $GrupoAtivo = new Zend_Session_Namespace('GrupoAtivo');
     // cria a sessão com o grupo ativo
     $grupologado = $GrupoAtivo->codGrupo;
     $dadosWhereMensagemPrj = array('IdPRONAC = ?' => $idpronac, 'idDestinatario = ?' => $Agente['idAgente']);
     $mensagem = $mensagemprojeto->buscarMensagemProjeto($dadosWhereMensagemPrj);
     foreach ($mensagem as $resu) {
         if ($Agente['idAgente'] == $resu->idDestinatario) {
             $dados = array('stAtivo' => '0');
             $where = "idMensagemProjeto = " . $resu->idMensagemProjeto;
             $mensagemprojeto->alterarMensagemProjeto($dados, $where);
         }
     }
     $dadosProjeto = $projetos->buscar(array('idpronac = ?' => $idpronac))->current()->toArray();
     $orgaoorigem = $dadosProjeto['OrgaoOrigem'];
     //        $this->view->mensagens = isset($mensagem) ? $mensagem : false;
     //        $this->view->dadosProjeto = $dadosProjeto;
     //        $this->view->idpronac = $idpronac;
     $usuariosorgao = new Usuariosorgaosgrupos();
     //*************************** NOVO *****************************************************
     $num = 0;
     /* Perfil de Coordenador e Técnico de Adminissibilidade  */
     $movimentacaoDAO = new Movimentacao();
     $atores = $movimentacaoDAO->buscarTecCoordAdmissibilidade($idpronac, $usu_codigo);
     foreach ($atores as $ator) {
         $encaminha[$num]['idAgente'] = $ator->idAgente;
         $encaminha[$num]['nome'] = $ator->Nome;
         $encaminha[$num]['TipoUsuario'] = $ator->Perfil;
         $num++;
     }
     /* Fim Perfil de Coordenador e Técnico de Adminissibilidade  */
     /* Perfil de Coordenador de Parecerista / Parecerista  */
     $DistribuirParecerDAO = new tbDistribuirParecer();
     /*$where = array(
           //'gru.gru_codigo = ?' => 94,
           'dp.idPRONAC = ? ' => $idpronac
           //'usu.usu_codigo <> ? ' => $usu_codigo
       );*/
     $atores = $DistribuirParecerDAO->buscarPareceristaCoordParecer($idpronac);
     $prepara = array();
     foreach ($atores as $ator) {
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['idAgente'] = $ator->idAgente;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['nome'] = $ator->Nome;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['perfil'] = $ator->cdPerfil;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['orgao'] = $ator->Orgao;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['TipoUsuario'] = $ator->Perfil;
     }
     /*$where = array(
           'gru2.gru_codigo = ?' => 93,
           'dp.idPRONAC = ? ' => $idpronac
           //'usu.usu_codigo <> ? ' => $usu_codigo
       );
       $atores = $DistribuirParecerDAO->buscarPareceristaCoordParecer($where);
       foreach ($atores as $ator) {
           $prepara[$ator->Orgao2][$ator->cdPerfil2][$ator->idAgente2]['idAgente'] = $ator->idAgente2;
           $prepara[$ator->Orgao2][$ator->cdPerfil2][$ator->idAgente2]['nome'] = $ator->Nome2;
           $prepara[$ator->Orgao2][$ator->cdPerfil2][$ator->idAgente2]['perfil'] = $ator->cdPerfil2;
           $prepara[$ator->Orgao2][$ator->cdPerfil2][$ator->idAgente2]['orgao'] = $ator->Orgao2;
           $prepara[$ator->Orgao2][$ator->cdPerfil2][$ator->idAgente2]['TipoUsuario'] = $ator->Perfil2;
       }*/
     foreach ($prepara as $orgao) {
         foreach ($orgao as $perfil) {
             foreach ($perfil as $Agente) {
                 $encaminha[$num]['idAgente'] = $Agente['idAgente'];
                 $encaminha[$num]['nome'] = $Agente['nome'];
                 $encaminha[$num]['perfil'] = $Agente['perfil'];
                 $encaminha[$num]['orgao'] = $Agente['orgao'];
                 $encaminha[$num]['TipoUsuario'] = $Agente['TipoUsuario'];
                 $num++;
             }
         }
     }
     /* FIM Perfil de Coordenador de Parecerista / Parecerista  */
     /* Perfil de componente da comissão  */
     $tbTitulacaoConselheiroDAO = new tbTitulacaoConselheiro();
     $sql = $tbTitulacaoConselheiroDAO->buscarTitulacao(true);
     $tbDistribuicaoProjetoComissaoDAO = new tbDistribuicaoProjetoComissao();
     $atores = $tbDistribuicaoProjetoComissaoDAO->buscarComponente($idpronac, $usu_codigo);
     foreach ($atores as $ator) {
         $encaminha[$num]['idAgente'] = $ator->idAgente;
         $encaminha[$num]['nome'] = $ator->Nome;
         $encaminha[$num]['TipoUsuario'] = $ator->Perfil;
         $encaminha[$num]['Area'] = $ator->Area;
         $encaminha[$num]['perfil'] = '118';
         $num++;
     }
     /* FIM Perfil de componente da comissão  */
     /* Perfil de Acompanhamento Readequaç?o */
     $tbPedidoAlteracaoProjetoDAO = new tbPedidoAlteracaoProjeto();
     $atores = $tbPedidoAlteracaoProjetoDAO->buscarAtoresReadequacao($idpronac, $usu_codigo);
     $prepara = array();
     foreach ($atores as $ator) {
         $prepara[$ator->cdPerfil][$ator->idAgente]['idAgente'] = $ator->idAgente;
         $prepara[$ator->cdPerfil][$ator->idAgente]['nome'] = $ator->Nome;
         $prepara[$ator->cdPerfil][$ator->idAgente]['TipoUsuario'] = $ator->Perfil;
         $prepara[$ator->cdPerfil][$ator->idAgente]['perfil'] = $ator->cdPerfil;
         $prepara[$ator->cdPerfil][$ator->idAgente]['orgao'] = $ator->Orgao;
         if ($ator->idAgente2 != 0) {
             $prepara[$ator->cdPerfil2][$ator->idAgente2]['idAgente'] = $ator->idAgente2;
             $prepara[$ator->cdPerfil2][$ator->idAgente2]['nome'] = $ator->Nome2;
             $prepara[$ator->cdPerfil2][$ator->idAgente2]['TipoUsuario'] = $ator->Perfil2;
             $prepara[$ator->cdPerfil2][$ator->idAgente]['perfil'] = $ator->cdPerfil2;
             $prepara[$ator->cdPerfil2][$ator->idAgente2]['orgao'] = $ator->Orgao;
         }
         $prepara[$ator->cdPerfil3][$ator->idAgente3]['idAgente'] = $ator->idAgente3;
         $prepara[$ator->cdPerfil3][$ator->idAgente3]['nome'] = $ator->Nome3;
         $prepara[$ator->cdPerfil3][$ator->idAgente3]['TipoUsuario'] = $ator->Perfil3;
         $prepara[$ator->cdPerfil3][$ator->idAgente]['perfil'] = $ator->cdPerfil3;
         $prepara[$ator->cdPerfil3][$ator->idAgente3]['orgao'] = $ator->Orgao;
     }
     foreach ($prepara as $perfil) {
         foreach ($perfil as $agente) {
             $encaminha[$num]['idAgente'] = $agente['idAgente'];
             $encaminha[$num]['nome'] = $agente['nome'];
             $encaminha[$num]['perfil'] = $agente['perfil'];
             $encaminha[$num]['orgao'] = $agente['orgao'];
             $encaminha[$num]['TipoUsuario'] = $agente['TipoUsuario'];
             $num++;
         }
     }
     /* FIM Perfil de Acompanhamento Readequaç?o  */
     /* Perfil de Acompanhamento Avaliaç?o */
     $tbParecerConsolidadoDAO = new tbParecerConsolidado();
     $atores = $tbParecerConsolidadoDAO->buscarAtoresCoordenadorAvaliacao($idpronac, $usu_codigo);
     $prepara = array();
     foreach ($atores as $ator) {
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['idAgente'] = $ator->idAgente;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['nome'] = $ator->Nome;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['perfil'] = $ator->cdPerfil;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['orgao'] = $ator->Orgao;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['TipoUsuario'] = $ator->Perfil;
     }
     $tbRelatorioDAO = new tbRelatorio();
     $atores = $tbRelatorioDAO->buscarTecnicoAcompanhamento($idpronac, $usu_codigo);
     //$prepara = array();
     foreach ($atores as $ator) {
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['idAgente'] = $ator->idAgente;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['nome'] = $ator->Nome;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['perfil'] = $ator->cdPerfil;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['orgao'] = $ator->Orgao;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['TipoUsuario'] = $ator->Perfil;
     }
     foreach ($prepara as $orgao) {
         foreach ($orgao as $perfil) {
             foreach ($perfil as $Agente) {
                 $encaminha[$num]['idAgente'] = $Agente['idAgente'];
                 $encaminha[$num]['nome'] = $Agente['nome'];
                 $encaminha[$num]['perfil'] = $Agente['perfil'];
                 $encaminha[$num]['orgao'] = $Agente['orgao'];
                 $encaminha[$num]['TipoUsuario'] = $Agente['TipoUsuario'];
                 $num++;
             }
         }
     }
     /* FIM Perfil de Acompanhamento Avaliaç?o */
     /* Perfil de Acompanhamento Fiscalizacao */
     $tbFiscalizacaoDAO = new tbFiscalizacao();
     $atores = $tbFiscalizacaoDAO->buscarAtoresFiscalizacao($idpronac, $usu_codigo);
     $prepara = array();
     foreach ($atores as $ator) {
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['idAgente'] = $ator->idAgente;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['nome'] = $ator->Nome;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['perfil'] = $ator->cdPerfil;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['orgao'] = $ator->Orgao;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['TipoUsuario'] = $ator->Perfil;
         $prepara[$ator->Orgao2][$ator->cdPerfil2][$ator->idAgente2]['idAgente'] = $ator->idAgente2;
         $prepara[$ator->Orgao2][$ator->cdPerfil2][$ator->idAgente2]['nome'] = $ator->Nome2;
         $prepara[$ator->Orgao2][$ator->cdPerfil2][$ator->idAgente2]['perfil'] = $ator->cdPerfil2;
         $prepara[$ator->Orgao2][$ator->cdPerfil2][$ator->idAgente2]['orgao'] = $ator->Orgao2;
         $prepara[$ator->Orgao2][$ator->cdPerfil2][$ator->idAgente2]['TipoUsuario'] = $ator->Perfil2;
     }
     foreach ($prepara as $orgao) {
         foreach ($orgao as $perfil) {
             foreach ($perfil as $Agente) {
                 $encaminha[$num]['idAgente'] = $Agente['idAgente'];
                 $encaminha[$num]['nome'] = $Agente['nome'];
                 $encaminha[$num]['perfil'] = $Agente['perfil'];
                 $encaminha[$num]['orgao'] = $Agente['orgao'];
                 $encaminha[$num]['TipoUsuario'] = $Agente['TipoUsuario'];
                 $num++;
             }
         }
     }
     /* FIM Perfil de Acompanhamento Fiscalizacao */
     /* Perfil de Modulo Prestaç?o de Contas */
     $tbEncaminhamentoPrestacaoContasDAO = new tbEncaminhamentoPrestacaoContas();
     $atores = $tbEncaminhamentoPrestacaoContasDAO->buscarAtoresPrestacaoContas($idpronac, $usu_codigo);
     $prepara = array();
     foreach ($atores as $ator) {
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['idAgente'] = $ator->idAgente;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['nome'] = $ator->Nome;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['perfil'] = $ator->cdPerfil;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['orgao'] = $ator->Orgao;
         $prepara[$ator->Orgao][$ator->cdPerfil][$ator->idAgente]['TipoUsuario'] = $ator->Perfil;
         $prepara[$ator->Orgao2][$ator->cdPerfil2][$ator->idAgente2]['idAgente'] = $ator->idAgente2;
         $prepara[$ator->Orgao2][$ator->cdPerfil2][$ator->idAgente2]['nome'] = $ator->Nome2;
         $prepara[$ator->Orgao2][$ator->cdPerfil2][$ator->idAgente2]['perfil'] = $ator->cdPerfil2;
         $prepara[$ator->Orgao2][$ator->cdPerfil2][$ator->idAgente2]['orgao'] = $ator->Orgao2;
         $prepara[$ator->Orgao2][$ator->cdPerfil2][$ator->idAgente2]['TipoUsuario'] = $ator->Perfil2;
     }
     foreach ($prepara as $orgao) {
         foreach ($orgao as $perfil) {
             foreach ($perfil as $Agente) {
                 $encaminha[$num]['idAgente'] = $Agente['idAgente'];
                 $encaminha[$num]['nome'] = $Agente['nome'];
                 $encaminha[$num]['perfil'] = $Agente['perfil'];
                 $encaminha[$num]['orgao'] = $Agente['orgao'];
                 $encaminha[$num]['TipoUsuario'] = $Agente['TipoUsuario'];
                 $num++;
             }
         }
     }
     /* FIM Perfil de Modulo Prestaç?o de Contas */
     $dadosWhereMensagemPrj = array('IdPRONAC = ?' => $idpronac);
     $mensagem = $mensagemprojeto->buscarMensagemProjeto($dadosWhereMensagemPrj);
     foreach ($mensagem as $resu) {
         if ($idAgente == $resu->idDestinatario) {
             $dados = array('stAtivo' => '0');
             $where = "idMensagemProjeto = " . $resu->idMensagemProjeto;
             $mensagemprojeto->alterarMensagemProjeto($dados, $where);
         }
     }
     $arquivo = getcwd() . '/public/mensagem/mensagem-destinatario-' . $idAgente . '.txt';
     if (file_exists($arquivo)) {
         $read = fopen($arquivo, 'r');
         if ($read) {
             $i = 0;
             $valores = array();
             while (($buffer = fgets($read, 4096)) !== false) {
                 $ler[] = json_decode($buffer, true);
                 $i++;
             }
             $chave = TratarArray::multi_array_search($idpronac, $ler);
             $quebra = chr(13) . chr(10);
             // Quebra de linha no TXT
             if (is_array($chave)) {
                 foreach ($chave as $chavesachadas) {
                     if ($ler[$chavesachadas]['status'] != 'L') {
                         $ler[$chavesachadas]['status'] = 'L';
                         fclose($read);
                         unlink($arquivo);
                         if (count($ler) > 0) {
                             $fp = fopen($arquivo, "a+");
                             foreach ($ler as $gravar) {
                                 fwrite($fp, json_encode($gravar) . $quebra);
                             }
                             fclose($fp);
                         }
                     }
                     $valorperfil['idmensagemprojeto'][$ler[$chavesachadas]['idmensagemprojeto']]['remetente'] = $ler[$chavesachadas]['perfilRemetente'];
                     $valorperfil['idmensagemprojeto'][$ler[$chavesachadas]['idmensagemprojeto']]['destinatario'] = $ler[$chavesachadas]['perfilDestinatario'];
                 }
             }
             //                xd($valorperfil);
             @($this->view->mensagemperfil = $valorperfil);
         }
     }
     $dadosProjeto = $projetos->buscar(array('idpronac = ?' => $idpronac))->current()->toArray();
     $this->view->mensagens = isset($mensagem) ? $mensagem : false;
     $this->view->dadosProjeto = $dadosProjeto;
     $this->view->idpronac = $idpronac;
     $this->view->agentelogado = $idAgente;
     $this->view->logado = $grupologado;
     if (!empty($encaminha)) {
         $this->view->BuscarSelect = $encaminha;
     } else {
         $this->view->BuscarSelect = "";
     }
 }
 public function gerarmemorandoAction()
 {
     $dataAtual = date("Y-m-d h:i:s");
     $idProduto = $this->_request->getParam('confirmPagamento');
     $valor = $this->_request->getParam('valorPagamento');
     $idAgente = $this->_request->getParam('idAgente');
     $idComprovantePagamento = $this->_request->getParam('idComprovantePagamento');
     $idPagamentoParecerista = $this->_request->getParam('idPagamentoParecerista');
     // Dados do memorando!
     $nrMemorando = $this->_request->getParam("nrMemorando");
     $nmCoordenador = $this->_request->getParam("nmCoordenador");
     $cargoCoordenador = $this->_request->getParam("cargoCoordenador");
     $nmSecretario = $this->_request->getParam("nmSecretario");
     $cargoSecretario = $this->_request->getParam("cargoSecretario");
     $this->view->nrMemorando = $nrMemorando;
     $this->view->nmCoordenador = $nmCoordenador;
     $this->view->cargoCoordenador = $cargoCoordenador;
     $this->view->nmSecretario = $nmSecretario;
     $this->view->cargoSecretario = $cargoSecretario;
     if (empty($idAgente)) {
         parent::message("Dados obrigatórios n&atilde;o informados.", "gerenciarparecer/enviarpagamento", "ALERT");
     }
     /*** Validacao data pagamento  ************************************************/
     $diaFixo = 20;
     $diaAtual = date("d");
     $mesAtual = date("m");
     $anoAtual = date("Y");
     if ($diaAtual > 10 and $mesAtual < 12) {
         $mesAtual = $mesAtual + 1;
     } else {
         if ($diaAtual > 10 and $mesAtual == 12) {
             $anoAtual = $anoAtual + 1;
             $mesAtual = 01;
         }
     }
     $hora = date("m:i:s");
     $dataCerta = $anoAtual . "/" . $mesAtual . "/20 " . $hora;
     $dataCertaM = "20/" . $mesAtual . "/" . $anoAtual;
     /******************************************************************************/
     /* DADOS DO AGENTE ************************************************************/
     $tbDistribuirParecer = new tbDistribuirParecer();
     $dadosProduto = $tbDistribuirParecer->pagamentoParecerista(null, 137);
     $agentes = new Agentes();
     $whereAgente = array('a.idAgente = ?' => $idAgente[0]);
     $dadosAgente = $agentes->buscarAgenteNome($whereAgente);
     $nomeParecerista = $dadosAgente[0]->Descricao;
     $cpfParecerista = $dadosAgente[0]->CNPJCPF;
     /******************************************************************************/
     $arrayProdutosProjeto = array();
     try {
         $valorTotal = 0;
         for ($i = 0; $i < sizeof($idProduto); $i++) {
             $valorTotal = $valorTotal + $valor[$i];
             $dadosWhere = array('idDistribuirParecer = ?' => $idProduto[$i]);
             $dadosProjeto = $tbDistribuirParecer->BuscarParaMemorando($dadosWhere)->current();
             $arrayBusca = array('Item' => $i, 'PRONAC' => $dadosProjeto['NrProjeto'], 'Objeto' => $dadosProjeto['Produto'], 'ValorParecer' => $valor[$i], 'DataPagamento' => $dataCerta, 'Processo' => $dadosProjeto->Processo);
             $arrayProdutosProjeto[] = $arrayBusca;
             $TbPagamentoParecerista = new TbPagamentoParecerista();
             $TbComprovantePagamento = new TbComprovantePagamento();
             $arrayComprovante = array('dtPagamento' => $dataCerta, 'nrOrdemPagamento' => $nrMemorando);
             $buscarComprovante = $TbComprovantePagamento->alterarComprovante($arrayComprovante, $idComprovantePagamento[$i]);
             $arrayPagamento = array('siPagamento' => 1);
             $alterar = $TbPagamentoParecerista->alterarPagamento($arrayPagamento, $idPagamentoParecerista[$i]);
         }
         $arrayParecerista = array('Nome' => $nomeParecerista, 'CPF' => Mascara::addMaskCPF($cpfParecerista), 'ValorTotal' => $valorTotal);
         $this->view->dadosParecerista = $arrayParecerista;
         $this->view->dadosProduto = $arrayProdutosProjeto;
         $this->view->dataMemorando = $dataCertaM;
     } catch (Exception $e) {
         parent::message("Erro ao enviar pagamentos: " . $e->getMessage(), "gerenciarparecer/enviarpagamento", "ERROR");
     }
 }
 /**
  * Método salvaatestado()
  * Salva o atestado do Parecerista
  * @access public
  * @param void
  * @return void
  */
 public function salvaatestadoAction()
 {
     $this->autenticacao();
     $dtAtual = Date("Y/m/d h:i:s");
     $idAgente = $this->_request->getParam("id");
     $dtInicio = $this->formatadata($this->_request->getParam("dtinicio"));
     $dtFim = $this->formatadata($this->_request->getParam("dtfim"));
     $impacto = $this->_request->getParam("impacto");
     $tbAusencia = new TbAusencia();
     $tbDocumento = new tbDocumento();
     $tbArquivo = new tbArquivo();
     $tbArquivoImagem = new tbArquivoImagem();
     // pega as informações do arquivo
     $arquivoNome = $_FILES['arquivo']['name'];
     // nome
     $arquivoTemp = $_FILES['arquivo']['tmp_name'];
     // nome temporário
     $arquivoTipo = $_FILES['arquivo']['type'];
     // tipo
     $arquivoTamanho = $_FILES['arquivo']['size'];
     // tamanho
     if (!empty($arquivoNome)) {
         $arquivoExtensao = Upload::getExtensao($arquivoNome);
         // extensão
     }
     if (!empty($arquivoTemp)) {
         $arquivoBinario = Upload::setBinario($arquivoTemp);
         // binário
         $arquivoHash = Upload::setHash($arquivoTemp);
         // hash
     }
     $db = Zend_Registry::get('db');
     $db->setFetchMode(Zend_DB::FETCH_OBJ);
     try {
         $db->beginTransaction();
         $dadosArquivo = array('nmArquivo' => $arquivoNome, 'sgExtensao' => $arquivoExtensao, 'stAtivo' => 'A', 'dsHash' => $arquivoHash, 'dtEnvio' => $dtAtual);
         $salvarArquivo = $tbArquivo->cadastrarDados($dadosArquivo);
         $idArquivo = $tbArquivo->buscarUltimo();
         $dadosArquivoImagem = array('idArquivo' => $idArquivo['idArquivo'], 'biArquivo' => $arquivoBinario);
         $dadosAI = "Insert into BDCORPORATIVO.scCorp.tbArquivoImagem \n\t\t\t\t  (idArquivo, biArquivo) values (" . $idArquivo['idArquivo'] . ", " . $arquivoBinario . ") ";
         $salvarArquivoImagem = $tbArquivoImagem->salvarDados($dadosAI);
         $dadosDocumento = array('idTipoDocumento' => 0, 'idArquivo' => $idArquivo['idArquivo']);
         $salvarDocumento = $tbDocumento->cadastrarDados($dadosDocumento);
         $ultimoDocumento = $tbDocumento->ultimodocumento();
         $dadosAusencia = array('idTipoAusencia' => 1, 'idAgente' => $idAgente, 'dtInicioAusencia' => $dtInicio, 'dtFimAusencia' => $dtFim, 'stImpacto' => $impacto, 'idDocumento' => $ultimoDocumento['idDocumento'], 'siAusencia' => 0, 'dsJustificativaAusencia' => '', 'dtCadastroAusencia' => $dtAtual);
         // salva o novo registro
         $salvar = $tbAusencia->inserir($dadosAusencia);
         // Busca o id do registro cadastrado
         $ultimoRegistro = $tbAusencia->UltimoRegistro();
         // Monta o array com o id do ultimo registro cadastrado
         $dados = array('idAlteracao' => $ultimoRegistro[0]->id);
         // Alterar o ultimo registro cadastrado colocando o seu próprio id no campo idalteração
         $altera = $tbAusencia->alteraAusencia($dados, $ultimoRegistro[0]->id);
         /* ********************************************************************************************** */
         if ($impacto = 1) {
             // Tem que pegar todos os produtos que estão como Parecerista e devolver para o Coord.
             // Criar uma função para isso!
             $tbDistribuirParecer = new tbDistribuirParecer();
             $projetoDAO = new Projetos();
             $projetos = $projetoDAO->buscaProjetosProdutosAnaliseInicial(array('idAgenteParecerista = ?' => $idAgente, 'DtDistribuicao >= ?' => '' . $dtInicio . '', 'DtDistribuicao <= ?' => '' . $dtFim . ''));
             foreach ($projetos as $p) {
                 $dados = array('Observacao' => 'Devolvido por motivo de atestado médico.', 'idUsuario' => $this->getIdUsuario, 'DtDevolucao' => $dtAtual);
                 $salvar = $tbDistribuirParecer->atualizarParecer($dados, $p->idDistribuirParecer);
             }
         }
         /* ********************************************************************************************** */
         $db->commit();
         parent::message("Cadastro realizado com sucesso!", "agentes/atestados/id/" . $idAgente, "CONFIRM");
     } catch (Exception $e) {
         $db->rollBack();
         parent::message("Erro ao cadastrar! " . $e->getMessage(), "agentes/atestados/id/" . $idAgente, "ERROR");
     }
 }
 /**
  * Metodo que chama as funcoes de balancear projeto, copiar tabelas e alterar a situacao do projeto
  * Envio para o componente da comissao (UC53)
  * @access public
  * @param void
  * @return void
  */
 public function enviarcomponentedacomissaoAction()
 {
     $idPronac = $this->_request->getParam("idpronac");
     // pega o id do pronac via get
     $servico = $this->_request->getParam("servico");
     // pega o id do pronac via get
     //$tipousuario   = $this->_request->getParam("idusuario"); // pega o id do pronac via get
     try {
         // copia as tabelas
         $planilhaProjeto = new PlanilhaProjeto();
         $planilhaAprovacao = new PlanilhaAprovacao();
         $analiseConteudo = new Analisedeconteudo();
         $analiseaprovacao = new AnaliseAprovacao();
         $projetos = new Projetos();
         $Distribuicao = new DistribuicaoProjetoComissao();
         $titulacaoConselheiro = new TitulacaoConselheiro();
         $Rplanilhaprojeto = $planilhaProjeto->buscar(array('idPRONAC = ?' => $idPronac));
         foreach ($Rplanilhaprojeto as $resu) {
             $data = array('tpPlanilha' => 'CO', 'dtPlanilha' => new Zend_Db_Expr('GETDATE()'), 'idPlanilhaProjeto' => $resu->idPlanilhaProjeto, 'idPlanilhaProposta' => $resu->idPlanilhaProposta, 'IdPRONAC' => $resu->idPRONAC, 'idProduto' => $resu->idProduto, 'idEtapa' => $resu->idEtapa, 'idPlanilhaItem' => $resu->idPlanilhaItem, 'dsItem' => '', 'idUnidade' => $resu->idUnidade, 'qtItem' => $resu->Quantidade, 'nrOcorrencia' => $resu->Ocorrencia, 'vlUnitario' => $resu->ValorUnitario, 'qtDias' => $resu->QtdeDias, 'tpDespesa' => $resu->TipoDespesa, 'tpPessoa' => $resu->TipoPessoa, 'nrContraPartida' => $resu->Contrapartida, 'nrFonteRecurso' => $resu->FonteRecurso, 'idUFDespesa' => $resu->UfDespesa, 'idMunicipioDespesa' => $resu->MunicipioDespesa, 'dsJustificativa' => $resu->Justificativa, 'stAtivo' => 'S');
             $inserirPlanilhaAprovacao = $planilhaAprovacao->InserirPlanilhaAprovacao($data);
         }
         $RanaliseConteudo = $analiseConteudo->buscar(array('IdPRONAC = ?' => $idPronac));
         foreach ($RanaliseConteudo as $resu) {
             $data = array('tpAnalise' => 'CO', 'dtAnalise' => new Zend_Db_Expr('GETDATE()'), 'idAnaliseConteudo' => $resu->idAnaliseDeConteudo, 'IdPRONAC' => $resu->idPronac, 'idProduto' => $resu->idProduto, 'stLei8313' => $resu->Lei8313, 'stArtigo3' => $resu->Artigo3, 'nrIncisoArtigo3' => $resu->IncisoArtigo3, 'dsAlineaArt3' => $resu->AlineaArtigo3, 'stArtigo18' => $resu->Artigo18, 'dsAlineaArtigo18' => $resu->AlineaArtigo18, 'stArtigo26' => $resu->Artigo26, 'stLei5761' => $resu->Lei5761, 'stArtigo27' => $resu->Artigo27, 'stIncisoArtigo27_I' => $resu->IncisoArtigo27_I, 'stIncisoArtigo27_II' => $resu->IncisoArtigo27_II, 'stIncisoArtigo27_III' => $resu->IncisoArtigo27_III, 'stIncisoArtigo27_IV' => $resu->IncisoArtigo27_IV, 'stAvaliacao' => $resu->ParecerFavoravel, 'dsAvaliacao' => $resu->ParecerDeConteudo);
             $analiseaprovacao->inserirAnaliseAprovacao($data);
         }
         // chama a funcao para fazer o balanceamento
         //VERIFICA QUANTOS PRODUTOS O PROJETO POSSUI POR AREA
         $tbDistParecer = new tbDistribuirParecer();
         $rsProdutos = $tbDistParecer->BuscarQtdAreasProjetos($idPronac);
         $totalArea = $rsProdutos->QDTArea;
         if ($totalArea >= '2') {
             $area = 7;
             //Area = Artes integradas
         } else {
             //BUSCA AREA DO PROJETO
             $areaProjeto = $projetos->BuscarAreaSegmentoProjetos($idPronac);
             $area = $areaProjeto['area'];
             //Area do projeto
         }
         $Rtitulacao = $titulacaoConselheiro->buscarComponenteBalanceamento($area);
         $dados = array('idPRONAC' => $idPronac, 'idAgente' => $Rtitulacao['idagente'], 'dtDistribuicao' => new Zend_Db_Expr('GETDATE()'), 'idResponsavel' => 0);
         $Distribuicao->inserirDistribuicaoProjetoComissao($dados);
         // chama a funcao para alterar a situacao do projeto - Padrao C10
         $data = array('Situacao' => 'C10');
         $where = "IdPRONAC = {$idPronac}";
         $projetos->alterarProjetos($data, $where);
         parent::message("O projeto foi enviado para o Componente da Comiss&atilde;o!", "verificarreadequacaodeprojeto/verificarreadequacaodeprojetocoordacompanhamento", "CONFIRM");
     } catch (Exception $e) {
         $this->view->message = $e->getMessage();
     }
 }
 public function imprimirHistoricoEncaminhamentoAction()
 {
     $this->_helper->layout->disableLayout();
     // Desabilita o Zend Layout
     $idPronac = $this->_request->getParam("idPronac");
     if (strlen($idPronac) > 7) {
         $idPronac = Seguranca::dencrypt($idPronac);
     }
     if (!empty($idPronac)) {
         //****** Dados do Projeto - Cabecalho *****//
         $projetos = new Projetos();
         $DadosProjeto = $projetos->dadosProjeto(array('idPronac = ?' => $idPronac))->current();
         $this->view->idPronac = $idPronac;
         $this->view->DadosProjeto = $DadosProjeto;
         $tbDistribuirParecer = new tbDistribuirParecer();
         $this->view->dados = $tbDistribuirParecer->buscarHistoricoEncaminhamento(array('a.idPRONAC = ?' => $idPronac));
     }
 }
 public function concluirParecer($dados)
 {
     //INSTANCIANDO UM OBJETO DE ACESSO AOS DADOS DA TABELA
     $tbDistribuirParecer = new tbDistribuirParecer();
     //BUSCA O REGISTRO QUE VAI SER ALTERADO
     $rstbDistribuirParecer = $tbDistribuirParecer->find($dados['idDistribuirParecer'])->current();
     //ATRIBUINDO VALORES AOS CAMPOS QUE FORAM PASSADOS
     $rstbDistribuirParecer->FecharAnalise = $dados['FecharAnalise'];
     $rstbDistribuirParecer->Observacao = $dados['Observacao'];
     $rstbDistribuirParecer->idUsuario = $dados['idUsuario'];
     //xd($rstbDistribuirParecer);
     //SALVANDO O OBJETO
     $id = $rstbDistribuirParecer->save();
     if ($id) {
         return $id;
     } else {
         return false;
     }
 }