/** * Método com o formulário para alterar documento do PRONAC * @access public * @param void * @return void */ public function alterardocumentosAction() { // autenticação scriptcase (AMBIENTE PROPONENTE) parent::perfil(2); // combo com os tipos de documentos $this->view->combotipodocumento = TipoDocumentoDAO::buscar(); // caso o formulário seja enviado via post // altera do documento if ($this->getRequest()->isPost()) { // recebe os dados via post $post = Zend_Registry::get('post'); $pronac = $post->pronac; $idPronac = (int) $post->idPronac; $doc = (int) $post->idComprovante; $idArquivo = (int) $post->idArquivo; $tipoDocumento = (int) $post->tipoDocumento; $titulo = $post->titulo; $descricao = $post->descricao; // 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) && !empty($arquivoTemp)) { $arquivoExtensao = Upload::getExtensao($arquivoNome); // extensão $arquivoBinario = Upload::setBinario($arquivoTemp); // binário $arquivoHash = Upload::setHash($arquivoTemp); // hash } try { // integração MODELO e VISÃO // busca o PRONAC no banco $resultadoPronac = ProjetoDAO::buscar($pronac); // busca o Comprovante de acordo com o id no banco $resultadoComprovante = ComprovanteExecucaoFisicaDAO::buscar($resultadoPronac[0]->IdPRONAC, $doc); // caso o PRONAC ou o Comprovante não estejam cadastrados if (!$resultadoPronac || !$resultadoComprovante) { parent::message("Registro não encontrado!", "execucaofisicadoprojeto/buscarpronac", "ERROR"); } else { $this->view->buscarPronac = $resultadoPronac; $this->view->buscarDoc = $resultadoComprovante; } // valida os campos vazios if (empty($tipoDocumento)) { throw new Exception("Por favor, informe o tipo de documento!"); } else { if (empty($titulo)) { throw new Exception("Por favor, informe o título do documento!"); } else { if (strlen($titulo) < 2 || strlen($titulo) > 100) { throw new Exception("O título do documento é inválido! A quantidade mínima é de 2 caracteres!"); } else { if (empty($descricao)) { throw new Exception("Por favor, informe a descrição do documento!"); } else { if (strlen($descricao) < 20 || strlen($descricao) > 500) { throw new Exception("A descrição do documento é inválida! São permitidos entre 20 e 500 caracteres!"); } else { if (!empty($arquivoTemp) && ($arquivoExtensao == 'exe' || $arquivoExtensao == 'bat' || $arquivoTipo == 'application/exe' || $arquivoTipo == 'application/x-exe' || $arquivoTipo == 'application/dos-exe' || strlen($arquivoExtensao) > 5)) { throw new Exception("A extensão do arquivo é inválida!"); } else { if (!empty($arquivoTemp) && $arquivoTamanho > 10485760) { throw new Exception("O arquivo não pode ser maior do que 10MB!"); } else { if (!empty($arquivoTemp) && ArquivoDAO::verificarHash($arquivoHash)) { throw new Exception("O arquivo enviado já está cadastrado na base de dados! Por favor, informe outro!"); } else { // altera o arquivo caso o mesmo tenha sido enviado if (!empty($arquivoTemp)) { // altera dados do arquivo $dadosArquivo = array('nmArquivo' => $arquivoNome, 'sgExtensao' => $arquivoExtensao, 'dsTipoPadronizado' => $arquivoTipo, 'nrTamanho' => $arquivoTamanho, 'dtEnvio' => new Zend_Db_Expr('GETDATE()'), 'dsHash' => $arquivoHash); $alterarArquivo = ArquivoDAO::alterar($dadosArquivo, $idArquivo); // altera o binário do arquivo $dadosBinario = array('biArquivo' => $arquivoBinario); $alterarBinario = ArquivoImagemDAO::alterar($dadosBinario, $idArquivo); } // fecha if // altera dados do comprovante $dadosComprovante = array('idPRONAC' => $idPronac, 'idTipoDocumento' => $tipoDocumento, 'nmComprovante' => $titulo, 'dsComprovante' => $descricao, 'idArquivo' => $idArquivo, 'idSolicitante' => 9997, 'dtEnvioComprovante' => new Zend_Db_Expr('GETDATE()')); $alterarComprovante = ComprovanteExecucaoFisicaDAO::alterar($dadosComprovante, $doc); if ($alterarComprovante) { parent::message("Alteração realizada com sucesso!", "execucaofisicadoprojeto/buscardocumentos?pronac=" . $pronac, "CONFIRM"); } else { parent::message("Erro ao realizar alteração!", "execucaofisicadoprojeto/buscardocumentos?pronac=" . $pronac, "ERROR"); } } } } } } } } } } catch (Exception $e) { $this->view->message = $e->getMessage(); $this->view->message_type = "ERROR"; $this->view->tipoDocumento = $tipoDocumento; $this->view->titulo = $titulo; $this->view->descricao = $descricao; } } else { // recebe o pronac e comprovante via get $get = Zend_Registry::get('get'); $pronac = $get->pronac; $doc = $get->doc; try { // verifica se o pronac ou o id do comprovante vieram vazios if (empty($pronac) || empty($doc)) { throw new Exception("Por favor, informe o PRONAC e o Comprovante!"); } else { // integração MODELO e VISÃO // busca o PRONAC no banco $resultadoPronac = ProjetoDAO::buscar($pronac); // busca o Comprovante de acordo com o id no banco $resultadoComprovante = ComprovanteExecucaoFisicaDAO::buscar($resultadoPronac[0]->IdPRONAC, $doc); // caso o PRONAC ou o Comprovante não estejam cadastrados if (!$resultadoPronac || !$resultadoComprovante) { throw new Exception("Registro não encontrado!"); } else { $this->view->buscarPronac = $resultadoPronac; $this->view->buscarDoc = $resultadoComprovante; } } // fecha else } catch (Exception $e) { parent::message($e->getMessage(), "execucaofisicadoprojeto/buscarpronac", "ERROR"); } } // fecha else }
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"); } }