Notícias:

SMF - Just Installed!

Main Menu

Posts recentes

#21
Publique aqui / Re:html.PasseFormularioWebKit(...
Último post por adalberto - Março 08, 2018, 03:54:45 PM
Isso aí, Rafael, excelente!
#22
Publique aqui / html.PasseFormularioWebKit()
Último post por rafael - Março 07, 2018, 04:16:13 AM
Bom dia!

fiz uma biblioteca pra passar o formulário "boundary" do método POST.

Como ele pode receber vários conteúdos ao mesmo tempo fiz um laço contando as posições.

O retorno pode ser uma tabela ou pegar diretamente um par: chave = valor

Se quiser pode incluir ela no html ou no cgi



funcao PasseFormularioWebKit(cadeia,chave)
cadeia = [[------WebKitFormBoundaryDCkEyCJwVlL5BGuC
Content-Disposition: form-data; name="ArquivoDeRetorno"; filename="4155_00154695_20180220_C240_00.ret"
Content-Type: application/octet-stream

                           rafael
------WebKitFormBoundaryDCkEyCJwVlL5BGuC
Content-Disposition: form-data; name="arquivo1"; filename="arquivo1.txt"
Content-Type: text/plain

Conteúdo do texto

------WebKitFormBoundaryDCkEyCJwVlL5BGuC
Content-Disposition: form-data; name="arquivo2"; filename="arquivo2.html"
Content-Type: text/html

<!DOCTYPE html><title>Conteúdo do html</title>

------WebKitFormBoundaryDCkEyCJwVlL5BGuC
Content-Disposition: form-data; name="conteudoJSON"
Content-Type: application/json

{"Objeto":"objetoJSON","chave":"Isso é uma tabela em prisma"}

------WebKitFormBoundaryDCkEyCJwVlL5BGuC--]]

 
  pi = {};
  pf = {};
  x = 1;
  pos_busca = 1; //ponto inicial da busca

  se Metodo == 'GET' entao erro('____________________Metodo suportado somente: POST____________________') fim




  enquanto 1 inicio //cria um laço infinito
      linha = cadeia:separe('^(.-)[\r\n].*$') ou ''
      se pos_busca ==1 e linha:procure('WebKitFormBoundary') entao
        codigoinicial = linha
      fim
      se nao codigoinicial  entao
        quebre erro('____________________NÃO É WebKitFormBoundary____________________')
      fim
      pi[ x ] , pf [ x ] = string.procure ( cadeia , codigoinicial , pos_busca );
      se pi[x] == nulo entao 
    //se o retorno de pi for nulo entao interrompe o laço
      quebre
      senao //senao salva uma nova posicao de busca
          pos_busca = pf [ x ] + 1;
      fim;
  x = x + 1;
  //fazendo o incremento de x
  fim


  Matriz = {}

  para i = 1 , #pi-1  inicio
        //imprima( 'Busca numero ' .. i .. ' : ' .. pi[ i ]  .. ' - ' .. pf [ i ] );
    conteudo = string.corte(cadeia,pf[i]+2,pi[i+1]-2)
    linha = conteudo:separe('^(.-)[\r?\n].*$') ou ''
      nome = conteudo:separe('name=["](.-)[";].*$') ou ''
      nomedoarquivo = conteudo:separe('filename=["](.-)[";].*$') ou ''
      disposicao = conteudo:separe('Content%-Disposition: (.-[^;\r?\n]+).*$') ou ''
      conteudo = conteudo:corte(#linha+2,#conteudo)
      linha = conteudo:separe('^(.-)[\r?\n].*$') ou ''
      tipo_conteudo = conteudo:separe('Content%-Type: (.-[^;\r?\n]+).*$') ou ''
      conteudo = conteudo:corte(#linha+2,#conteudo):apare()
      linha = conteudo:separe('^(.-)[\r?\n?].*$')
      se linha == ('') entao
        conteudo = conteudo:corte(#linha+2,#conteudo):apare()
      fim
      Matriz[i] = {}
      Matriz[i]['Nome'] = nome
      Matriz[i]['NomeDoArquivo'] = nomedoarquivo
      Matriz[i]['Disposicao'] = disposicao
      Matriz[i]['TipoDeConteudo'] = tipo_conteudo
      Matriz[i]['Conteudo'] = conteudo
  fim

  se chave entao
    local valor = nulo
    para i,v em pares(Matriz) inicio
          se nao valor entao
            valor = v.Nome == chave
            se valor entao valor = v.Conteudo fim
          fim
        fim
        retorne valor
  senao
    retorne Matriz
  fim

fim


ArquivoDeRetorno  = PasseFormularioWebKit(Formularios,'ArquivoDeRetorno')
conteudoJSON  = PasseFormularioWebKit(Formularios,'conteudoJSON')
arquivo1  = PasseFormularioWebKit(Formularios,'arquivo1')
imprima(ArquivoDeRetorno)
imprima(conteudoJSON)
imprima(arquivo1)

#23
Lista de Bugs / Re:sis.relogio() não funciona ...
Último post por adalberto - Fevereiro 09, 2018, 04:15:23 PM
Criei uma função aleatorio(), ela é bem simples mas garante que não haja repetições em ocorrências em menos de um segundo, veja:



local mat = mat;
local x = 0;
local funcao aleatorio()     
  x = x + 1;
  local z = sis.tempo()+x;
  mat.xrandonico(z);
fim


//teste:
para i = 1, 10 inicio
  aleatorio(); //cria uma chave randômica.
  imprima(mat.randonico()); //retorna o número aleatório baseado na chave randômica.
fim
 


Obs.: só agora vi que cometi um erro ortográfico, o certo é randômico e não randônico, vou modificar esta função na próxima versão, possivelmente vou mudar de mat.randonico e mat.xrandonico para mat.aleatorio e mat.xaleatorio;

Vou manter a nomenclatura errada para garantir compatibilidade com quem já usou estas funções.

#24
Lista de Bugs / Re:sis.relogio() não funciona ...
Último post por adalberto - Fevereiro 09, 2018, 10:15:32 AM
Vou ter que instalar o CentOS em uma máquina virtual para testar. Qual é a versão que vc usa? 32 ou 64?

Pelo que andei vendo esta função vem do C clock() e seu resultado e significado é dependente de plataforma.

No momento sugiro a você usar a função sis.tempo(), ela retorna em segundos o tempo atual.

Ex.:

mat.xrandonico( sis.tempo() );
  local a1 = mat.randonico();
  local a2 = mat.randonico(); 
  imprima(a1,a2);


#25
Lista de Bugs / sis.relogio() não funciona no ...
Último post por rafael - Fevereiro 07, 2018, 12:55:03 PM
Essa função é fundamental pra gerar números aleatórios porque ela pega o tempo em milissegundos.

quando eu uso no ubuntu ela retorna o tempo em milissegundos, mas no CentOS retorna sempre 0

http://ap.imagensbrasil.org/image/d93qUP
#26
Lista de Bugs / Re:too many C levels (limit is...
Último post por adalberto - Janeiro 25, 2018, 09:42:22 PM
Há uma outra forma também, criei uma função que concatena valores e não gera o erro de limite de 200 níveis C.

É necessário passar os valores a serem concatenados em forma de tabela (separados por vírgulas entre chaves):

local valor = 200;
local  result, err = concat { [[ <minha tag>]] , valor , [[</minha tag>]] }  ;
se nao result entao imprima(err); sis.saia(1); fim
imprima(result);
//saída-->   <minha tag>200</minha tag>


Veja o código da função logo abaixo:


local funcao concat(t)
  se tipo(t)<>'tabela' entao retorne falso, 'Espera-se uma tabela em vez de ' .. tipo(t) fim;
  local convstring = convstring;
  local s = '';
  para i,v em pares(t) inicio
    s = s .. convstring(v);
  fim
  retorne s;
fim

#27
Lista de Bugs / Re:too many C levels (limit is...
Último post por adalberto - Janeiro 24, 2018, 10:25:29 AM
Boa tarde, Rafael.

Então, isso, infelizmente, é uma limitação da própria linguagem.

Não se é possível concatenar mais de 200 vezes simultaneamente, encontrei uma solução, veja no final.

Consegui simular o mesmo erro com o seguinte código:



local i = 0;
local z = i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i;


A única solução foi concatenar em etapas em vez de uma única vez, veja o código corrigido logo abaixo:




local i = 0;
//primeira etapa
local z = i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i;


//segunda etapa; perceba que o valor de z já computado é colocado no início da atribuição:
z = z .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i;

//terceira etapa;
z = z .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i;

//quarta etapa
z = z .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i .. i ..
i .. i .. i .. i;

//e no fim imprimimos sem problemas o valor concatenado:
imprima(z);


No seu caso, vc terá que primeiro fazer as etapas de concatenação colocando em uma variável local temporária e depois passar como parâmetro ao imprima ou à outra função que precise.

Ex.: 
local html_cmd= '';
html_cmd = html_cmd .. '<código html/js>' .. i .. '<código html/js>' ...
html_cmd = html_cmd .. '<código html/js>' .. i .. '<código html/js>'  ... e assim por diante ...
imprima(html_cmd);


Não precisa ser muitas etapas, apenas a quantidade suficiente para não ultrapassar os 200 de limite, na sua situação acho que 2 ou 3 etapas funcionará sem problemas.

Tenta aí depois retorna aqui, ok.

Até mais.
#28
Lista de Bugs / Re:too many C levels (limit is...
Último post por rafael - Janeiro 24, 2018, 08:09:27 AM
vou postar o trecho em que acontece o erro:

Neste trecho em cada rodada "i" é concatenado menos de 200 vezes,
mas se eu aumentar uma função do javascript ou colocar v concatenado junto com i
então vai ultrapassar os 200 limit, então o erro acontece.



para i,v em pares(TabelaBoleto) inicio


imprima([[




<div class="col s12 m3" >
  <div class="card gradient-shadow ]]..CorDoCartao..[[ border-radius-3" style=" overflow: visible;">
<a id="AncoraNotaDoBoleto]]..i..[["><i class="material-icons tooltipped white-text" data-tooltip="Notas" >speaker_notes ]]..QuantNotas..[[</i></a>
<i class="material-icons tooltipped white-text" data-tooltip="Impresso" >print <small class="notification-badge flat" >]]..v.Impresso..[[</small></i>
<div class="card-content center " style=" overflow: visible;">

                          <img src="fotos/boleto.png" class="width-40 border-round z-depth-5">
  <h6 class="white-text truncate lighten-4 tooltipped" data-tooltip="]]..v.Comentario..[[">]]..v.Comentario..[[</h6>
  <h5 class="white-text truncate lighten-4 " >R$]]..Reais(v.Valor)..[[</h5>
  <p class="white-text lighten-4">Vencimento: ]]..Data(v.DataDeVencimento)..[[</p>


  <a class='dropdown-button btn' href='#' data-activates='Opções]]..i..[['>Opções</a>

  <ul id='Opções]]..i..[[' class='dropdown-content'>
    <li><a href="#ModalReceberBoleto]]..i..[[" class="modal-trigger">Receber</a></li>
    <li><a href="#ModalAlterarBoleto]]..i..[[" class="modal-trigger">Alterar</a></li>

<form id="FormularioImprimirBoleto]]..i..[[" action="imprimirboleto.prisma" method="get" target="_blank" >
<input type="hidden" name="IdDoBoleto" value="]]..v.Id..[[">
</form>
    <li><a id="BotãoImprimirBoleto]]..i..[[">Imprimir</a></li>



    <li><a href="#ModalApagarBoleto]]..i..[[" class="modal-trigger">Apagar</a></li>
  </ul>

</div>
  </div>
</div>

                <div id="ModalApagarBoleto]]..i..[[" class="modal">
<div class="modal-content ">
<h6 class="title center ">Confirma apagar boleto ]]..v.Id..[[ no valor de R$]]..Reais(v.Valor)..[[?</h6>
<h6 class="title center red-text ">Cuidado, se o cliente estiver com o boleto ainda poderá pagar!</h6>
<form id="FormularioApagarBoleto]]..i..[[" action="#">
                     
<div class="row">

<div class="input-field col s12">

<input id="MotivoApagar]]..i..[[" name="Motivo" type="text" >
<label for="MotivoApagar]]..i..[[">Especifique o motivo</label>


</div>

<div class="input-field col s12">
<i class="material-icons prefix">vpn_key</i>
<input id="SenhaApagarBoleto]]..i..[[" name="Senha" type="password">
<label for="SenhaApagarBoleto]]..i..[[">Digite sua senha</label>
<input type="hidden" name="Boleto" value="]]..v.Id..[[">
<input type="hidden" name="Acao" value="Apagar">
<input type="hidden" name="Login" value="]]..v.Usuario..[[">

</div>
</div>


<div class="row">
<div class="input-field col s12">
<button id="BotãoApagarBoleto]]..i..[[" class="btn waves-effect waves-light right red" type="submit" >
<i class="material-icons right">clear</i>
Confirmo
</button>
</div>
</div>
                     
</form>
</div>
                </div>
                <div id="ModalAlterarBoleto]]..i..[[" class="modal">
<div class="modal-content ">
<h6 class="title center ">Ao alterar o boleto, envie o arquivo de remessa ao banco um dia antes de entregar o boleto ao cliente, caso contrário o cliente não conseguirá pagar.</h6>
<form id="FormularioAlterarBoleto]]..i..[[" action="#">
                     
<div class="row">

<div class="input-field col s6 ">
<input type="text" name="ValorDoDesconto" id="ValorDoDescontoAlterado]]..i..[[" value="]]..v.ValorDoDesconto..[[">
<label for="ValorDoDescontoAlterado]]..i..[[">Desconto até o vencimento</label>
</div>

<div class="input-field col s6 ">
<input type="text" name="ValorAlterado" id="ValorAlterado]]..i..[[" value="]]..v.Valor..[[">
<label for="ValorAlterado]]..i..[[">Valor </label>
</div>

<div class="input-field col s6 ">
<input type="text" class="datepicker" name="Vencimento" id="VencimentoAlterado]]..i..[[" value="]]..Data(v.DataDeVencimento)..[[">
<label for="VencimentoAlterado]]..i..[[">Vencimento </label>
</div>

<div class="input-field col s6 ">
<input type="text" name="Motivo" id="MotivoAlterado]]..i..[[" required>
<label for="MotivoAlterado]]..i..[[">Especifique o motivo </label>
</div>

<div class="input-field col s6">
<i class="material-icons prefix">vpn_key</i>
<input id="SenhaAlterarBoleto]]..i..[[" name="Senha" type="password" >
<label for="SenhaAlterarBoleto]]..i..[[">Digite sua senha</label>
<input type="hidden" name="Boleto" value="]]..v.Id..[[">
<input type="hidden" name="Acao" value="Alterar">
<input type="hidden" name="Login" value="]]..v.Usuario..[[">

</div>
</div>


<div class="row">
<div class="input-field col s12">
<button id="BotãoAlterarBoleto]]..i..[[" class="btn waves-effect waves-light right amber black-text" type="submit" >

Confirmo
</button>
</div>
</div>
                     
</form>
</div>
                </div>


                <div id="ModalReceberBoleto]]..i..[[" class="modal">
<div class="modal-content ">
<h6 class="title center ">Receber boleto ]]..v.Id..[[ de ]]..v.Nome..[[</h6>

<ul class="collection">
  <li class="collection-item ">Nosso número: <a class="right">]]..v.NossoNumero..[[</a></li>




</ul>

<form id="FormularioReceberBoleto]]..i..[[" action="#">
                     
<div class="row">
<div class="input-field col s6 ">

<input type="text" name="Acrescimo" id="Acrescimo]]..i..[[" value="]]..v.ValorDaMulta..[[">

<label for="Acrescimo]]..i..[[">Multa e mora</label>
</div>
<div class="input-field col s6 ">

<input type="text" name="ValorDoDesconto" id="ValorDoDesconto]]..i..[[" value="]]..v.ValorDoDesconto..[[">

<label for="ValorDoDesconto]]..i..[[">Desconto</label>
</div>




<div class="input-field col s6 " id="ContenedorFormaDePagamento]]..i..[[">

<select name="FormaDePagamento" id="FormaDePagamento]]..i..[[">
<option id="AdicionarFormaDePagamento]]..i..[[" value="Incluir" >Incluir outra forma </option>
]]..FormaDePagamento()..[[

</select>
<label for="FormaDePagamento]]..i..[[">Forma de pagamento</label>
</div>

<div class="input-field col s6 ">

<input id="ValorPago]]..i..[[" name="ValorPago" type="text" value="]]..v.Valor..[[">
<label for="ValorPago]]..i..[[">Valor pago</label>
<input type="hidden"  id="ValorOriginal]]..i..[[" value="]]..v.Valor..[[">
<input type="hidden"  id="ValorDaMora]]..i..[[" value="]]..v.ValorDaMora..[[">
<input type="hidden"  id="ValorDaMulta]]..i..[[" value="]]..v.ValorDaMulta..[[">

<input type="hidden"  id="ValorTotal]]..i..[[" value="]]..v.Valor..[[">
<input type="hidden" name="Boleto" value="]]..v.Id..[[">
<input type="hidden" name="Acao" value="Receber">
    <input type="hidden" name="Login" value="]]..v.Usuario..[[">

</div>

  <div class="switch col s12 m6 l6">
<p class="right">
Perdoar multa e mora
<label>
  <input type="checkbox"  name="Perdoar" id="Perdoar]]..i..[[" value="sim">
  <span class="lever"></span>
</label>
</p>
  </div>

  <div class="switch col s12 m6 l6">
<p>
<label>
  <input type="checkbox"  name="IncluirNaProxima" id="IncluirNaProxima]]..i..[[" value="sim" >
  <span class="lever"></span>
</label> Incluir na próxima mensalidade
</p>
  </div> 

<div class="input-field col s12 m6 l6 ">

<input type="text" class="datepicker" name="DataDePagamento" id="DataDePagamento]]..i..[[" value="]]..DataDeHoje..[[">

<label for="DataDePagamento]]..i..[[">Data de pagamento</label>
</div>

<div class="input-field col s12 m6 l6">
<i class="material-icons prefix">vpn_key</i>
<input id="Senha]]..i..[[" name="Senha" type="password">
<label for="Senha]]..i..[[">Digite sua senha</label>
</div>

</div>


<div class="row">
<div class="input-field col s12">
<button id="BotãoReceberBoleto]]..i..[[" class="btn waves-effect waves-light right " type="submit" >
<i class="material-icons right">keyboard_arrow_down</i>
Receber
</button>
</div>
</div>
                     
</form>
</div>
                </div>

]])

tabela.insira(TabelaJavaScript,[[

$('#AncoraNotaDoBoleto]]..i..[[').click(function(e){
e.preventDefault();
e.stopPropagation();
$('#ModalVazio').modal('open');

$.ajax({
   url:'consultarnota.prisma?Tipo=Boleto&Login=]]..v.Usuario..[[&Passe=]]..CodigoResumido('md5','tit',v.Id)..[[',
   type:'GET',
   success: function(result){

$('#ConteúdoDoModalVazio').html(result);

   },
   error: function(result){

$('#ConteúdoDoModalVazio').text('Erro no servidor');

   }
});

});


$('#FormaDePagamento]]..i..[[').change(function(){
   if ($(this).val() == 'Incluir'){
       $('#ContenedorFormaDePagamento]]..i..[[').replaceWith('<div class="input-field col s6 "><input type="text" name="FormaDePagamento" id="FormaDePagamento]]..i..[["> <label for="FormaDePagamento]]..i..[[">Forma de pagamento</label></div>');
       Materialize.updateTextFields();
       $('select').material_select();
       $('#FormaDePagamento]]..i..[[').focus();
   }
});


$("#Acrescimo]]..i..[[").keyup(function(){
    $('#ValorPago]]..i..[[').val(
    parseFloat(
    parseFloat( ValorOriginal]]..i..[[.value  )
      + parseFloat( $("#Acrescimo]]..i..[[").val().replace(',','.').replace('R$','')  )
      - parseFloat( $("#ValorDoDesconto]]..i..[[").val().replace(',','.').replace('R$','')  )
      ).toFixed(2)
      );
         Materialize.updateTextFields();
         $("#ValorPago]]..i..[[").trigger('mask.maskMoney');

});
$("#ValorDoDesconto]]..i..[[").keyup(function(){
    $('#ValorPago]]..i..[[').val(
    parseFloat(
    parseFloat( ValorOriginal]]..i..[[.value  )
      + parseFloat( $("#Acrescimo]]..i..[[").val().replace(',','.').replace('R$','')  )
      - parseFloat( $("#ValorDoDesconto]]..i..[[").val().replace(',','.').replace('R$','')  )
      ).toFixed(2)
      );
         Materialize.updateTextFields();
         $("#ValorPago]]..i..[[").trigger('mask.maskMoney');
});



function CalculaValor]]..i..[[() {
var Acrescimo]]..i..[[ = $("#Acrescimo]]..i..[[").val().replace(',','.').replace('R$','');
var Desconto]]..i..[[ = $("#ValorDoDesconto]]..i..[[").val().replace(',','.').replace('R$','');
var ValorTotal]]..i..[[ = ( ]]..v.Valor..[[ + parseFloat(Acrescimo]]..i..[[.value) - parseFloat(Desconto]]..i..[[.value) ) ;
$("#ValorPago]]..i..[[").val(   parseFloat(ValorTotal]]..i..[[).toFixed(2) );
}

$(document).ready(function(){

$('select').material_select();

    $("#ValorPago]]..i..[[").maskMoney({precision:2, showSymbol:true, symbol:"R$", decimal:",", thousands:".", allowZero: true, affixesStay: true, prefix:'R$ ', removeMaskOnSubmit: true});
    $("#ValorDoDesconto]]..i..[[").maskMoney({showSymbol:true, symbol:"R$", decimal:",", thousands:".", allowZero: true, affixesStay: true, prefix:'R$ ', removeMaskOnSubmit: true});
    $("#Acrescimo]]..i..[[").maskMoney({ showSymbol:true, symbol:"R$", decimal:",", thousands:".", allowZero: true, affixesStay: true, prefix:'R$ ', removeMaskOnSubmit: true});

    $("#ValorDoDescontoAlterado]]..i..[[").maskMoney({showSymbol:true, symbol:"R$", decimal:",", thousands:".", allowZero: true, affixesStay: true, prefix:'R$ ', removeMaskOnSubmit: true});
    $("#ValorAlterado]]..i..[[").maskMoney({showSymbol:true, symbol:"R$", decimal:",", thousands:".", allowZero: true, affixesStay: true, prefix:'R$ ', removeMaskOnSubmit: true});

   
    var Condicao = ']]..v.Condicao..[[';
    if ( Condicao == 'vencido') {
    $('#ValorPago]]..i..[[').val(
    parseFloat(
    parseFloat( ]]..v.Valor..[[  )
      + parseFloat( $("#Acrescimo]]..i..[[").val().replace(',','.').replace('R$','')  )
      - parseFloat( $("#ValorDoDesconto]]..i..[[").val().replace(',','.').replace('R$','')  )
      ).toFixed(2)
      );
         Materialize.updateTextFields();
    };   
$("#Acrescimo]]..i..[[").trigger('mask.maskMoney');
$("#ValorDoDesconto]]..i..[[").trigger('mask.maskMoney');
$("#ValorPago]]..i..[[").trigger('mask.maskMoney');
$("#ValorDoDescontoAlterado]]..i..[[").trigger('mask.maskMoney');
$("#ValorAlterado]]..i..[[").trigger('mask.maskMoney');
    Materialize.updateTextFields();
});


$('#Perdoar]]..i..[[').change( function() {

if (this.checked) {
        $('#ValorPago]]..i..[[').val(  parseFloat(
        ]]..v.Valor..[[
        - parseFloat( $("#ValorDoDesconto]]..i..[[").val().replace(',','.').replace('R$','') )
        ).toFixed(2)
          );
Materialize.updateTextFields();
$("#ValorPago]]..i..[[").trigger('mask.maskMoney');
    } if (!this.checked)  {
    $('#ValorPago]]..i..[[').val(
    parseFloat(
    parseFloat( ]]..v.Valor..[[  )
      + parseFloat( $("#Acrescimo]]..i..[[").val().replace(',','.').replace('R$','')  )
      - parseFloat( $("#ValorDoDesconto]]..i..[[").val().replace(',','.').replace('R$','')  )
      ).toFixed(2)
      );
         Materialize.updateTextFields();
         $("#ValorPago]]..i..[[").trigger('mask.maskMoney');
    }
});


$('#BotãoImprimirBoleto]]..i..[[').click( function(e) {
e.preventDefault();
$('#FormularioImprimirBoleto]]..i..[[').submit();
});


$('#FormularioApagarBoleto]]..i..[[').submit( function(e) {
e.preventDefault();


$('#BotãoApagarBoleto]]..i..[[').text("Apagando...");

    setTimeout(function() {
$.ajax({
   url:'alterarboleto.prisma',
   data: $("#FormularioApagarBoleto]]..i..[[").serialize(),
   type:'GET',
   success: function(dados){

result=dados;
               
if( result.SUCESSO ){
$('#BotãoApagarBoleto]]..i..[[').text("APAGADO");
$('#BotãoApagarBoleto]]..i..[[').addClass('green');
            setTimeout(function() {
  $('#ModalApagarBoleto]]..i..[[').modal('close');
            }, 1000);
            setTimeout(function() {
location.reload();
}, 2000);
            } else{
$("#BotãoApagarBoleto]]..i..[[").text(result.ERRO);
$('#BotãoApagarBoleto]]..i..[[').addClass('animated shake');
setTimeout(function() {
$('#BotãoApagarBoleto]]..i..[[').removeClass("animated shake");
}, 2000);
setTimeout(function() {
$('#BotãoApagarBoleto]]..i..[[').text("APAGAR");
}, 2000);
              // alert(result.ERRO);
}//else
   },
   error: function(result){
Materialize.toast('ERRO NO SERVIDOR', 3000,'red');
setTimeout(function() {
$('#BotãoAlterarBoleto]]..i..[[').text("APAGAR");
}, 2000);

   }
});
}, 1000);
});


$('#FormularioReceberBoleto]]..i..[[').submit( function(e) {
e.preventDefault();

$('#BotãoReceberBoleto]]..i..[[').text("Recebendo...");

    setTimeout(function() {
$.ajax({
   url:'alterarboleto.prisma',
   data: $("#FormularioReceberBoleto]]..i..[[").serialize(),
   type:'GET',
   success: function(dados){

result=dados;
               
if( result.SUCESSO ){
$('#BotãoReceberBoleto]]..i..[[').text(result.SUCESSO);
$('#BotãoReceberBoleto]]..i..[[').addClass('green');
            setTimeout(function() {
  $('#ModalReceberBoleto]]..i..[[').modal('close');
            }, 1000);
            setTimeout(function() {
location.reload();
}, 2000);
            } else{
$("#BotãoReceberBoleto]]..i..[[").text(result.ERRO);
$('#BotãoReceberBoleto]]..i..[[').addClass('animated shake');
setTimeout(function() {
$('#BotãoReceberBoleto]]..i..[[').removeClass("animated shake");
}, 2000);
setTimeout(function() {
$('#BotãoReceberBoleto]]..i..[[').text("RECEBER");
}, 2000);
              // alert(result.ERRO);
}//else
   },
   error: function(result){
Materialize.toast('ERRO NO SERVIDOR', 3000,'red');
setTimeout(function() {
$('#BotãoAlterarBoleto]]..i..[[').text("RECEBER");
}, 2000);

   }
});
}, 1000);
});


$('#FormularioAlterarBoleto]]..i..[[').submit( function(e) {
e.preventDefault();


$('#BotãoAlterarBoleto]]..i..[[').text("Alterando...");

    setTimeout(function() {
$.ajax({
   url:'alterarboleto.prisma',
   data: $("#FormularioAlterarBoleto]]..i..[[").serialize(),
   type:'GET',
   success: function(dados){

result=dados;
               
if( result.SUCESSO ){
$('#BotãoAlterarBoleto]]..i..[[').text(result.SUCESSO);
$('#BotãoAlterarBoleto]]..i..[[').addClass('green');
            setTimeout(function() {
  $('#ModalApagarBoleto]]..i..[[').modal('close');
            }, 1000);
            setTimeout(function() {
location.reload();
}, 2000);
            } else{
$("#BotãoAlterarBoleto]]..i..[[").text(result.ERRO);
$('#BotãoAlterarBoleto]]..i..[[').addClass('animated shake');
setTimeout(function() {
$('#BotãoAlterarBoleto]]..i..[[').removeClass("animated shake");
}, 2000);
setTimeout(function() {
$('#BotãoAlterarBoleto]]..i..[[').text("ALTERAR");
}, 2000);
              // alert(result.ERRO);
}//else
   },
   error: function(result){
Materialize.toast('ERRO NO SERVIDOR', 3000,'red');
setTimeout(function() {
$('#BotãoAlterarBoleto]]..i..[[').text("ALTERAR");
}, 2000);

   }
});
}, 1000);
});



]])




fim

#29
Lista de Bugs / Re:too many C levels (limit is...
Último post por adalberto - Janeiro 23, 2018, 10:40:47 PM
Poderia dar mais detalhe do seu código? Geralmente esse erro acontece com chamada recursiva de função.
#30
Lista de Bugs / too many C levels (limit is 20...
Último post por rafael - Janeiro 21, 2018, 08:39:26 AM
Recentemente tive essa surpresa aqui:

too many C levels (limit is 200) in function

Olha eu pesquisei no lua o mesmo erro mas não achei a solução

isso aconteceu em um laço "para i,v em pares()" onde concatenava "i" mais de 200 vezes