Jump to content
violin101

PHP - Passar valor para o INPUT vindo do AJAX em formato moeda

Recommended Posts

Caros amigos, saudações.

 

Tem como passar para o Formulário um Campo vindo via AJAX no formato moeda ?

 

Tenho uma rotina onde o usuário escolhe através de uma Lista na modal de Produtos e o sistema informa o formulário os seguintes campos:
código | descrição | espécie | estoque atual.

 

o estoque atual preciso passar nesse formato, para validação de quantidade: 15.00 ou 15,00.

ou seja:

converter de: 15 

para: 15.00 com casas decimais

tem como fazer isso ?

 

Grato,

 

Cesar

Share this post


Link to post
Share on other sites

Existem funções nativas tanto em PHP quanto em JavaScript que podem ajudar na formatação de números para moeda.
Vou listar algumas das funções mais úteis para esse propósito em ambas as linguagens.

PHP

// 1. number_format()
$numero = 1234.56;
echo number_format($numero, 2, ',', '.'); // Saída: 1.234,56

// 2. money_format() (Obsoleta a partir do PHP 7.4)
// Nota: Esta função foi removida no PHP 8.0
setlocale(LC_MONETARY, 'pt_BR');
$numero = 1234.56;
echo money_format('%.2n', $numero); // Saída: R$ 1.234,56

// 3. NumberFormatter (intl extension)
$formatter = new NumberFormatter('pt_BR', NumberFormatter::CURRENCY);
echo $formatter->formatCurrency(1234.56, 'BRL'); // Saída: R$ 1.234,56

// 4. str_replace() (para substituir ponto por vírgula)
$numero = 1234.56;
echo str_replace('.', ',', number_format($numero, 2)); // Saída: 1234,56

JS

// 1. toFixed()
let numero = 1234.56;
console.log(numero.toFixed(2)); // Saída: "1234.56"

