Ir para conteúdo
violin101

JAVASCRIPT - Verificar duplicidade de Código

Recommended Posts

Caros amigos

 

saudações...

 

Sou um pouco novato em JAVASCRIPT, gostaria de tirar uma dúvida com os amigos.

 

Tenho uma Tabela onde o usuário escolhe o Produto e através de um botão agregar, o sistema cria a Tabela. ATÉ AQUI TUDO BEM.

 

Minha dúvida:

como consigo verificar se o Código de algum produto já foi incluído ?

caso foi, o sistema avisa que já foi informado o código anteriormente.

 

Código em Javascript

          //Status dos Botões LIMPAR | AGREGAR | ADICIONAR - iniciar como desabilitado.
          document.getElementById("btn-limp").disabled = true;
          document.getElementById("btn-agregar").disabled = true;             
          document.getElementById("adicionar").disabled = true;


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

              //Função para Atualizar o Status do Botão
              statusLimparAgregar()              
          });
 
//Nessa parte do AGREGAR gostaria de veririfcar
//se houve ou não duplicidade de código do produto
//informado

           $("#btn-agregar").on("click",function(){                   
            //Monta a Tabela dos Produtos a serem Devolvidos
            html = "<tr>";
              html += "<td width='10%' height='10'><input type='hidden' name='id_prds[]' value='"+infoprd[0]+"'>"+infoprd[1]+"</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]+"</td>";
              html += "<td width='12%' height='10' style='text-align:center;'><input type='hidden' name='qtd_prod[]' value='"+infoprd[5]+"'>"+infoprd[5]+"</td>";
              html += "<td width='14%' height='10' style='text-align:right;'><input type='hidden' name='vlr_unit[]' value='"+infoprd[4]+"'>"+infoprd[4]+"</td>";              
              html += "<td width='14%' height='10' style='text-align:right;'><input type='hidden' name='vlr_total[]' value='"+infoprd[6]+"'>"+infoprd[6]+"</td>";     
              html += "<td width='10%' height='10' style='text-align:center;'>"+
                        "<button type='button' class='btn btn-danger btn-remove-produto' style='padding: 2px 5px;' title='Remover Item da Lista'>"+
                        "<span class='fa fa-remove'></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);                
            $("#vlr_unit").val(null);                     
            $("#qtd_prod").val(null);     
            $("#vlr_total").val(null);  

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

          });          

 

Grato,

 

Cesar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique os existentes, igual você tem a função que soma todos os valores, verifique também se existem códigos iguais, e caso exista, não adiciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo quimera

 

saudações...

 

É justamente nessa parte que não estou conseguindo fazer.

 

Abaixo posto o código fonte completo da VIEW que estou trabalhando.

 

