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órios nã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ção realizada com sucesso!", "alterarprojeto/" . $post->pagina . "?pronac=" . Seguranca::encrypt($dadosProjeto->pronac) . "&menu=" . $post->menu, "CONFIRM"); } else { parent::message("Esse Projeto não possui Enquadramento", "alterarprojeto/" . $post->pagina . "?pronac=" . Seguranca::encrypt($dadosProjeto->pronac) . "&menu=" . $post->menu, "ERROR"); } } else { parent::message("Alteraçã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"); } }