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");
     }
 }