public function finalizageralAction()
 {
     //idAcaoAvaliacaoItemPedidoAlteracao da Tabela BDCORPORATIVO.scSAC.tbAcaoAvaliacaoItemPedidoAlteracao
     $idAcao = $_GET['id'];
     //            $new = new tbProposta();
     //            $ss = $new->finalizarReadequacaoDeProposta('119720');
     //            xd($ss);
     //retorna o id do agente logado
     $idAgenteRemetente = $this->getIdUsuario;
     $idPerfilRemetente = $this->codGrupo;
     $db = Zend_Registry::get('db');
     $db->setFetchMode(Zend_DB::FETCH_OBJ);
     try {
         $db->beginTransaction();
         //ATUALIZA OS CAMPOS stAtivo e stVerificacao NA TABELA tbAcaoAvaliacaoItemPedidoAlteracao
         $sqlfin = ReadequacaoProjetos::retornaSQLfinalizaGeral($idAcao);
         $dados = $db->fetchAll($sqlfin);
         //BUSCA OS REGISTROS DA TABELA tbAcaoAvaliacaoItemPedidoAlteracao
         $sqlfin2 = ReadequacaoProjetos::retornaSQLfinalizaGeral2($idAcao);
         $dados = $db->fetchAll($sqlfin2);
         $id = $dados[0]->idAvaliacaoItemPedidoAlteracao;
         $idOrgao = $dados[0]->idOrgao;
         //BUSCA OS REGISTROS DOS CAMPOS idPedidoAlteracao E tpAlteracaoProjeto DA TABELA tbAvaliacaoItemPedidoAlteracao
         $sqlfin3 = ReadequacaoProjetos::retornaSQLfinalizaGeral3($id);
         $dados = $db->fetchAll($sqlfin3);
         $idPedidoAlt = $dados[0]->idPedidoAlteracao;
         $tpAlt = $dados[0]->tpAlteracaoProjeto;
         $stAvaliacaoItem = $dados[0]->stAvaliacaoItemPedidoAlteracao;
         //ATUALIZA O CAMPO stVerificacao NA TABELA tbPedidoAlteracaoXTipoAlteracao
         $sqlfin4 = ReadequacaoProjetos::retornaSQLfinalizaGeral4($idPedidoAlt, $tpAlt);
         $dados = $db->fetchAll($sqlfin4);
         //CRIAR NOVO REGISTRO DE ENCAMINHAMENTO NA TABELA tbAcaoAvaliacaoItemPedidoAlteracao
         if (!isset($_GET['checklist'])) {
             $sqlfin5 = ReadequacaoProjetos::retornaSQLfinalizaGeral5($id, $idOrgao, $idAgenteRemetente, $idPerfilRemetente);
             $dados = $db->fetchAll($sqlfin5);
         }
         //BUSCA O IDPRONAC DA TABELA tbPedidoAlteracaoProjeto
         $sqlfin6 = ReadequacaoProjetos::retornaSQLfinalizaGeral6($idPedidoAlt);
         $dados = $db->fetchAll($sqlfin6);
         $idPronac = $dados[0]->IdPRONAC;
         //Verifica se possui item de custo NA TABELA tbPedidoAlteracaoXTipoAlteracao
         if ($tpAlt == 7) {
             $sqlfin7 = ReadequacaoProjetos::retornaSQLfinalizaGeral7($idPedidoAlt);
             $itens = $db->fetchAll($sqlfin7);
             if (count($itens) == 2) {
                 $tpAlt = 10;
             }
         }
         $auth = Zend_Auth::getInstance();
         // pega a autenticação
         $agente = GerenciarPautaReuniaoDAO::consultaAgenteUsuario($auth->getIdentity()->usu_codigo);
         $idagente = $agente['idAgente'];
         if ($stAvaliacaoItem == 'AP') {
             if ($tpAlt == 1 && isset($_GET['checklist'])) {
                 //NOME DO PROPONENTE
                 $NomeProponenteSolicitado = PedidoAlteracaoDAO::buscarAlteracaoNomeProponente($idPronac);
                 $proponente = new Interessado();
                 $dados = array('Nome' => mb_convert_case(strtolower($NomeProponenteSolicitado['proponente']), MB_CASE_TITLE, "ISO-8859-1"));
                 $proponente->alterar($dados, array('CgcCpf = ?' => $NomeProponenteSolicitado['CgcCpf']));
             } else {
                 if ($tpAlt == 2 && isset($_GET['checklist'])) {
                     //TROCA DE PROPONENTE
                     $trocaProponenteAtual = VerificarAlteracaoProjetoDAO::BuscarDadosGenericos($idPronac);
                     $NomeAtual = $trocaProponenteAtual['proponente'];
                     $CpfCnpjAtual = $trocaProponenteAtual['CgcCpf'];
                     $idNome = $trocaProponenteAtual['idNome'];
                     $trocaProponenteSolicitada = PedidoAlteracaoDAO::buscarAlteracaoRazaoSocial($idPronac);
                     $NomeSolicitado = $trocaProponenteSolicitada['nmRazaoSocial'];
                     $CpfCnpjSolicitado = $trocaProponenteSolicitada['CgcCpf'];
                     // altera o cpf do proponente
                     $_Projetos = new Projetos();
                     $_alterarProponente = $_Projetos->alterar(array('CgcCpf' => $CpfCnpjSolicitado), array('IdPRONAC = ?' => $idPronac));
                     // altera o nome do proponente
                     $_Nomes = new Nomes();
                     $_alterarNome = $_Nomes->alterar(array('Descricao' => $NomeSolicitado), array('idNome = ?' => $idNome));
                     $proponente = new Interessado();
                     $dados = array('Nome' => mb_convert_case(strtolower($NomeSolicitado), MB_CASE_TITLE, "ISO-8859-1"));
                     $proponente->alterar($dados, array('CgcCpf = ?' => $CpfCnpjSolicitado));
                     /**
                      * ==============================================================
                      * INICIO DA ATUALIZACAO DO VINCULO DO PROPONENTE
                      * ==============================================================
                      */
                     $Projetos = new Projetos();
                     $Agentes = new Agentes();
                     $Visao = new Visao();
                     $tbVinculo = new TbVinculo();
                     $tbVinculoProposta = new tbVinculoProposta();
                     /* ========== BUSCA OS DADOS DO PROPONENTE ANTIGO ========== */
                     $buscarCpfProponenteAntigo = $Projetos->buscar(array('IdPRONAC = ?' => $idPronac));
                     $cpfProponenteAntigo = count($buscarCpfProponenteAntigo) > 0 ? $buscarCpfProponenteAntigo[0]->CgcCpf : 0;
                     $buscarIdProponenteAntigo = $Agentes->buscar(array('CNPJCPF = ?' => $cpfProponenteAntigo));
                     $idProponenteAntigo = count($buscarIdProponenteAntigo) > 0 ? $buscarIdProponenteAntigo[0]->idAgente : 0;
                     $idPreProjetoVinculo = count($buscarCpfProponenteAntigo) > 0 ? $buscarCpfProponenteAntigo[0]->idProjeto : 0;
                     /* ========== BUSCA OS DADOS DO NOVO PROPONENTE ========== */
                     $buscarNovoProponente = $Agentes->buscar(array('CNPJCPF = ?' => $CpfCnpjSolicitado));
                     $idNovoProponente = count($buscarNovoProponente) > 0 ? $buscarNovoProponente[0]->idAgente : 0;
                     $buscarVisao = $Visao->buscar(array('Visao = ?' => 144, 'idAgente = ?' => $idNovoProponente));
                     /* ========== BUSCA OS DADOS DA PROPOSTA VINCULADA ========== */
                     $idVinculo = $tbVinculoProposta->buscar(array('idPreProjeto = ?' => $idPreProjetoVinculo));
                     /* ========== ATUALIZA O VINCULO DO PROPONENTE ========== */
                     if (count($buscarVisao) > 0 && count($idVinculo) > 0) {
                         $whereVinculo = array('idVinculo = ?' => $idVinculo[0]->idVinculo);
                         $dadosVinculo = array('idAgenteProponente' => $idNovoProponente, 'dtVinculo' => new Zend_Db_Expr('GETDATE()'));
                         $tbVinculo->alterar($dadosVinculo, $whereVinculo);
                     } else {
                         parent::message("O usuário informado não é Proponente ou o Projeto não está vinculado a uma Proposta!", "verificarreadequacaodeprojeto/verificarreadequacaodeprojetocoordacompanhamento", "ERROR");
                     }
                     /**
                      * ==============================================================
                      * FIM DA ATUALIZACAO DO VINCULO DO PROPONENTE
                      * ==============================================================
                      */
                 } else {
                     if ($tpAlt == 3) {
                         //FICHA TÉCNICA
                         $fichatecAtual = FichaTecnicaDAO::buscarFichaTecnicaFinal($idPronac, $idPedidoAlt);
                         $Atual = $fichatecAtual[0]->FichaTecnica;
                         $idPreProjeto = $fichatecAtual[0]->idPreProjeto;
                         $fichatecSolicitada = PedidoAlteracaoDAO::buscarAlteracaoFichaTecnicaFinal($idPronac, $idPedidoAlt);
                         $Solicitada = $fichatecSolicitada[0]['dsFichaTecnica'];
                         $avaliacao = ReadequacaoProjetos::finalizacaoCoordAcomp("SAC.dbo.PreProjeto", "FichaTecnica", $Solicitada, "idPreProjeto", $idPreProjeto);
                         $result = $db->fetchAll($avaliacao);
                     } else {
                         if ($tpAlt == 4) {
                             //LOCAL DE REALIZAÇÃO
                             $local = ProjetoDAO::buscarPronac($idPronac);
                             $idProjeto = $local['idProjeto'];
                             $dadosTbAbran = tbAbrangenciaDAO::buscarDadosTbAbrangencia(null, $id);
                             foreach ($dadosTbAbran as $x) {
                                 if (trim($x->tpAcao) == 'I') {
                                     $dados = array('idProjeto' => $idProjeto, 'idPais' => $x->idPais, 'idUF' => $x->idUF, 'idMunicipioIBGE' => $x->idMunicipioIBGE, 'Usuario' => $idagente, 'stAbrangencia' => '1');
                                     //if (count(AbrangenciaDAO::verificarLocalRealizacao($idProjeto, $x->idMunicipioIBGE)) <= 0) :
                                     $local = AbrangenciaDAO::cadastrar($dados);
                                     //endif;
                                     //print_r($local);
                                 } else {
                                     if (trim($x->tpAcao) == 'E') {
                                         // altera o status dos locais excluídos
                                         $Abrangencia = new Abrangencia();
                                         $Abrangencia->update(array('stAbrangencia' => 0), array('idAbrangencia = ?' => $x->idAbrangenciaAntiga));
                                         //$_local = AbrangenciaDAO::buscarAbrangenciasAtuais($idProjeto, $x->idPais, $x->idUF, $x->idMunicipioIBGE);
                                         //$__local = AbrangenciaDAO::excluir($_local[0]->idAbrangencia);
                                     }
                                 }
                             }
                         } else {
                             if ($tpAlt == 5 && isset($_GET['checklist'])) {
                                 //NOME DO PROJETO
                                 $Projetos = new Projetos();
                                 $DadosAlteracaoNomeProjeto = PedidoAlteracaoDAO::buscarAlteracaoNomeProjeto($idPronac);
                                 $dados = array('NomeProjeto' => $DadosAlteracaoNomeProjeto['nmProjeto']);
                                 $Projetos->alterar($dados, array('IdPRONAC = ?' => $idPronac));
                             } else {
                                 if ($tpAlt == 6) {
                                     //PROPOSTA PEDAGÓGICA
                                     $sqlproposta = ReadequacaoProjetos::retornaSQLproposta("sqlpropostafinalizar", $idPronac);
                                     $dadosSolicitado = $db->fetchAll($sqlproposta);
                                     $Projeto = new Projetos();
                                     $DadosProj = $Projeto->buscar(array('IdPRONAC = ?' => $idPronac));
                                     if (count($DadosProj) > 0 && !empty($DadosProj[0]->idProjeto)) {
                                         $PreProjeto = new PreProjeto();
                                         $dados = array('EstrategiadeExecucao' => $dadosSolicitado[0]['dsEstrategiaExecucao'], 'EspecificacaoTecnica' => $dadosSolicitado[0]['dsEspecificacaoSolicitacao']);
                                         PreProjeto::alterarDados($dados, array('idPreProjeto = ?' => $DadosProj[0]->idProjeto));
                                     }
                                 } else {
                                     if ($tpAlt == 7) {
                                         $tbPlanoDistribuicao = new tbPlanoDistribuicao();
                                         $produtosAnalisadosDeferidos = $tbPlanoDistribuicao->produtosAvaliadosReadequacao($idPedidoAlt, $id);
                                         foreach ($produtosAnalisadosDeferidos as $valores) {
                                             $Projeto = new Projetos();
                                             $DadosProj = $Projeto->buscar(array('IdPRONAC = ?' => $idPronac));
                                             $dadosProduto = array('idPlanoDistribuicao' => $valores->idPlanoDistribuicao, 'idProjeto' => $DadosProj[0]->idProjeto, 'idProduto' => $valores->idProduto, 'Area' => $valores->cdArea, 'Segmento' => $valores->cdSegmento, 'idPosicaoDaLogo' => $valores->idPosicaoLogo, 'QtdeProduzida' => $valores->qtProduzida, 'QtdePatrocinador' => $valores->qtPatrocinador, 'QtdeProponente' => NULL, 'QtdeOutros' => $valores->qtOutros, 'QtdeVendaNormal' => $valores->qtVendaNormal, 'QtdeVendaPromocional' => $valores->qtVendaPromocional, 'PrecoUnitarioNormal' => $valores->vlUnitarioNormal, 'PrecoUnitarioPromocional' => $valores->vlUnitarioPromocional, 'stPrincipal' => $valores->stPrincipal, 'stPlanoDistribuicaoProduto' => 1);
                                             //ALTERA OU INSERE O PLANO DE DISTRIBUICAO
                                             $PlanoDistribuicao = new PlanoDistribuicao();
                                             $x = $PlanoDistribuicao->salvar($dadosProduto);
                                         }
                                     } else {
                                         if ($tpAlt == 8 && isset($_GET['checklist'])) {
                                             //PRORROGACAO DE PRAZOS - CAPTACAO
                                             $datas = PedidoAlteracaoDAO::buscarAlteracaoPrazoCaptacao($idPronac);
                                             $Projeto = new Projetos();
                                             $DadosProj = $Projeto->buscar(array('IdPRONAC = ?' => $idPronac));
                                             $Aprovacao = new Aprovacao();
                                             $registro = $Aprovacao->buscar(array('AnoProjeto = ?' => $DadosProj[0]->AnoProjeto, 'Sequencial = ?' => $DadosProj[0]->Sequencial));
                                             $dados = array('IdPRONAC' => $idPronac, 'AnoProjeto' => $DadosProj[0]->AnoProjeto, 'Sequencial' => $DadosProj[0]->Sequencial, 'TipoAprovacao' => 3, 'DtAprovacao' => new Zend_Db_Expr('GETDATE()'), 'DtInicioCaptacao' => $datas['dtInicioNovoPrazo'], 'DtFimCaptacao' => $datas['dtFimNovoPrazo'], 'Logon' => $idagente);
                                             $Aprovacao->inserir($dados);
                                         } else {
                                             if ($tpAlt == 9 && isset($_GET['checklist'])) {
                                                 //PRORROGACAO DE PRAZOS - EXECUCAO
                                                 $datas = PedidoAlteracaoDAO::buscarAlteracaoPrazoExecucao($idPronac);
                                                 $projetos = new Projetos();
                                                 $dados = array('DtInicioExecucao' => $datas['dtInicioNovoPrazo'], 'DtFimExecucao' => $datas['dtFimNovoPrazo']);
                                                 $projetos->alterar($dados, array('IdPRONAC = ?' => $idPronac));
                                             } else {
                                                 if ($tpAlt == 10) {
                                                     $tbPlanoDistribuicao = new tbPlanoDistribuicao();
                                                     $produtosAnalisadosDeferidos = $tbPlanoDistribuicao->produtosAvaliadosReadequacao($idPedidoAlt, $id);
                                                     foreach ($produtosAnalisadosDeferidos as $valores) {
                                                         $Projeto = new Projetos();
                                                         $DadosProj = $Projeto->buscar(array('IdPRONAC = ?' => $idPronac));
                                                         $dadosProduto = array('idPlanoDistribuicao' => $valores->idPlanoDistribuicao, 'idProjeto' => $DadosProj[0]->idProjeto, 'idProduto' => $valores->idProduto, 'Area' => $valores->cdArea, 'Segmento' => $valores->cdSegmento, 'idPosicaoDaLogo' => $valores->idPosicaoLogo, 'QtdeProduzida' => $valores->qtProduzida, 'QtdePatrocinador' => $valores->qtPatrocinador, 'QtdeProponente' => NULL, 'QtdeOutros' => $valores->qtOutros, 'QtdeVendaNormal' => $valores->qtVendaNormal, 'QtdeVendaPromocional' => $valores->qtVendaPromocional, 'PrecoUnitarioNormal' => $valores->vlUnitarioNormal, 'PrecoUnitarioPromocional' => $valores->vlUnitarioPromocional, 'stPrincipal' => $valores->stPrincipal, 'stPlanoDistribuicaoProduto' => 1);
                                                         //ALTERA OU INSERE O PLANO DE DISTRIBUICAO
                                                         $PlanoDistribuicao = new PlanoDistribuicao();
                                                         $x = $PlanoDistribuicao->salvar($dadosProduto);
                                                     }
                                                     // PRODUTO + ITEN DE CUSTO
                                                     $planilhaProposta = new PlanilhaProposta();
                                                     $planilhaProjeto = new PlanilhaProjeto();
                                                     $DeParaPlanilhaAprovacao = new DeParaPlanilhaAprovacao();
                                                     $Projetos = new Projetos();
                                                     $planilha = new PlanilhaAprovacao();
                                                     $PlanilhasSolicitadas = $planilha->buscar(array('IdPRONAC = ?' => $idPronac, 'tpPlanilha = ?' => 'PA'));
                                                     $buscarProjeto = $Projetos->buscar(array('IdPRONAC = ?' => $idPronac));
                                                     foreach ($PlanilhasSolicitadas as $dadosP) {
                                                         if (!empty($dadosP->idPedidoAlteracao)) {
                                                             // busca a ação a ser executada conforme solicitação de readequação
                                                             //$_idPlanilhaProjeto      = empty($dadosP->idPlanilhaProjeto) ? ('idPlanilhaProjeto ? ' => new Zend_Db_Expr('IS NULL')) : ('idPlanilhaProjeto = ? ' => $dadosP->idPlanilhaProjeto);
                                                             //$_idPlanilhaProposta     = empty($dadosP->idPlanilhaProposta) ? ('idPlanilhaProposta ? ' => new Zend_Db_Expr('IS NULL')) : ('idPlanilhaProposta = ? ' => $dadosP->idPlanilhaProposta);
                                                             //$_idPlanilhaAprovacaoPai = empty($dadosP->idPlanilhaAprovacaoPai) ? ('idPlanilhaAprovacaoPai ? ' => new Zend_Db_Expr('IS NULL')) : ('idPlanilhaAprovacaoPai = ? ' => $dadosP->idPlanilhaAprovacaoPai);
                                                             $_dados = array('IdPRONAC = ?' => $idPronac, 'tpPlanilha = ?' => 'SR', 'IdPRONAC = ?' => $idPronac, 'idPedidoAlteracao = ? ' => $dadosP->idPedidoAlteracao);
                                                             $buscarTpAcaoSR = $planilha->buscar($_dados);
                                                             if (count($buscarTpAcaoSR) > 0 && !empty($buscarProjeto[0]->idProjeto)) {
                                                                 // EXCLUSÃO
                                                                 if ($buscarTpAcaoSR[0]->tpAcao == 'E') {
                                                                     // planilha antiga
                                                                     $idProjeto = $buscarProjeto[0]->idProjeto;
                                                                     $dadosAprovados = $planilhaProposta->buscar(array('idProjeto = ?' => $idProjeto, 'idProduto = ?' => $dadosP->idProduto, 'idEtapa = ?' => $dadosP->idEtapa, 'idPlanilhaItem = ?' => $dadosP->idPlanilhaItem));
                                                                     foreach ($dadosAprovados as $dadosExculsao) {
                                                                         $buscarDeParaPlanilhaAprovacao = $DeParaPlanilhaAprovacao->buscarPlanilhaProposta($dadosExculsao->idPlanilhaProposta);
                                                                         foreach ($buscarDeParaPlanilhaAprovacao as $b) {
                                                                             $DeParaPlanilhaAprovacao->delete(array('idPlanilhaAprovacao = ?' => $b->idPlanilhaAprovacao));
                                                                         }
                                                                         $planilha->delete(array('idPlanilhaProposta = ?' => $dadosExculsao->idPlanilhaProposta));
                                                                         $planilhaProjeto->delete(array('idPlanilhaProposta = ?' => $dadosExculsao->idPlanilhaProposta));
                                                                         $planilhaProposta->delete(array('idPlanilhaProposta = ?' => $dadosExculsao->idPlanilhaProposta));
                                                                     }
                                                                     // ALTERAÇÃO
                                                                 } elseif ($buscarTpAcaoSR[0]->tpAcao == 'A') {
                                                                     // planilha antiga
                                                                     $idProjeto = $buscarProjeto[0]->idProjeto;
                                                                     $dadosAprovados = $planilhaProposta->buscar(array('idProjeto = ?' => $idProjeto, 'idProduto = ?' => $dadosP->idProduto, 'idEtapa = ?' => $dadosP->idEtapa, 'idPlanilhaItem = ?' => $dadosP->idPlanilhaItem));
                                                                     foreach ($dadosAprovados as $dadosAlteracao) {
                                                                         $where = array('idPlanilhaProposta = ?' => $dadosAlteracao->idPlanilhaProposta);
                                                                         $dados = array('idProduto' => $dadosP->idProduto, 'idEtapa' => $dadosP->idEtapa, 'idPlanilhaItem' => $dadosP->idPlanilhaItem, 'Descricao' => $dadosP->dsItem, 'Unidade' => $dadosP->idUnidade, 'Quantidade' => $dadosP->qtItem, 'Ocorrencia' => $dadosP->nrOcorrencia, 'ValorUnitario' => $dadosP->vlUnitario, 'QtdeDias' => $dadosP->qtDias, 'TipoDespesa' => $dadosP->tpDespesa, 'TipoPessoa' => $dadosP->tpPessoa, 'Contrapartida' => $dadosP->nrContraPartida, 'FonteRecurso' => $dadosP->nrFonteRecurso, 'UfDespesa' => $dadosP->idUFDespesa, 'MunicipioDespesa' => $dadosP->idMunicipioDespesa, 'idUsuario' => $dadosP->idAgente, 'dsJustificativa' => $dadosP->dsJustificativa);
                                                                         $planilhaProposta->alterar($dados, $where);
                                                                     }
                                                                     $planilha->update(array('tpPlanilha' => 'CO', 'stAtivo' => 'N'), array('idPlanilhaAprovacao = ? ' => $dadosP->idPlanilhaAprovacao));
                                                                     $planilha->update(array('tpPlanilha' => 'CO', 'stAtivo' => 'N'), array('idPlanilhaAprovacao = ? ' => $buscarTpAcaoSR[0]->idPlanilhaAprovacao));
                                                                     // INCLUSÃO
                                                                 } elseif ($buscarTpAcaoSR[0]->tpAcao == 'I') {
                                                                     // planilha antiga
                                                                     $ReplicaDados = array('idProjeto' => $buscarProjeto[0]->idProjeto, 'idProduto' => $dadosP->idProduto, 'idEtapa' => $dadosP->idEtapa, 'idPlanilhaItem' => $dadosP->idPlanilhaItem, 'Descricao' => $dadosP->dsItem, 'Unidade' => $dadosP->idUnidade, 'Quantidade' => $dadosP->qtItem, 'Ocorrencia' => $dadosP->nrOcorrencia, 'ValorUnitario' => $dadosP->vlUnitario, 'QtdeDias' => $dadosP->qtDias, 'TipoDespesa' => $dadosP->tpDespesa, 'TipoPessoa' => $dadosP->tpPessoa, 'Contrapartida' => $dadosP->nrContraPartida, 'FonteRecurso' => $dadosP->nrFonteRecurso, 'UfDespesa' => $dadosP->idUFDespesa, 'MunicipioDespesa' => $dadosP->idMunicipioDespesa, 'idUsuario' => $dadosP->idAgente, 'dsJustificativa' => $dadosP->dsJustificativa);
                                                                     $planilhaProposta->inserir($ReplicaDados);
                                                                     $planilha->update(array('tpPlanilha' => 'CO', 'stAtivo' => 'N'), array('idPlanilhaAprovacao = ? ' => $dadosP->idPlanilhaAprovacao));
                                                                     $planilha->update(array('tpPlanilha' => 'CO', 'stAtivo' => 'N'), array('idPlanilhaAprovacao = ? ' => $buscarTpAcaoSR[0]->idPlanilhaAprovacao));
                                                                 }
                                                             }
                                                         }
                                                         // fecha if
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
         $db->commit();
         //CASO SEJA O ÚLTIMO ITEM DO PEDIDO DE ALTERAÇÃO, FINALIZA O STATUS DA MESMA
         $tbPedidoAlteracaoXTipoAlteracao = new tbPedidoAlteracaoXTipoAlteracao();
         $verificarPedidosAtivos = $tbPedidoAlteracaoXTipoAlteracao->buscar(array('idPedidoAlteracao = ?' => $idPedidoAlt, 'stVerificacao <> ?' => 4));
         $arrBusca = array();
         $arrBusca['p.siVerificacao IN (?)'] = array('1');
         $arrBusca['p.IdPRONAC = ?'] = $idPronac;
         $arrBusca['x.tpAlteracaoProjeto IN (?)'] = array('1', '2', '5', '7', '8', '9', '10');
         $arrBusca['a.stAvaliacaoItemPedidoAlteracao IN (?)'] = array('AP');
         $arrBusca['c.stVerificacao NOT IN (?)'] = array('4');
         $buscaChecklist = $tbPedidoAlteracaoXTipoAlteracao->buscarPedidoChecklist($arrBusca);
         if (count($verificarPedidosAtivos) == 0 && count($buscaChecklist) == 0) {
             $tbPedidoAlteracaoProjeto = new tbPedidoAlteracaoProjeto();
             $tbPedidoAlteracaoProjeto->alterar(array('siVerificacao' => 2), array('idPedidoAlteracao = ?' => $idPedidoAlt));
         }
         if (isset($_GET['checklist'])) {
             parent::message("Portaria publicada com sucesso!", "publicacaodou/index", "CONFIRM");
         } else {
             parent::message("Projeto finalizado com sucesso!", "verificarreadequacaodeprojeto/verificarreadequacaodeprojetocoordacompanhamento", "CONFIRM");
         }
     } catch (Zend_Exception $e) {
         $db->rollBack();
         parent::message("Erro na devolução da solicitação", "verificarreadequacaodeprojeto/verificarreadequacaodeprojetocoordacompanhamento", "ERROR");
     }
 }
 public function salvaalterarprojetoAction()
 {
     $post = Zend_Registry::get('post');
     //$pronac = addslashes($post->pronac);
     $pronac = $this->_request->getParam("pronac");
     //verficia se o pronac esta criptografado
     if (strlen($pronac) > 12) {
         $pronac = Seguranca::dencrypt($pronac);
     }
     if (!empty($post->Situacao)) {
         $providenciaTomada = $post->justificativa;
     } else {
         $providenciaTomada = '';
     }
     $ano = addslashes(substr($pronac, 0, 2));
     $sequencial = addslashes(substr($pronac, 2, strlen($pronac)));
     $arrBusca = array('tbr.anoprojeto =?' => $ano, 'tbr.sequencial =?' => $sequencial);
     $tblProjeto = new Projetos();
     $validapronac = $tblProjeto->VerificaPronac($arrBusca);
     if (count($validapronac) > 0) {
         $dadosProjeto = $tblProjeto->buscarTodosDadosProjeto($validapronac[0]->IdPRONAC);
         $dadosProjeto = $dadosProjeto[0];
     } else {
         parent::message("Dados obrigat&oacute;rios n&atilde;o informados", "alterarprojeto/consultarprojeto", "ERROR");
     }
     // Verificando se o Projeto atual está desabilitado e se pode ser habilitado!
     if (!empty($post->habilitado) && $post->habilitado == 'S') {
         $tbl = new Inabilitado();
         $whereI['AnoProjeto = ?'] = $dadosProjeto->AnoProjeto;
         $whereI['Sequencial = ?'] = $dadosProjeto->Sequencial;
         $retorno = $tbl->Localizar($whereI);
         $msg = 'O proponente não pode ser habilitado à presente data. Para habilitá-lo, favor anexar documento.';
         if (count($retorno) > 0 && $retorno[0]->idTipoInabilitado > 0 && $retorno[0]->idTipoInabilitado <= 7 && $retorno[0]->Anos < 1) {
             parent::message($msg, "alterarprojeto/" . $post->pagina . "?pronac=" . Seguranca::encrypt($dadosProjeto->pronac) . "&menu=" . $post->menu, "ALERT");
         } else {
             if (count($retorno) > 0 && $retorno[0]->idTipoInabilitado >= 4 && $retorno[0]->idTipoInabilitado <= 5 && $retorno[0]->Anos < 2) {
                 parent::message($msg, "alterarprojeto/" . $post->pagina . "?pronac=" . Seguranca::encrypt($dadosProjeto->pronac) . "&menu=" . $post->menu, "ALERT");
             } else {
                 if (count($retorno) > 0 && $retorno[0]->idTipoInabilitado >= 6 && $retorno[0]->idTipoInabilitado <= 7 && $retorno[0]->Anos < 3) {
                     parent::message($msg, "alterarprojeto/" . $post->pagina . "?pronac=" . Seguranca::encrypt($dadosProjeto->pronac) . "&menu=" . $post->menu, "ALERT");
                 }
             }
         }
     }
     $dados = Null;
     $dados = array('idPRONAC' => $dadosProjeto->IdPRONAC, 'idLogon' => $this->idusuario, 'cdArea' => null, 'cdSegmento' => null, 'nmProjeto' => null, 'cdSituacao' => null, 'cdOrgao' => null, 'dtInicioExecucao' => null, 'dtFimExecucao' => null, 'idEnquadramento' => null, 'CGCCPF' => null, 'dsProvidenciaTomada' => $providenciaTomada, 'dsHistoricoAlteracaoProjeto' => $post->justificativa, 'dtHistoricoAlteracaoProjeto' => date("Y-m-d H:i:s"));
     if (!empty($post->Area)) {
         $dados['cdArea'] = $dadosProjeto->Area;
         $dados['dsProvidenciaTomada'] = 'Area -> ' . $post->Area;
     }
     if (!empty($post->Segmento)) {
         $dados['cdSegmento'] = $dadosProjeto->Segmento;
         $dados['dsProvidenciaTomada'] .= '/ Segmento -> ' . $post->Segmento;
     }
     if (!empty($post->NomeProjeto)) {
         $dados['nmProjeto'] = $dadosProjeto->NomeProjeto;
         $dados['dsProvidenciaTomada'] = $post->NomeProjeto;
     }
     if (!empty($post->sinteseProjeto)) {
         $dados['dsProvidenciaTomada'] = "Sintese do Projeto -> " . $post->sinteseProjeto;
     }
     if (!empty($post->Situacao)) {
         $dados['cdSituacao'] = $dadosProjeto->Situacao;
         $dados['dsProvidenciaTomada'] = $providenciaTomada;
     }
     if (!empty($post->Orgao)) {
         $dados['cdOrgao'] = $dadosProjeto->Orgao;
         $dados['dsProvidenciaTomada'] = $post->Orgao;
     }
     if (!empty($post->dtInicioExecucao)) {
         $dados['dtInicioExecucao'] = $dadosProjeto->DtInicioExecucao;
         $dados['dsProvidenciaTomada'] = "Inicio -> " . $post->dtInicioExecucao;
     }
     if (!empty($post->dtFimExecucao)) {
         $dados['dtFimExecucao'] = $dadosProjeto->DtFimExecucao;
         $dados['dsProvidenciaTomada'] .= "/ Fim -> " . $post->dtFimExecucao;
     }
     if (!empty($post->idEnquadramento)) {
         $dados['idEnquadramento'] = $dadosProjeto->Enquadramento;
         $dados['dsProvidenciaTomada'] = $post->idEnquadramento;
     }
     if (!empty($post->CGCCPF)) {
         $dados['CGCCPF'] = $dadosProjeto->CgcCpf;
         $dados['dsProvidenciaTomada'] = str_replace("/", "", str_replace("-", "", str_replace(".", "", addslashes($post->CGCCPF))));
     }
     if (!empty($post->habilitado)) {
         $dados['dsProvidenciaTomada'] = "Inabilitado = " . $post->habilitado;
     }
     if (!empty($post->dtInicioExecucao) && !empty($post->dtFimExecucao)) {
         $dados['dtInicioExecucao'] = ConverteData($post->dtInicioExecucao, 13);
         $dtInicio = $dados['dtInicioExecucao'];
         $dados['dtFimExecucao'] = ConverteData($post->dtFimExecucao, 13);
         $dtFim = $dados['dtFimExecucao'];
     }
     $tblHistoricoAlteracaoProjeto = new tbHistoricoAlteracaoProjeto();
     $idHistAlteracaoProjeto = $tblHistoricoAlteracaoProjeto->inserir($dados);
     //salva historico
     if ($idHistAlteracaoProjeto > 1) {
         //Se tiver salvo o historico atualiza a tabela projeto
         $tblHistoricoAlteracaoDoc = new tbHistoricoAlteracaoDocumento();
         if (!empty($post->documentoid)) {
             foreach ($post->documentoid as $documentoid) {
                 //Salva o relacionamento da tabela documentos com a de historico
                 $dados = array('idHistoricoAlteracaoProjeto' => $idHistAlteracaoProjeto, 'idDocumento' => $documentoid, 'idDocumentosExigidos' => '58');
                 $respostaArqXLog = $tblHistoricoAlteracaoDoc->salvar($dados);
             }
         }
         if (!empty($post->arquivoid)) {
             foreach ($post->arquivoid as $arquivoid) {
                 //Atualiza a situacao dos arquivos para ativo
                 $atualizaArquivo = ArquivoDAO::alterar(array('stAtivo' => 'A'), $arquivoid);
             }
         }
         $dados = null;
         $dados = array('idPRONAC' => $dadosProjeto->IdPRONAC);
         if (!empty($post->Situacao)) {
             $this->validasituacao($dadosProjeto);
         }
         if (!empty($post->habilitado)) {
             $this->salvahabilitado($dadosProjeto);
         }
         //funcao para inserir o novo proponente na tabela Interesados
         if (!empty($post->CGCCPF)) {
             $interessadoTb = new Interessado();
             $interessado = $interessadoTb->Busca($where = array("CgcCpf = ? " => str_replace("/", "", str_replace("-", "", str_replace(".", "", addslashes($post->CGCCPF))))));
             if (count($interessado) <= 0) {
                 $dadosProponente = array("CgcCpf" => str_replace("/", "", str_replace("-", "", str_replace(".", "", addslashes($post->CGCCPF)))), "Nome" => $post->nome, "Endereco" => "0", "Cidade" => "", "Uf" => "", "Cep" => "", "Responsavel" => "", "Grupo" => 1);
                 if (str_replace("/", "", str_replace("-", "", str_replace(".", "", addslashes($post->CGCCPF)))) > 11) {
                     $dadosProponente['tipoPessoa'] = 1;
                 } else {
                     $dadosProponente['tipoPessoa'] = 1;
                 }
                 $interessadoTb->inserir($dadosProponente);
             }
             $Agentes = new Agentes();
             $tbDocumentosAgentes = new tbDocumentosAgentes();
             $ag = $Agentes->buscar(array('CNPJCPF = ?' => Mascara::delMaskCPFCNPJ($post->CGCCPF)))->current();
             $docs = $tbDocumentosAgentes->buscarDocumentos(array('a.idAgente = ?' => $ag->idAgente));
             if (count($docs) == 0) {
                 parent::message("Os documentos do novo proponente não estão cadastrados no sistema. Favor anexar os documentos!", "alterarprojeto/" . $post->pagina . "?pronac=" . Seguranca::encrypt($dadosProjeto->pronac) . "&menu=" . $post->menu, "ALERT");
             }
         }
         if (!empty($post->Area)) {
             $dados['Area'] = $post->Area;
         }
         if (!empty($post->Segmento)) {
             $dados['Segmento'] = $post->Segmento;
         }
         if (!empty($post->NomeProjeto)) {
             $dados['NomeProjeto'] = $post->NomeProjeto;
         }
         if (!empty($post->sinteseProjeto)) {
             $dados['ResumoProjeto'] = $post->sinteseProjeto;
         }
         if (!empty($post->Situacao)) {
             $dados['Situacao'] = $post->Situacao;
             $dados['DtSituacao'] = date("Y-m-d H:i:s");
             $dados['ProvidenciaTomada'] = $providenciaTomada;
         }
         if (!empty($post->Orgao)) {
             $dados['Orgao'] = $post->Orgao;
         }
         if (!empty($post->dtInicioExecucao)) {
             $dados['DtInicioExecucao'] = $dtInicio;
         }
         if (!empty($post->dtFimExecucao)) {
             $dados['DtFimExecucao'] = $dtFim;
         }
         if (!empty($post->CGCCPF)) {
             $dados['CgcCpf'] = str_replace("/", "", str_replace("-", "", str_replace(".", "", addslashes($post->CGCCPF))));
         }
         /**
          * ==============================================================
          * INICIO DA ATUALIZACAO DO VINCULO DO PROPONENTE
          * ==============================================================
          */
         $Projetos = new Projetos();
         $Agentes = new Agentes();
         $Visao = new Visao();
         $tbVinculo = new TbVinculo();
         $tbVinculoProposta = new tbVinculoProposta();
         /* ========== BUSCA OS DADOS DO PROPONENTE ANTIGO ========== */
         $buscarCpfProponenteAntigo = $Projetos->buscar(array('AnoProjeto+Sequencial = ?' => $post->pronac));
         $cpfProponenteAntigo = count($buscarCpfProponenteAntigo) > 0 ? $buscarCpfProponenteAntigo[0]->CgcCpf : 0;
         $buscarIdProponenteAntigo = $Agentes->buscar(array('CNPJCPF = ?' => $cpfProponenteAntigo));
         $idProponenteAntigo = count($buscarIdProponenteAntigo) > 0 ? $buscarIdProponenteAntigo[0]->idAgente : 0;
         $idPreProjetoVinculo = count($buscarCpfProponenteAntigo) > 0 ? $buscarCpfProponenteAntigo[0]->idProjeto : 0;
         /* ========== BUSCA OS DADOS DO NOVO PROPONENTE ========== */
         $buscarNovoProponente = $Agentes->buscar(array('CNPJCPF = ?' => Mascara::delMaskCPFCNPJ($post->CGCCPF)));
         $idNovoProponente = count($buscarNovoProponente) > 0 ? $buscarNovoProponente[0]->idAgente : 0;
         $buscarVisao = $Visao->buscar(array('Visao = ?' => 144, 'idAgente = ?' => $idNovoProponente));
         /* ========== BUSCA OS DADOS DA PROPOSTA VINCULADA ========== */
         $idVinculo = $tbVinculoProposta->buscar(array('idPreProjeto = ?' => $idPreProjetoVinculo));
         /* ========== ATUALIZA O VINCULO DO PROPONENTE ========== */
         //            if (count($buscarVisao) > 0 && count($idVinculo) > 0) :
         //                $whereVinculo = array('idVinculo = ?' => $idVinculo[0]->idVinculo);
         //
         //                $dadosVinculo = array(
         //                    'idAgenteProponente' => $idNovoProponente
         //                    , 'dtVinculo' => new Zend_Db_Expr('GETDATE()'));
         //
         //                $tbVinculo->alterar($dadosVinculo, $whereVinculo);
         //            else :
         //                parent::message("O usuário informado não é Proponente ou o Projeto não está vinculado a uma Proposta!", "alterarprojeto/" . $post->pagina . "?pronac=" . Seguranca::encrypt($dadosProjeto->pronac), "ERROR");
         //            endif;
         /**
          * ==============================================================
          * FIM DA ATUALIZACAO DO VINCULO DO PROPONENTE
          * ==============================================================
          */
         //ATUALIZA DADOS DO PROJETO
         $idProjeto = $tblProjeto->salvar($dados);
         if (!empty($post->idEnquadramento)) {
             $dados = null;
             $dados = array('IdEnquadramento' => $dadosProjeto->IdEnquadramento, 'Enquadramento' => $post->idEnquadramento, 'DtEnquadramento' => date("Y-m-d H:i:s"), 'Logon' => $this->idusuario);
             $tblEnquadramento = new Enquadramento();
             $idEnquadramento = $tblEnquadramento->alterarEnquadramento($dados);
         }
         if ($idProjeto == $dadosProjeto->IdPRONAC) {
             if ($post->idEnquadramento) {
                 if ($idEnquadramento == $dadosProjeto->IdEnquadramento && $idEnquadramento !== false) {
                     parent::message("Altera&ccedil;&atilde;o realizada com sucesso!", "alterarprojeto/" . $post->pagina . "?pronac=" . Seguranca::encrypt($dadosProjeto->pronac) . "&menu=" . $post->menu, "CONFIRM");
                 } else {
                     parent::message("Esse Projeto n&atilde;o possui Enquadramento", "alterarprojeto/" . $post->pagina . "?pronac=" . Seguranca::encrypt($dadosProjeto->pronac) . "&menu=" . $post->menu, "ERROR");
                 }
             } else {
                 parent::message("Altera&ccedil;&atilde;o realizada com sucesso!", "alterarprojeto/" . $post->pagina . "?pronac=" . Seguranca::encrypt($dadosProjeto->pronac) . "&menu=" . $post->menu, "CONFIRM");
             }
         } else {
             parent::message("Erro ao salvar dados", "alterarprojeto/" . $post->pagina . "?pronac=" . Seguranca::encrypt($dadosProjeto->pronac) . "&menu=" . $post->menu, "ERROR");
         }
     } else {
         parent::message("Erro ao salvar dados", "alterarprojeto/" . $post->pagina . "?pronac=" . Seguranca::encrypt($dadosProjeto->pronac), "ERROR");
     }
 }