// 2. toLocaleString()
let numero = 1234.56;
console.log(numero.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' }));
// Saída: "R$ 1.234,56"

// 3. Intl.NumberFormat
let formatter = new Intl.NumberFormat('pt-BR', {
    style: 'currency',
    currency: 'BRL',
});
console.log(formatter.format(1234.56)); // Saída: "R$ 1.234,56"

// 4. replace() (para substituir ponto por vírgula)
let numero = 1234.56;
console.log(numero.toFixed(2).replace('.', ',')); // Saída: "1234,56"

 

 

Share this post


Link to post
Share on other sites

Amigo Williams, saudações.

Obrigado pela a dica acima.

 

Estou com o seguinte problema.

Quando salvo as entrada de produtos no MySql, salvo a quantidade neste formato: 123.45  <== usando ponto

O problema é quando vou fazer o consumo, preciso fazer uma validação para não digitar acima do estoque real, ou seja, 123.45.

 

o erro que estou encontrando é:
estoque real: 123.45

consumo.....: 2.00   <== aqui dá erro, pois o sistema entende que 2 é maior que 123.45

 

o JS me traz as informações correta do BD é somente nessa validação que não estou entendendo este erro.

 

Observação: para nesse caso preciso salvar a quantidade no formato BRASILEIRO, pois alguns produtos utiliza quantidade após a virgula ou ponto.

 

o form está assim:


<div class="col-md-2">
     <div class="form-group">
           <label for="">Estoque Atual</label>
            <input type="text" class="form-control" id="estoque_atual" name="estoque_atual"
                   style="font-size:15px; font-weight:bold; width:100%; text-align:center;"
                    disabled > 
      </div>
</div> 

<!--A modal carrega os Dados do MySql para selecionar o produto. -->
<div class="modal fade" id="modal_prod">
  <div class="modal-dialog modal-xl">
    <div class="modal-content">

      <div class="modal-header" style="font-size:18px; color:#ffffff; background:#307192;">
         <h4 class="modal-title"><strong>Lista do(s) Produto(s) por Departamento(s)</strong></h4>
      </div>

      <div class="modal-body">
        <table id="tab_prod" class="table table-bordered table-hover">
          <thead>
            <tr>
              <th style="text-align:center;">Cód. Interno</th>
              <th style="text-align:center;">Descrição</th>
              <th style="text-align:center;">ESP</th>
              <th style="text-align:center;">QTDE</th>
              <th style="text-align:center;">Ação</th>
            </tr>
          </thead>
          <tbody>
          
          <?php foreach ($lanca as $lnc) {
            //Variável criada para carregar informação dos Dados para o Botão
            $datalnc = $lnc->idProdutos."*".$lnc->cod_interno."*".$lnc->descricao."*".$lnc->prd_unid."*".$lnc->estoque_atual;                   
            echo '<tr>';
              echo '<td width="20" height="10" style="text-align:center;">'.$lnc->idProdutos.'</td>';
              echo '<td width="250" height="10" style="text-align:left;">'.$lnc->descricao.'</td>';
              echo '<td width="20" height="10" style="text-align:center;">'.$lnc->prd_unid.'</td>';
              echo '<td width="20" height="10" style="text-align:center;">'.number_format($lnc->estoque_atual, 2, ",", ".").'</td>'; 

                echo '<td width="20" style="text-align:center;">            
                        <button type="button" class="btn btn-success btn-prod" 
                          style="margin-right: 2%; padding: 2px 3px;" title="Selecionar Produto"
                          value="'. $datalnc.'" >
                          <span class="fa fa-check"></span>
                        </button></td>';
                            
            echo '</tr>';
                  
            }//Fim do Foreach  ?>
          
          </tbody>
        </table>
      </div>

      <div class="modal-footer justify-content-center" style="background:#BBAAAA;">
        <button type="button" class="btn btn-danger pull-center" data-dismiss="modal">Voltar</button>
      </div>

    </div><!-- /.modal-content -->
  </div><!-- /.modal-dialog -->
</div>

 

 

o JAVASCRIPT, trago assim:


          /*---Função para Capturar o Produto selecionado na Modal---*/
          $(document).on("click",".btn-prod",function(){
            prds = $(this).val();
            infoprd = prds.split("*");
              $("#idProdutos").val(infoprd[0]);
              $("#cod_interno").val(infoprd[1]);
              $("#descricao").val(infoprd[2]);
              $("#prd_unid").val(infoprd[3]);            
              $("#estoque_atual").val(infoprd[4]);  //Campo com os dados do ESTOQUE, ou seja, quantidade: 123.45
              $("#modal_prod").modal("hide");

              //Função para Atualizar o Status do Botão
              statusLimparAgregar()
          });

 

Grato,

 

Cesar

Share this post


Link to post
Share on other sites

Caros amigos, saudações.

 

Após algumas pesquisas e orientação do grupo, consegui fazer a validação de QtdeDigitada X QtdeEstoque,.

 

Observação: não sei se é a forma mais correta, mas atendeu o que preciso.

 

Ficou assim:

          /*---Função para Capturar o Produto selecionado na Modal---*/
          $(document).on("click",".btn-prod",function(){
            prds = $(this).val();
            infoprd = prds.split("*");
              $("#idProdutos").val(infoprd[0]);
              $("#cod_interno").val(infoprd[1]);
              $("#descricao").val(infoprd[2]);
              $("#prd_unid").val(infoprd[3]);            
              $("#estoque_atual").val(infoprd[4]);  
              $("#modal_prod").modal("hide");

              //Função para Atualizar o Status do Botão
              statusLimparAgregar()
          });
 
          $("#btn-agregar").on("click",function(){   
            var qtde = document.getElementById("qtde").value;     

            //Verifica Duplicidade de Código
            if (verificar(infoprd[0])) {
              //Chama a Modal com Alerta.
              $("#modal_mensagem").modal();
            }else if(verificarEstoque(infoprd[4])){           
              //Chama a Modal com Alerta.
              $("#modal_qtdemaior").modal();
            }else{                           
               if(qtde == ""){
                //Chama a Modal com Alerta.
                $("#modal_quantidade").modal();
               } else {
                 html = "<tr>";
                 html += "<td width='10%' height='10' style='text-align:center;'><input type='hidden' name='id_prds[]' value='"+infoprd[0]+"'>"+infoprd[0]+"</td>";
                 html += "<td width='32%' height='10'><input type='hidden' name='descricao[]' value='"+infoprd[2]+"'>"+infoprd[2]+"</td>";
                 html += "<td width='10%' height='10' style='text-align:center;'>"+
                         "<input type='hidden' name='esp[]' value='"+infoprd[3]+"'>"+infoprd[3]+
                         "<input type='hidden' name='estoq[]' value='"+infoprd[4]+"'></td>";
                 html += "<td width='12%' height='10' style='text-align:center;'><input type='hidden' name='qtde[]' value='"+qtde+"'>"+qtde+"</td>";                
                 html += "<td width='10%' height='10' style='text-align:center;'>"+
                          "<button type='button' class='btn btn-danger btn-remove-produto' style='margin-right: 1%; padding: 1px 2px;' title='Remover Item da Lista'>"+
                          "<span class='fa fa-trash'></span></button></td>";                       
                 html += "</tr>";

                $("#tbventas tbody").append(html);

                //Função para Somar os Itens do Lançamento
                somar();     

                $("#btn-agregar").val(null);
                $("#descricao").val(null);
                $("#cod_interno").val(null);    
                $("#prd_unid").val(null);            
                $("#estoque_atual").val(null);
                $("#qtde").val(null);

                //Desabilita Buttons
                document.getElementById("btn-limp").disabled = true;                                     
                document.getElementById("btn-agregar").disabled = true;     

              }//Fim do IF-qtde      

            }//Fim do IF-verificar
              
          });//Fim da Função btn-agregar      
          
      });


      /* Remover ITEM da Lista de Produtos */
      $(document).on("click",".btn-remove-produto", function(){
          $(this).closest("tr").remove();   

          //Função para Somar os Itens do Lançamento
          somar();  

          //Função para Atualizar o Status do Botão  
          statusButton();  

      });  


      //Função para Impedir Duplicidade de Produtos
      function verificar(idProdutos){
          var existe = 0;
          $('input[name^="id_prds"]').each(function() {
              if ($(this).val() == idProdutos) {
                  existe = 1;
              }
          });
          return existe;
      }      


      //Função para Impedir Quantidade maior que do Estoque
      function verificarEstoque(){

        //Variável para retonar o resultado
        var exists = 0;

        //Variáveis recebe o valor do Formulário
        var qts = document.getElementById('qtde').value;
        var stq = document.getElementById('estoque_atual').value;

        // Substitui vírgula por ponto, remove caracteres não numéricos e converte para float
        valorQtde = parseFloat(qts.replace(/[^\d,-]/g, '').replace(',', '.'));        
        valorEstq = parseFloat(stq.replace(/[^\d,-]/g, '').replace(',', '.'));

        if(valorQtde > valorEstq){
          exists = 1;
          //Limpa Inputs e Button
          $("#btn-agregar").val(null);
          $("#descricao").val(null);
          $("#cod_interno").val(null);    
          $("#prd_unid").val(null);            
          $("#estoque_atual").val(null);
          $("#qtde").val(null);
        }
        return exists;
      }      



 

