public function remanejamentoMenorFinalizarAction() { //REMANEJAMENTO MENOR OU IGUAL A 20% $idPronac = $this->_request->getParam("idPronac"); if (strlen($idPronac) > 7) { $idPronac = Seguranca::dencrypt($idPronac); } $tbPlanilhaAprovacao = new tbPlanilhaAprovacao(); //ARRAY PARA BUSCAR VALOR TOTAL DA PLANILHA ATIVA $where = array(); $where['a.IdPRONAC = ?'] = $idPronac; $where['a.stAtivo = ?'] = 'S'; //PLANILHA ATIVA - GRUPO A $where['a.idEtapa in (?)'] = array(1, 2); $PlanilhaAtivaGrupoA = $tbPlanilhaAprovacao->valorTotalPlanilha($where)->current(); //PLANILHA ATIVA - GRUPO B $where['a.idEtapa in (?)'] = array(3); $PlanilhaAtivaGrupoB = $tbPlanilhaAprovacao->valorTotalPlanilha($where)->current(); //PLANILHA ATIVA - GRUPO C $where['a.idEtapa in (?)'] = array(4); $PlanilhaAtivaGrupoC = $tbPlanilhaAprovacao->valorTotalPlanilha($where)->current(); //PLANILHA ATIVA - GRUPO D $where['a.idEtapa in (?)'] = array(5); $PlanilhaAtivaGrupoD = $tbPlanilhaAprovacao->valorTotalPlanilha($where)->current(); //ARRAY PARA BUSCAR VALOR TOTAL DA PLANILHA REMANEJADA $where = array(); $where['a.IdPRONAC = ?'] = $idPronac; $where['a.tpPlanilha = ?'] = 'RP'; $where['a.stAtivo = ?'] = 'N'; //PLANILHA ATIVA - GRUPO A $where['a.idEtapa in (?)'] = array(1, 2); $PlanilhaRemanejadaGrupoA = $tbPlanilhaAprovacao->valorTotalPlanilha($where)->current(); //PLANILHA ATIVA - GRUPO B $where['a.idEtapa in (?)'] = array(3); $PlanilhaRemanejadaGrupoB = $tbPlanilhaAprovacao->valorTotalPlanilha($where)->current(); //PLANILHA ATIVA - GRUPO C $where['a.idEtapa in (?)'] = array(4); $PlanilhaRemanejadaGrupoC = $tbPlanilhaAprovacao->valorTotalPlanilha($where)->current(); //PLANILHA ATIVA - GRUPO D $where['a.idEtapa in (?)'] = array(5); $PlanilhaRemanejadaGrupoD = $tbPlanilhaAprovacao->valorTotalPlanilha($where)->current(); //Os grupos estão relacionados na tabela SAC.dbo.tbPlanilhaEtapa $valorTotalGrupoA = 0; $valorTotalGrupoB = 0; $valorTotalGrupoC = 0; $valorTotalGrupoD = 0; $valorTotalGrupoA = $PlanilhaAtivaGrupoA->Total - $PlanilhaRemanejadaGrupoA->Total; $valorTotalGrupoB = $PlanilhaAtivaGrupoB->Total - $PlanilhaRemanejadaGrupoB->Total; $valorTotalGrupoC = $PlanilhaAtivaGrupoC->Total - $PlanilhaRemanejadaGrupoC->Total; $valorTotalGrupoD = $PlanilhaAtivaGrupoD->Total - $PlanilhaRemanejadaGrupoD->Total; $erros = 0; if ($PlanilhaAtivaGrupoA->Total != $PlanilhaRemanejadaGrupoA->Total) { $erros++; } if ($PlanilhaAtivaGrupoB->Total != $PlanilhaRemanejadaGrupoB->Total) { $erros++; } if ($PlanilhaAtivaGrupoC->Total != $PlanilhaRemanejadaGrupoC->Total) { $erros++; } if ($PlanilhaAtivaGrupoD->Total != $PlanilhaRemanejadaGrupoD->Total) { $erros++; } $id = Seguranca::encrypt($idPronac); if ($erros > 0) { parent::message("<b>A T E N Ç Ã O !!!</b> Somente poderá finalizar a operação de remanejamento se os valores dos grupos A, B, C e D forem iguais a R\$0,00 (zero real)!", "consultardadosprojeto/remanejamento-menor?idPronac={$id}", "ERROR"); } else { $auth = Zend_Auth::getInstance(); // pega a autenticação $tblAgente = new Agentes(); $rsAgente = $tblAgente->buscar(array('CNPJCPF=?' => $auth->getIdentity()->Cpf))->current(); $tbReadequacao = new tbReadequacao(); $dadosReadequacao = array(); $dadosReadequacao['idPronac'] = $idPronac; $dadosReadequacao['idTipoReadequacao'] = 1; $dadosReadequacao['dtSolicitacao'] = new Zend_Db_Expr('GETDATE()'); $dadosReadequacao['idSolicitante'] = $rsAgente->idAgente; $dadosReadequacao['dsJustificativa'] = 'Readequação até 20%'; $dadosReadequacao['stAtendimento'] = 'D'; $dadosReadequacao['siEncaminhamento'] = 11; $dadosReadequacao['stEstado'] = 0; $idReadequacao = $tbReadequacao->inserir($dadosReadequacao); /*if($idReadequacao > 0){ $tbReadequacaoXtbTipoReadequacao = new tbReadequacaoXtbTipoReadequacao(); $dadosReadequacaoTipo = array(); $dadosReadequacaoTipo['idReadequacao'] = $idReadequacao; $dadosReadequacaoTipo['idTipoReadequacao'] = 1; $dadosReadequacaoTipo['dtSolicitacao'] = new Zend_Db_Expr('GETDATE()'); $dadosReadequacaoTipo['idSolicitante'] = $rsAgente->idAgente; $dadosReadequacaoTipo['dsSolicitacao'] = 'Readequação até 20%'; $idReadequacaoTipo = $tbReadequacaoXtbTipoReadequacao->inserir($dadosReadequacaoTipo); } else { parent::message("Ocorreu um erro durante o cadastro do remanejamento!", "consultardadosprojeto?idPronac=$id", "ERROR"); }*/ if ($idReadequacao > 0) { $d = array('stAtivo' => 'S'); $w = array('IdPRONAC = ?' => $idPronac, 'tpPlanilha = ?' => 'RP', 'stAtivo = ?' => 'N'); $update = $tbPlanilhaAprovacao->update($d, $w); $d2 = array('stAtivo' => 'N'); $w2 = array('IdPRONAC = ?' => $idPronac, 'tpPlanilha != ?' => 'RP', 'stAtivo = ?' => 'S'); $tbPlanilhaAprovacao->update($d2, $w2); parent::message("O remanejamento foi finalizado com sucesso!", "consultardadosprojeto?idPronac={$id}", "CONFIRM"); } else { parent::message("Ocorreu um erro durante o cadastro do remanejamento!", "consultardadosprojeto?idPronac={$id}", "ERROR"); } } }
public function incluirSolicitacaoReadequacaoAction() { //FUNÇÃO ACESSADA SOMENTE PELO PROPONENTE. if ($this->idPerfil != 1111) { parent::message("Você não tem permissão para acessar essa área do sistema!", "principal", "ALERT"); } $idPronac = $this->_request->getParam("idPronac"); if (strlen($idPronac) > 7) { $idPronac = Seguranca::dencrypt($idPronac); } $post = Zend_Registry::get('post'); $tbReadequacao = new tbReadequacao(); $busca = array(); $busca['idPronac =?'] = $idPronac; $busca['idTipoReadequacao =?'] = $post->tipoReadequacao; $busca['siEncaminhamento =?'] = 12; $dadosCadastrados = $tbReadequacao->buscar($busca)->current(); if (count($dadosCadastrados) > 0) { parent::message('Tipo de solicitação de readequação já cadastrada!', "readequacoes/index?idPronac=" . Seguranca::encrypt($idPronac), "ERROR"); } if ($post->tipoReadequacao == 2) { //Planilha Orçamentária $tbPlanilhaAprovacao = new tbPlanilhaAprovacao(); $planilhaReadequada = $tbPlanilhaAprovacao->buscar(array('IdPRONAC = ?' => $idPronac, 'tpPlanilha = ?' => 'SR', 'idReadequacao is null' => '')); if (count($planilhaReadequada) == 0) { parent::message('Não houve nenhuma alteração na planilha orçamentária do projeto!', "readequacoes/index?idPronac=" . Seguranca::encrypt($idPronac), "ERROR"); } } else { if ($post->tipoReadequacao == 9) { //Local de Realização $tbAbrangencia = new tbAbrangencia(); $locaisReadequados = $tbAbrangencia->buscar(array('idPronac = ?' => $idPronac, 'idReadequacao is null' => '')); if (count($locaisReadequados) == 0) { parent::message('Não houve nenhuma alteração nos locais de realização do projeto!', "readequacoes/index?idPronac=" . Seguranca::encrypt($idPronac), "ERROR"); } } else { if ($post->tipoReadequacao == 11) { //Planos de Distribuição $tbPlanoDistribuicao = new tbPlanoDistribuicao(); $planosReadequados = $tbPlanoDistribuicao->buscar(array('idPronac = ?' => $idPronac, 'idReadequacao is null' => '')); if (count($planosReadequados) == 0) { parent::message('Não houve nenhuma alteração nos planos de distribuição do projeto!', "readequacoes/index?idPronac=" . Seguranca::encrypt($idPronac), "ERROR"); } } else { if ($post->tipoReadequacao == 14) { //Planos de Divulgação $tbPlanoDivulgacao = new tbPlanoDivulgacao(); $planosReadequados = $tbPlanoDivulgacao->buscar(array('idPronac = ?' => $idPronac, 'idReadequacao is null' => '')); if (count($planosReadequados) == 0) { parent::message('Não houve nenhuma alteração nos planos de divulgação do projeto!', "readequacoes/index?idPronac=" . Seguranca::encrypt($idPronac), "ERROR"); } } } } } try { $tbArquivoDAO = new tbArquivo(); $tbArquivoImagemDAO = new tbArquivoImagem(); $tbDocumentoDAO = new tbDocumento(); // ==================== Dados do arquivo de upload =============================== $arquivoNome = $_FILES['arquivo']['name']; // nome $arquivoTemp = $_FILES['arquivo']['tmp_name']; // nome tempor�rio $arquivoTipo = $_FILES['arquivo']['type']; // tipo $arquivoTamanho = $_FILES['arquivo']['size']; // tamanho $idDocumento = null; if (!empty($arquivoTemp)) { $arquivoExtensao = Upload::getExtensao($arquivoNome); // extens�o $arquivoBinario = Upload::setBinario($arquivoTemp); // bin�rio $arquivoHash = Upload::setHash($arquivoTemp); // hash if ($arquivoExtensao != 'pdf' && $arquivoExtensao != 'PDF') { throw new Exception('A extensão do arquivo é inválida, envie somente arquivos <strong>.pdf</strong>!'); } else { if ($arquivoTamanho > 5242880) { throw new Exception('O arquivo não pode ser maior do que <strong>5MB</strong>!'); } } $dadosArquivo = array('nmArquivo' => $arquivoNome, 'sgExtensao' => $arquivoExtensao, 'dsTipoPadronizado' => $arquivoTipo, 'nrTamanho' => $arquivoTamanho, 'dtEnvio' => new Zend_Db_Expr('GETDATE()'), 'dsHash' => $arquivoHash, 'stAtivo' => 'A'); $idArquivo = $tbArquivoDAO->inserir($dadosArquivo); // ==================== Insere na Tabela tbArquivoImagem =============================== $dadosBinario = array('idArquivo' => $idArquivo, 'biArquivo' => new Zend_Db_Expr("CONVERT(varbinary(MAX), {$arquivoBinario})")); $idArquivo = $tbArquivoImagemDAO->inserir($dadosBinario); // ==================== Insere na Tabela tbDocumento =============================== $dados = array('idTipoDocumento' => 38, 'idArquivo' => $idArquivo, 'dsDocumento' => 'Solicitação de Readequação', 'dtEmissaoDocumento' => NULL, 'dtValidadeDocumento' => NULL, 'idTipoEventoOrigem' => NULL, 'nmTitulo' => 'Readequacao'); $idDocumento = $tbDocumentoDAO->inserir($dados); $idDocumento = $idDocumento['idDocumento']; } $auth = Zend_Auth::getInstance(); // pega a autenticação $tblAgente = new Agentes(); $rsAgente = $tblAgente->buscar(array('CNPJCPF=?' => $auth->getIdentity()->Cpf))->current(); $dados = array(); $dados['idPronac'] = $idPronac; $dados['idTipoReadequacao'] = $post->tipoReadequacao; $dados['dtSolicitacao'] = new Zend_Db_Expr('GETDATE()'); $dados['idSolicitante'] = $rsAgente->idAgente; $dados['dsJustificativa'] = $_POST['descJustificativa']; $dados['dsSolicitacao'] = $_POST['descSolicitacao']; $dados['idDocumento'] = $idDocumento; $dados['siEncaminhamento'] = 12; $dados['stEstado'] = 0; $idReadequacao = $tbReadequacao->inserir($dados); $tbPlanilhaAprovacao = new tbPlanilhaAprovacao(); $dadosPlanilha = array(); $dadosPlanilha['idReadequacao'] = $idReadequacao; $wherePlanilha = "IdPRONAC = {$idPronac} AND tpPlanilha = 'SR' AND idReadequacao is null"; $tbPlanilhaAprovacao->update($dadosPlanilha, $wherePlanilha); if ($idReadequacao) { parent::message('Solicitação cadastrada com sucesso!', "readequacoes/index?idPronac=" . Seguranca::encrypt($idPronac), "CONFIRM"); } else { throw new Exception("Erro ao cadastrar a readequação!"); } } catch (Exception $e) { parent::message($e->getMessage(), "readequacoes?idPronac=" . Seguranca::encrypt($idPronac), "ERROR"); } }