Se puder me ajudar, agradeço grandemente.

  <!-- DataTables -->
  <link rel="stylesheet" href="<?php echo base_url();?>templates/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css">  

  <?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>
 
  <!-- Content Wrapper. Contains page content -->
  <div class="content-wrapper">
    <!-- Content Header (Page header) -->
    <section class="content-header">
      <h1>
        Adicionar
      </h1>
      <ol class="breadcrumb">
        <li><a href="<?php echo base_url()?>contas/"><i class="fa fa-dashboard"></i> Home</a></li>
        <li class="active">Lançamento</li>
      </ol>
    </section>


    <section class="content">
        
      <!-- Mensagem de Sucesso / Erro -->
      <?php $this->load->view('vitrine/acao'); ?>

      <div class="row">
        <!-- left column -->
        <div class="col-md-12">
          <!-- general form elements -->
          <div class="box box-primary">
            <div class="box-header with-border">
              <h3 class="box-title">Devolução do Lançamento nº.&nbsp;
                <strong><?php echo $result->num_lcto; ?></strong>
              </h3>
            </div>
            <!-- /.box-header -->
      
            <?php if ($custom_error != '') {
                echo '<div class="alert alert-danger"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>' . $custom_error . '</div>';
            } ?> 
      
            <!-- form start -->
            <form action="<?php echo current_url(); ?>" id="frmDevolve" method="post" role="form" >
              <?php echo form_hidden('idlcto', $result->idlcto) ?>
              
              <div class="box-body">

                <div class="col-lg-2">
                    <label for="dtaentr">Data Devolução&nbsp;<span class="required">*</span></label>
                    <input type="date" id="dtaentr" name="dtaentr" class="form-control" 
                       style="width:105%;" value="" />
                </div>

                <div class="col-lg-2">
                    <label for="num_nf">Nota Fiscal</label>
                    <input id="num_nf" type="text" name="num_nf" class="form-control"
                           style="width:100%; font-size:15px; font-weight:bold;"
                           value="<?php echo $result->num_nf; ?>" disabled />
                </div>                       

                <div class="col-lg-8">
                    <label for="nome_for">Razão Social</label>
                    <input id="nome_for" type="text" name="nome_for" class="form-control"
                           style="width:100%; font-size:15px; font-weight:bold;"
                           value="<?php echo $result->nome_for; ?>" disabled />
                </div>
                <div class="clearfix"></div>    
                <br/>  

                <div class="col-lg-12">
                  <label for="obs_lcto">Observação<span class="required">&nbsp;*</span></label>
                  &nbsp;&nbsp;<small class="caracterObs" style="font-size:14px;"></small>
                  <textarea id="obs_lcto" name="obs_lcto" cols="5" rows="1" class="form-control" 
                            style="width:100%; resize: none;" maxlength="150" 
                            placeholder="Informe uma Observação para realizar a Devolução."></textarea>
                </div>                          
                <div class="clearfix"></div>    
                <br/>  

                <div class="col-lg-10">
                    <label for="idProdutos">Produto:</label>
                    <div class="input-group">
                    <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> 
                        <span class="input-group-btn">
                            <button class="btn btn-warning" type="button" data-toggle="modal" 
                                    data-target="#modal_prod" ><span class="fa fa-search"></span> Pesquisar
                            </button>
                        </span>
                    </div>
                </div> 

                <div class="col-lg-2"> 
                  <label for="">&nbsp;</label>
                  <input type="button" id="btn-limp" style="width:100%;" class="btn btn-danger" value="Limpar" 
                         onClick="limpa()">                                      
                </div>  


                <div class="clearfix"></div>    
                          
                <div class="col-lg-2">
                  <label for="">Código </label>
                  <input type="text" class="form-control" id="cod_interno" name="cod_interno" disabled
                         style="font-size:15px; font-weight:bold; width:100%;" > 
                </div>    

                <div class="col-lg-2">
                  <label for="">Espécie </label>
                  <input type="text" class="form-control" id="prd_unid" name="prd_unid" disabled
                         style="font-size:15px; font-weight:bold; width:100%;" > 
                </div>             
    

                <div class="col-lg-2">
                  <label for="">Valor Unitário </label>
                  <input type="text" class="form-control" id="vlr_unit" name="vlr_unit" disabled
                         style="font-size:15px; font-weight:bold; width:100%;" > 
                </div>                                    

                <div class="col-lg-2">
                  <label for="">Qtde p/ Devolver </label>
                  <input type="text" class="form-control" id="qtd_prod" name="qtd_prod" 
                         style="font-size:15px; font-weight:bold; width:100%;" 
                         placeholder="0" disabled > 
                </div>     


                <div class="col-lg-2">
                  <label for="">Valor Total </label>
                  <input type="text" class="form-control" id="vlr_total" name="vlr_total" 
                         style="font-size:15px; font-weight:bold; width:100%; text-align:right;" 
                         placeholder="0,00" disabled /> 
                </div> 

                 <div class="col-lg-2">
                    <label for="">&nbsp;</label>
                    <button id="btn-agregar" type="button" class="btn btn-success btn-flat btn-block">
                      <span class="fa fa-plus"></span> Agregar
                    </button>
                </div>                               

                <div class="clearfix"></div> 
                <br/>

                <div class="col-lg-12">
                  <!-- Monta uma Menu Fixo da Tabela -->
                  <div class="row invoice-info" style="background:#A6CFCF; height:35px; line-height:32px;">
                    <div class="col-sm-1 invoice-col" style="text-align:center; width:10%;">
                      <label style="font-size: 15px;">Código</label>
                    </div>
                    <div class="col-sm-5 invoice-col" style="text-align:center; width:32%;">
                      <label style="font-size: 15px;">Descrição Produto</label>
                    </div>
                    <div class="col-sm-1 invoice-col" style="text-align:center; width:10%;">
                      <label style="font-size: 15px;">ESP</label>
                    </div> 
                    <div class="col-sm-1 invoice-col" style="text-align:center; width:12%;">
                      <label style="font-size: 15px;">QTDE</label>
                    </div>                
                    <div class="col-sm-1 invoice-col" style="text-align:center; width:14%;">
                      <label style="font-size: 15px;">Vr Unit</label>
                    </div> 
                    <div class="col-sm-1 invoice-col" style="text-align:center; width:14%;">
                      <label style="font-size: 15px;">Vr Total</label>
                    </div>                                           
                    <div class="col-sm-1 invoice-col" style="text-align:center; width:8%;">
                      <label style="font-size: 15px;">Ação</label>
                    </div>                  
                  </div>
                </div><!-- Fim DIV Menu Tabela --> 

                <div style="overflow:auto; width:100%; height:226px; border:solid 1px #CBE2E2;"> 
                  <table id="tbventas" class="table table-bordered table-striped table-hover">   
                    <tbody>
                                 
                    </tbody>
                  </table> 
                </div>

                <div class="clearfix"></div> 
                <br/>

                <div class="col-md-3">
                  <div class="input-group">
                    <span class="input-group-addon">Subtotal:</span>
                    <input type="text" class="form-control" placeholder="0,00" id="subtotal" name="subtotal"
                           style="font-size:15px; font-weight:bold; width:100%; text-align:right;" readonly>
                  </div>
                </div>                                       


              </div><!-- /.box-body -->

              <div class="box-footer" style="text-align:center;">
                <input type="hidden" id="idNot" name="idNot" value="<?php echo $result->num_nf; ?>" />
                <input type="hidden" id="idFor" name="idFor" value="<?php echo $result->fornecedor_idfornecedor; ?>" />
                <input type="hidden" id="idCli" name="idCli" value="<?php echo $cliente->idClientes; ?>" />
                <a href="<?php echo base_url() ?>contas/devolucao" id="" class="btn btn-danger"><i class="fa fa-undo"></i> Voltar</a>
                &nbsp;&nbsp;
                <button type="submit" id="adicionar" class="btn btn-primary" >Adicionar</button>
              </div>

            </form>
          
          </div><!-- /.box -->

        </div>

      </div>

    </section>