Share this post


Link to post
Share on other sites
3 horas atrás, violin101 disse:

Amigo Williams, saudações.

Obrigado pela a dica acima.

 

Estou com o seguinte problema.

Quando salvo as entrada de produtos no MySql, salvo a quantidade neste formato: 123.45  <== usando ponto

O problema é quando vou fazer o consumo, preciso fazer uma validação para não digitar acima do estoque real, ou seja, 123.45.

 

o erro que estou encontrando é:
estoque real: 123.45

consumo.....: 2.00   <== aqui dá erro, pois o sistema entende que 2 é maior que 123.45

 

o JS me traz as informações correta do BD é somente nessa validação que não estou entendendo este erro.

 

Observação: para nesse caso preciso salvar a quantidade no formato BRASILEIRO, pois alguns produtos utiliza quantidade após a virgula ou ponto.

 

o form está assim:



<div class="col-md-2">
     <div class="form-group">
           <label for="">Estoque Atual</label>
            <input type="text" class="form-control" id="estoque_atual" name="estoque_atual"
                   style="font-size:15px; font-weight:bold; width:100%; text-align:center;"
                    disabled > 
      </div>
</div> 

<!--A modal carrega os Dados do MySql para selecionar o produto. -->
<div class="modal fade" id="modal_prod">
  <div class="modal-dialog modal-xl">
    <div class="modal-content">

      <div class="modal-header" style="font-size:18px; color:#ffffff; background:#307192;">
         <h4 class="modal-title"><strong>Lista do(s) Produto(s) por Departamento(s)</strong></h4>
      </div>

      <div class="modal-body">
        <table id="tab_prod" class="table table-bordered table-hover">
          <thead>
            <tr>
              <th style="text-align:center;">Cód. Interno</th>
              <th style="text-align:center;">Descrição</th>
              <th style="text-align:center;">ESP</th>
              <th style="text-align:center;">QTDE</th>
              <th style="text-align:center;">Ação</th>
            </tr>
          </thead>
          <tbody>
          
          <?php foreach ($lanca as $lnc) {
            //Variável criada para carregar informação dos Dados para o Botão
            $datalnc = $lnc->idProdutos."*".$lnc->cod_interno."*".$lnc->descricao."*".$lnc->prd_unid."*".$lnc->estoque_atual;                   
            echo '<tr>';
              echo '<td width="20" height="10" style="text-align:center;">'.$lnc->idProdutos.'</td>';
              echo '<td width="250" height="10" style="text-align:left;">'.$lnc->descricao.'</td>';
              echo '<td width="20" height="10" style="text-align:center;">'.$lnc->prd_unid.'</td>';
              echo '<td width="20" height="10" style="text-align:center;">'.number_format($lnc->estoque_atual, 2, ",", ".").'</td>'; 

                echo '<td width="20" style="text-align:center;">            
                        <button type="button" class="btn btn-success btn-prod" 
                          style="margin-right: 2%; padding: 2px 3px;" title="Selecionar Produto"
                          value="'. $datalnc.'" >
                          <span class="fa fa-check"></span>
                        </button></td>';
                            
            echo '</tr>';
                  
            }//Fim do Foreach  ?>
          
          </tbody>
        </table>
      </div>

      <div class="modal-footer justify-content-center" style="background:#BBAAAA;">
        <button type="button" class="btn btn-danger pull-center" data-dismiss="modal">Voltar</button>
      </div>

    </div><!-- /.modal-content -->
  </div><!-- /.modal-dialog -->
</div>

 

 

o JAVASCRIPT, trago assim:



          /*---Função para Capturar o Produto selecionado na Modal---*/
          $(document).on("click",".btn-prod",function(){
            prds = $(this).val();
            infoprd = prds.split("*");
              $("#idProdutos").val(infoprd[0]);
              $("#cod_interno").val(infoprd[1]);
              $("#descricao").val(infoprd[2]);
              $("#prd_unid").val(infoprd[3]);            
              $("#estoque_atual").val(infoprd[4]);  //Campo com os dados do ESTOQUE, ou seja, quantidade: 123.45
              $("#modal_prod").modal("hide");

              //Função para Atualizar o Status do Botão
              statusLimparAgregar()
          });

 

Grato,

 

Cesar


Explicando:

O erro ocorre porque você está comparando strings em vez de números, e na comparação de strings, "2.00" é considerado maior que "123.45" (porque a comparação é feita caractere por caractere, e "2" vem depois de "1" alfabeticamente).


Para resolver este problema, precisa garantir que está trabalhando com números em vez de strings, e que esta usando o formato correto para comparação. Vou sugerir uma solução que mantém o formato brasileiro para exibição, mas usa o formato com ponto para cálculos internos.

// Função para formatar número para o formato brasileiro
function formatarNumero(numero) {
    return numero.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
}

// Função para converter string no formato brasileiro para número
function converterParaNumero(str) {
    return parseFloat(str.replace('.', '').replace(',', '.'));
}

// Modifique a função existente
$(document).on("click", ".btn-prod", function() {
    prds = $(this).val();
    infoprd = prds.split("*");
    $("#idProdutos").val(infoprd[0]);
    $("#cod_interno").val(infoprd[1]);
    $("#descricao").val(infoprd[2]);
    $("#prd_unid").val(infoprd[3]);
    
    // Armazena o valor numérico em um atributo data-
    var estoqueNumerico = parseFloat(infoprd[4]);
    $("#estoque_atual").val(formatarNumero(estoqueNumerico))
                       .data('valor-numerico', estoqueNumerico);
    
    $("#modal_prod").modal("hide");

    statusLimparAgregar();
});

// Função para validar o consumo
function validarConsumo() {
    var estoqueAtual = $("#estoque_atual").data('valor-numerico');
    var consumo = converterParaNumero($("#campo_consumo").val());

    if (consumo > estoqueAtual) {
        alert("O consumo não pode ser maior que o estoque atual.");
        return false;
    }
    return true;
}

// Adicione este evento ao campo de consumo
$("#campo_consumo").on('blur', function() {
    $(this).val(formatarNumero(converterParaNumero($(this).val())));
});

// Use esta função no submit do formulário
$("form").on('submit', function(e) {
    if (!validarConsumo()) {
        e.preventDefault(); // Impede o envio do formulário se a validação falhar
    }
});