</div>



<div class="modal fade" id="modal_prod">
  <div class="modal-dialog" style="width:80%;">
    <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) Lançado(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->vlr_unit."*".$lnc->qtd_prod."*".$lnc->vlr_total;                   
            echo '<tr>';
              echo '<td width="20" height="10" style="text-align:center;">'.$lnc->cod_interno.'</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;">'.$lnc->qtd_prod.'</td>'; 

              //Verifica se existe quantidade suficiente para devolver.            
              if($lnc->estoque_atual < $lnc->qtd_prod){
                echo '<td width="20" style="text-align:center;">            
                        <button type="button" class="btn btn-cinza btn-prod" 
                          style="margin-right: 2%; padding: 5px 7px;" title="Quantidade Insuficiente para Devolver" disabled >
                          <span class="fa fa-check"></span>
                        </button></td>';
              } else {
                echo '<td width="20" style="text-align:center;">            
                        <button type="button" class="btn btn-success btn-prod" 
                          style="margin-right: 2%; padding: 5px 7px;" 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" style="text-align:center; background:#BBAAAA;">
        <button type="button" class="btn btn-danger pull-center" data-dismiss="modal">Voltar</button>
      </div>

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



<?php $this->load->view('vitrine/footer'); ?>


<script src="<?php echo base_url();?>templates/bower_components/datatables.net/js/jquery.dataTables.js"></script>
<script src="<?php echo base_url();?>templates/bower_components/datatables.net-bs/js/dataTables.bootstrap.js"></script>
<script>
  //Tabela Produtos
  $(function () {
    $('#tab_prod').DataTable({
      'paging'      : true,
      'lengthChange': false,
      'searching'   : true,
      'ordering'    : true,
      'info'        : true,
      'autoWidth'   : false
    })
  })
</script>

<script src="<?php echo base_url()?>templates/dist/js/jquery.validate.js"></script>
<script type="text/javascript">
      $(document).ready(function(){
          $('#frmDevolve').validate({
              rules :{
                    dtaentr:{ required: true},
                    num_nf:{ required: true},
                    obs_lcto:{ required: true}
              },
              messages:{
                    dtaentr:{ required: '<span style="color:#ff0000;">Campo Requerido</span>'},
                    num_nf:{ required: '<span style="color:#ff0000;">Campo Requerido</span>'},
                    obs_lcto:{ required: '<span style="color:#ff0000;">Campo Requerido</span>'}
              },
              
              errorClass: "help-inline",
              errorElement: "span",
              highlight:function(element, errorClass, validClass) {
                  $(element).parents('.form-group').addClass('error');
              },
              unhighlight: function(element, errorClass, validClass) {
                  $(element).parents('.form-group').removeClass('error');
                  $(element).parents('.form-group').addClass('success');
              } 
          });
       

          /*Número de caracteres permitido*/
          $(document).on("input", "#obs_lcto", function() {
              var limite = 151;
              var informativo = " 150 caracteres.";
              var caracteresDigitados = $(this).val().length;
              var caracteresRestantes = limite - caracteresDigitados;

              if (caracteresRestantes <= 0) {
                  var categObs = $("textarea[name=categObs]").val();
                  $("textarea[name=categObs]").val(categObs.substr(0, limite));
                  $(".caracterObs").text("- Máximo permitido de " + informativo);
              } else {
                  $(".caracterObs").text("- Digitou " + caracteresDigitados + " de " + informativo);
              }
          });

          //Status dos Botões LIMPAR | AGREGAR | ADICIONAR - iniciar como desabilitado.
          document.getElementById("btn-limp").disabled = true;
          document.getElementById("btn-agregar").disabled = true;             
          document.getElementById("adicionar").disabled = true;


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

              //Função para Atualizar o Status do Botão
              statusLimparAgregar()              
          });
 
 
          $("#btn-agregar").on("click",function(){              
            //Monta a Tabela dos Produtos a serem Devolvidos
            html = "<tr>";
              html += "<td width='10%' height='10'><input type='hidden' name='id_prds[]' value='"+infoprd[0]+"'>"+infoprd[1]+"</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]+"</td>";
              html += "<td width='12%' height='10' style='text-align:center;'><input type='hidden' name='qtd_prod[]' value='"+infoprd[5]+"'>"+infoprd[5]+"</td>";
              html += "<td width='14%' height='10' style='text-align:right;'><input type='hidden' name='vlr_unit[]' value='"+infoprd[4]+"'>"+infoprd[4]+"</td>";              
              html += "<td width='14%' height='10' style='text-align:right;'><input type='hidden' name='vlr_total[]' value='"+infoprd[6]+"'>"+infoprd[6]+"</td>";     
              html += "<td width='10%' height='10' style='text-align:center;'>"+
                        "<button type='button' class='btn btn-danger btn-remove-produto' style='padding: 2px 5px;' title='Remover Item da Lista'>"+
                        "<span class='fa fa-remove'></span></button></td>";
            html += "</tr>";

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

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

            $("#btn-agregar").val(null);
            $("#idProdutos").val(null);
            $("#descricao").val(null);
            $("#cod_interno").val(null);    
            $("#prd_unid").val(null);                
            $("#vlr_unit").val(null);                     
            $("#qtd_prod").val(null);     
            $("#vlr_total").val(null);  

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

          });          

      });     


      function limpa() {
          //Limpa Inputs
          if(document.getElementById('idProdutos').value!="") {
            document.getElementById('descricao').value="";
            document.getElementById('cod_interno').value="";
            document.getElementById('prd_unid').value="";
            document.getElementById('vlr_unit').value="";            
            document.getElementById('qtd_prod').value="";
            document.getElementById('vlr_total').value="";      
            //Desabilita Buttons
            document.getElementById("btn-limp").disabled = true;                                     
            document.getElementById("btn-agregar").disabled = true;            
        }
      }


      /* 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();
      });  


      function somar(){
          subtotal = 0;
          $("#tbventas tbody tr").each(function(){
            subtotal = subtotal + parseFloat($(this).find("td:eq(5)").text());
          });

          //Preenche o INPUT do subtotal
          $("input[name=subtotal]").val(subtotal.toFixed(2));     
          
          //Função para Atualizar o Status do Botão 
          statusButton();
      }   


      function statusLimparAgregar(){
          //valida conteudo do input 
          if ($("input[name=idProdutos]").val() != "" ) {
              //habilita o botão           
              document.getElementById("btn-limp").disabled = false;
              document.getElementById("btn-agregar").disabled = false;              
          } else {
             //desabilita o botão se o conteúdo do input ficar em branco
             document.getElementById("btn-limp").disabled = true;                                     
             document.getElementById("btn-agregar").disabled = true;
          }        
      }  


      function statusButton(){
          //valida conteudo do input 
          if ($("input[name=subtotal]").val() != "" && $("input[name=subtotal]").val() != 0) {
              //habilita o botão
              document.getElementById("adicionar").disabled = false;
          } else {
             //desabilita o botão se o conteúdo do input ficar em branco
             document.getElementById("adicionar").disabled = true;
          }        
      } 


    /* Permite digitar apenas Números.: 1234567890 */
     document.getElementById("num_nf").onkeypress = function(e) {
     var chr = String.fromCharCode(e.which);
     if ("1234567890".indexOf(chr)<0)
     return false;
     };   


    /* Permite digitar apenas Números.: 1234567890 */
     document.getElementById("qtde").onkeypress = function(e) {
     var chr = String.fromCharCode(e.which);
     if ("1234567890".indexOf(chr)<0)
     return false;
     };          
 