Explicação das modificações:

  1. formatarNumero(): Formata um número para o estilo brasileiro (123,45).
  2. converterParaNumero(): Converte uma string no formato brasileiro para um número.
  3. Na função de click do produto, armazenamos o valor numérico do estoque em um atributo data- e exibir o valor formatado no campo.
  4. validarConsumo(): Compara o consumo com o estoque atual, ambos como números.
  5. Adicionado um evento blur ao campo de consumo para formatá-lo automaticamente.
  6. Adicionado uma validação no submit do formulário.

Com essas modificações, você pode:

  1. Exibir os números no formato brasileiro (123,45).
  2. Armazenar internamente os valores como números para comparações corretas.
  3. Validar se o consumo é maior que o estoque atual.

Lembre-se de ajustar os IDs dos campos (#campo_consumo, por exemplo) para corresponder aos seus IDs reais no HTML.

Além disso, no PHP, quando for salvar os dados no banco de dados, você precisará converter o valor de volta para o formato com ponto:
 

$consumo = str_replace(',', '.', $_POST['campo_consumo']);

Isso garantirá que o valor seja salvo corretamente no MySQL.

Esta abordagem deve resolver o problema de comparação, mantendo a exibição no formato brasileiro e permitindo cálculos e comparações precisas.

Share this post


Link to post
Share on other sites

Amigo Williams,  saudações. 

 

Nesse caso o melhor é salvar e configurar o BD como decimal ou valor moeda ?

 

Grato, 

 

Cesar 

Share this post


Link to post
Share on other sites

double 10,2 para mysql, postgres, float para mongodb etc

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By joao b silva
      Tenho uma pequena aplicação em php que gera arquivos pdf com a MPDF e envia email com a PHPMAILER. De repente a app parou de enviar os emails  e apresenta a seguinte mensagem de erro:
       
      Error PHPMailer: SMTP Error: Could not authenticate.
       
      Faço uso de um hotmail para a configuração do PHPMAILER.
    • By violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos.
       
      Quando programava em DOS. utilizava algumas teclas de atalho para: SALVAR / EDITAR / EXCLUIR / IMPRIMIR.
      Por exemplo:
      Salvar ----> ALT+S
      Editar ----> ALT+E
      Excluir --> ALT+X
      Imprimir -> ALT+I

      no PHP tem como colocar esses ATALHOS nos button, para o usuário trabalhar com esses atalhos e como seria ?

      grato,
       
      Cesar
    • By violin101
      Caros Amigos, saudações.
       
      Por favor, me perdoa em postar uma dúvida.
       
      Preciso criar uma Rotina onde o usuário possa buscar na Base de Dados de Produtos, tanto por Código e Descrição, ou seja:
      - caso o usuário digita o Código, mostra os dados do Produto.
      - caso o usuário digita a Descrição, mostra os dados do Produto
       
      Fiz uma Rotina, onde o usuário digita a DESCRIÇÃO com a função AUTOCOMPLETE.    <=== está funcionando certinho.
       
      Minha dúvida é como faço para DIGITAR o Código e mostrar os dados também.
       
      o meu AutoComplete na MODEL está assim.
      public function autoCompleteProduto($q){ $this->db->select('*' ) ->from('produtos') ->where('produtos.statusProd',1) ->like('descricao', $q) ->limit(5) ->order_by('descricao', 'ASC'); $query = $this->db->get(); if ($query->num_rows() > 0) { foreach ($query->result_array() as $row) { $row_set[] = ['label' => str_pad($row['idProdutos'], '5', '0', STR_PAD_LEFT).' - '.$row['descricao'], 'id' => $row['idProdutos'], 'descricao' => $row['descricao'], 'cod_interno' => $row['cod_interno'], 'prd_unid' => $row['prd_unid'], 'estoque_atual' => $row['estoque_atual'] ]; } echo json_encode($row_set); } }  
       
      no CONTROLLER está assim:
      public function autoCompleteProduto() { $this->load->model('estoque/lancamentos_model'); if (isset($_GET['term'])) { $q = strtolower($_GET['term']); $this->lancamentos_model->autoCompleteProduto($q); } }  
       
      na VIEW está assim:
      <div class="col-md-10"> <label for="idProdutos">Produto:</label> <input type="hidden" name="idProdutos" id="idProdutos"> <input type="text" class="form-control" id="descricao" name="descricao" style="font-size:15px; font-weight:bold;" placeholder="Pesquisar por descrição do produto" disabled> </div>  
      VIEW + JAVASCRIPT
       
      //Função para trazer os Dados pelo o AutoComplete. function resolveAutocomplete() { $("#descricao").autocomplete({ source: "<?php echo base_url(); ?>estoque/lancamentos/autoCompleteProduto/", minLength: 2, select: function (event, ui) { $("#idProdutos").val(ui.item.id); $("#cod_interno").val(ui.item.cod_interno); $("#descricao").val(ui.item.descricao); $("#prd_unid").val(ui.item.prd_unid); $("#estoque_atual").val(ui.item.estoque_atual); $("#qtde").focus(); } }); } // inicia o autocomplete resolveAutocomplete();  
      Grato,
       
      Cesar
    • By belann
      Olá!
       
      Estou tentando criar um projeto laravel e está dando o seguinte erro 
      curl error 60 while downloading https://getcomposer.org/versions: SSL certificate problem: unable to get local issu
        er certificate
      Já tentei atualizar o composer, mas dá o mesmo erro acima.
    • By violin101
      Caros amigos, saudações.
       
      Estou com uma dúvida de validação de INPUT com função moeda.
       
      Tenho um input onde o usuário digita um valor qualquer, por exemplo: 1.234,56
      o problema é quando precisa atualizar o valor.
       
      Quando o usuário atualizar o input fica assim: 1.234,
       
      como faço para atualizar as casas decimais, conforme o valor for sendo alterado ?
       
      o input está assim:
       
      <div class="col-md-2"> <label for="">Valor Unitário</label> <input type="text" class="form-control" id="estoqprod" name="estoqprod" style="font-size:15px; font-weight:bold; width:100%; text-align:center;" placeholder="0,00" OnKeyUp="calcProd();" onkeypress="return(FormataMoeda(this,'.',',',event))" > </div>  
      a função para formatar o input para moeda está assim:
      obs.: a Função CalcProd está executando corretamente
      function calcProd(){ //Obter valor digitado do produto var estoq_prod = document.getElementById("estoqprod").value; //Remover ponto e trocar a virgula por ponto while (estoq_prod.indexOf(".") >= 0) { estoq_prod = estoq_prod.replace(".", ""); } estoq_prod = estoq_prod.replace(",","."); //Obter valor digitado do produto var prod_qtde = document.getElementById("qtde").value; //Remover ponto e trocar a virgula por ponto while (prod_qtde.indexOf(".") >= 0) { prod_qtde = prod_qtde.replace(".", ""); } prod_qtde = prod_qtde.replace(",","."); //Calcula o Valor do Desconto if (prod_qtde > 0 && estoq_prod > 0) { calc_total_produto = parseFloat(prod_qtde) - parseFloat(estoq_prod); var numero = calc_total_produto.toFixed(2).split('.'); //Calculo para não deixar GRAVAR valores negativos if (calc_total_produto < 0 ) { numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.') * -1; document.getElementById("qtdeTotal").value = numero.join(','); } else { numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.'); document.getElementById("qtdeTotal").value = numero.join(','); } } else { if (estoq_prod > 0) { document.getElementById("qtdeTotal").value = document.getElementById("estoqprod").value; } else { document.getElementById("qtdeTotal").value = "0,00"; } } } /*---Função para Formatar Campo para Moeda [R$]---*/ function FormataMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e){ var sep = 0; var key = ''; var i = j = 0; var len = len2 = 0; var strCheck = '0123456789'; var aux = aux2 = ''; var whichCode = (window.Event) ? e.which : e.keyCode; if (whichCode == 13) return true; key = String.fromCharCode(whichCode); // Valor para o código da Chave if (strCheck.indexOf(key) == -1) return false; // Chave inválida len = objTextBox.value.length; for(i = 0; i < len; i++) if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break; aux = ''; for(; i < len; i++) if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i); aux += key; len = aux.length; if (len == 0) objTextBox.value = ''; if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux; if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux; if (len > 2) { aux2 = ''; for (j = 0, i = len - 3; i >= 0; i--) { if (j == 3) { aux2 += SeparadorMilesimo; j = 0; } aux2 += aux.charAt(i); j++; } objTextBox.value = ''; len2 = aux2.length; for (i = len2 - 1; i >= 0; i--) objTextBox.value += aux2.charAt(i); objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len); } return false; }  
      Grato,
       
      Cesar
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.