</script>

 

 

Obrigado,

 

Cesar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por Thiago Duarte
      Oi, gostaria de arrastar imagem e ao soltar formar bloco html, meu bloco de html ficaria com nome, content-1.html, content-2.html, etc
       
      Alguem pode me ajudar?
    • Por belann
      Olá!
       
      Estou fazendo o upload de arquivos com fetch dessa forma
      fetch(url, {
              method: 'POST',
              headers: {'Content-Type': 'multipart/form-data',},
              body: formData 
          }).catch((error) => (console.log("Problemas com o Upload"), error));
       
      estou usando input type=file
      e criando uma const formData = new FormData(); 
      mas não faz e não dá nenhum erro.
      estou fazendo o upload com a url="http://localhost/dashboard/dados".
    • Por joeythai
      Boa tarde pessoal,
       
      Eu criei um formulário em que tenho 3 interações: evento click, change e uma chamada ajax. No evento on change ("select#removal_table_from" )eu faço uma chamada ajax onde eu passo como parametro o id do item selecionado e construo uma tabela dinamica com o próprio javascript, após isto, tenho um input em que o usuario coloca um valor de percentual para que eu possa preencher em 3 colunas da tabela que foi criada dinamicamente: moto_atualizado, carro_atualizado e caminhao_atualizado, até aí tudo bem, o codigo está fazendo isso, porém, como a tabela é criada dinamicamente eu preciso de alguma forma enviar o arrayData para meu backend mas quando faço o calculo dentro do loop apos resposta do meu ajax, os valores desses 3 campos chegam como null, não sei se é possível fazer o que pretendo ou se é ainda não sei como faz
       
      <code>
           $(document).ready(function (event) {   let arrayData = []; let percentage; let removal_vehicle; let removal_motorcycle; let removal_tuck; let apply_removal = $('#apply_removal');   // apply_removal.on('click', function () { // percentage = $('#percentage').val();   // $('.table-body tr').each(function () {   // let veiculo = $(this).find('.veiculo').text(); // let moto = $(this).find('.moto').text(); // let caminhao = $(this).find('.caminhao').text();   // let removal_vehicle = parseFloat(veiculo) + (parseFloat(veiculo) * parseFloat(percentage)) / 100; // let removal_motorcycle = parseFloat(moto) + (parseFloat(moto) * parseFloat(percentage)) / 100; // let removal_tuck = parseFloat(caminhao) + (parseFloat(caminhao) * parseFloat(percentage)) / 100;   // arrayData.push({ // removal_vehicle, // removal_motorcycle, // removal_tuck // })   // $(this).find('.veiculo_atualizado').val(removal_vehicle.toFixed(2)); // $(this).find('.moto_atualizado').val(removal_motorcycle.toFixed(2)); // $(this).find('.caminhao_atualizado').val(removal_tuck.toFixed(2)); // }); // });   apply_removal.on('click', function () { percentage = $('#percentage').val();   $('.table-body tr').each(function () {   let veiculo = $(this).find('.veiculo').text(); let moto = $(this).find('.moto').text(); let caminhao = $(this).find('.caminhao').text();   removal_vehicle = parseFloat(veiculo) + (parseFloat(veiculo) * parseFloat(percentage)) / 100; removal_motorcycle = parseFloat(moto) + (parseFloat(moto) * parseFloat(percentage)) / 100; removal_tuck = parseFloat(caminhao) + (parseFloat(caminhao) * parseFloat(percentage)) / 100;   arrayData.push({ removal_vehicle, removal_motorcycle, removal_tuck })   $(this).find('.veiculo_atualizado').val(removal_vehicle.toFixed(2)); $(this).find('.moto_atualizado').val(removal_motorcycle.toFixed(2)); $(this).find('.caminhao_atualizado').val(removal_tuck.toFixed(2));     console.log('Removal Vehicle:', removal_vehicle); console.log('Removal Motorcycle:', removal_motorcycle); console.log('Removal Truck:', removal_tuck); }); });   $('select#removal_table_from').on('change', function (e) { let table_id = $(this).val(); let action = route('removal.removal-values.show', table_id);   $.ajax({ type: "GET", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },   success: function (data) { $('.table-body').empty();   for (let i = 0; i < data.length; i++) { let carro = parseFloat(data[i].CARRO); let moto = parseFloat(data[i].MOTO); let caminhao = parseFloat(data[i].CAMINHAO); let distancia = data[i].DISTANCIA; let origem = data[i].ORIGEM; let destino = data[i].DESTINO; let localidadeOrigem = data[i].LocalidadeOrigem_ID; let localidadeDestino = data[i].LocalidadeDestino_ID;   let newRow = '<tr class="removal-row">' + '<td class="align-middle">' + '<div class="row">' + '<div class="col-1">' + '<span class="font-weight-bold">Origem</span><br>' + '<span class="origem">' + origem + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Destino</span><br>' + '<span class="destino">' + destino + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">KM</span><br>' + '<span class="km">' + distancia + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Veículo</span><br>' + '<span class="veiculo">' + carro + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Veículo Atualizado</span><br>' + '<input type="text" class="veiculo_atualizado">' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Moto</span><br>' + '<span class="moto">' + moto + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Moto Atualizado</span><br>' + '<input type="text" class="moto_atualizado">' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Caminhão</span><br>' + '<span class="caminhao">' + caminhao + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Caminhão Atualizado</span><br>' + '<input type="text" class="caminhao_atualizado">' + '</div>' + '</div>' + '</div>' + '</td>' + '</tr>';   $('.table-body').append(newRow); //let row = $('.removal-row:last');   // Calcula o valor atualizado e define nos campos diretamente // let veiculo_atualizado = carro + (carro * percentage) / 100; // let moto_atualizado = moto + (moto * percentage) / 100; // let caminhao_atualizado = caminhao + (caminhao * percentage) / 100; // console.log('PORCENTS: ', percentage); //console.log('Veiculo Atualizado:', veiculo_atualizado, 'Moto Atualizado:', moto_atualizado, 'Caminhao Atualizado:', caminhao_atualizado);   // Define os valores diretamente nos campos da nova linha // row.find('.veiculo_atualizado').val(veiculo_atualizado.toFixed(2)); // row.find('.moto_atualizado').val(moto_atualizado.toFixed(2)); // row.find('.caminhao_atualizado').val(caminhao_atualizado.toFixed(2));   arrayData.push({ carro, moto, caminhao, distancia, origem, destino, localidadeOrigem, localidadeDestino, removal_vehicle, removal_motorcycle, removal_tuck }); }   $('#copy_data_table').val(JSON.stringify(arrayData)); }   }); });   //javascript para o formulario de cadastro // $(document).ready(function (event) { $('#uf').change(function () { let code_city = $(this).val(); let deposit = localStorage.getItem('selected_deposit_id'); let action = route('removal.removal-values.cities', code_city); $.ajax({ type: "POST", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { code_city: code_city },   success: function (data) {   $('#city').empty(); $('#deposit').empty();   for (let i = 0; i < data.cities.length; i++) { $('#city').append('<option value="' + data.cities[i].NM + '">' + data.cities[i].NM + '<option>'); }   if (data.deposits.length > 0) { for (let i = 0; i < data.deposits.length; i++) { $('#deposit').append('<option value="' + data.deposits[i].NM + '">' + data.deposits[i].NM + '<option>'); } } else { // $('#deposit').prop('disabled', true); // $('#city').prop('disabled', false); }   $('#city').trigger('change'); } });   });   $('#deposit').on('change', function () { depositId = $(this).val(); localStorage.setItem('selected_deposit_id', depositId); });   $('#uf_destiny').change(function () { let code_city = $(this).val(); let depositDestiny = localStorage.getItem('selected_deposit_destiny_id'); let action = route('removal.removal-values.cities', code_city); $.ajax({ type: "POST", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { code_city: code_city },   success: function (data) {   $('#city_destiny').empty(); $('#deposit_destiny').empty();   for (let i = 0; i < data.cities.length; i++) { $('#city_destiny').append('<option value="' + data.cities[i].NM + '">' + data.cities[i].NM + '</option>'); }   if (data.deposits.length > 0) { // $('#deposit_destiny').prop('disabled', false); //$('#city_destiny').empty(); // $('#city_destiny').prop('disabled', true); for (let i = 0; i < data.deposits.length; i++) { $('#deposit_destiny').append('<option value="' + data.deposits[i].NM + '">' + data.deposits[i].NM + '</option>'); } } else { // $('#deposit_destiny').prop('disabled', true); // $('#city_destiny').prop('disabled', false); }   $('#city_destiny').trigger('change'); } }); });   $('#deposit_destiny').on('change', function () { let depositDestinyId = $(this).val(); localStorage.setItem('selected_deposit_destiny_id', depositDestinyId); });   }); </code>
    • Por gersonab
      Bom dia a todos, estou usando o datatable com uma consulta mysql e funciona 100% , meu único problema é na hora que eu exporto para pdf, este não vem com sua largura da tabela exportada em 100%, dependendo da situação ocupa apenas 30% da página, infelizmente após varias pesquisas ainda não encontrei uma forma de fazer.
      segue meu código de forma simples:
      $('#exportar').DataTable( { language: { url: '//cdn.datatables.net/plug-ins/1.13.7/i18n/pt-BR.json', }, dom: 'Bfrtip', order: [[ 0, 'desc' ]], buttons: [ 'pdfHtml5' ] } ); desde já agradeço toda ajuda possível
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.