none
Sistema de Calculo de Valores. RRS feed

  • Pergunta

  • Tenho um código que ao eu inserir o produto e a quantidade ele automaticamente quando estou prrenchendo o campo ja vai me calculando os valores em subtotal e total.

    Porem ele mantem os valores de frete e desconto apenas da primeira linha, quando eu insiro uma linha nova ("tem um botão de inserir campo") ele nao muda os valores.

    Como faço para ele pegar o campo correto?

    Tente adicionar dois registros e depois apagar o frete da segunda linha ou adicionar outra diferente.

    Esta muito dificil isso para mim e olha que nem comecei a fazer os calculos ainda direito.

    Agradeço toda a ajuda que puderem me dar.

    <script type="text/javascript">
    //Total máximo de campos que você permitirá criar em seu site:
    var totalCampos = 30;
    
    //Não altere os valores abaixo, pois são variáveis controle;
    var iLoop = 1;
    var iCount = 1;
    var linhaAtual;
    
    
    function AddCampos() {
    //Executar apenas se houver possibilidade de inserção de novos campos:
            if (iCount < totalCampos) {
             var objTr = document.getElementById("linha"+iCount);
             objTr.style.display = "";
             iCount++;
            }
    }
    
    function ResetCampos() {
    //Executar apenas se houver possibilidade de inserção de novos campos:
            if (iCount > totalCampos) {
             var objTr = document.getElementById("linha"-iCount);
             objTr.style.display = "";
             iCount--;
            }
    }
    
    
    function somar(el) {
            
    
    var objItem = document.getElementById("sel"+el);
    var objQtde = document.getElementById("qtde"+el);
    var objVunit = document.getElementById("vUnit"+el);
    var objVtot = document.getElementById("vTot"+el);
    var SubTot = document.getElementById("subTotal");
    var objFrete = document.getElementById("frete");
    var objDesc = document.getElementById("decapagem");
    var objTotal = document.getElementById("total");
    
            if (objItem.value != "") {
                    objVunit.value = objItem.value;
                    var total = (parseFloat(objItem.value)*parseFloat(objQtde.value)+parseFloat(objDesc.value)+parseFloat(objFrete.value));
                    objVtot.value = total.toFixed(2);
            }else{
                    objVunit.value = "0.00";
                    objVtot.value = "0.00";
            }
    
    var calcSubTotal = 0;
    for (iC = 1; iC<=totalCampos; iC++) {
            calcSubTotal += parseFloat(document.getElementById("vTot"+iC).value);
    }
    SubTot.value = calcSubTotal.toFixed(2);
    calcTotal = (calcSubTotal);
    objTotal.value = calcTotal.toFixed(2);
    }
    </script>
    </head>
    <body>
    <form name="form1" action="paginaPHPouASP" method="post">
    <table border="0">
    <tr>
            <td width="200px">Produto</td>
            <td width="100px">Quantidade</td>
            <td width="100px">Pre&ccedil;o de Tabela</td>
            <td width="100px">SubTotal</td>
            <td width="100px">Corte + Dec</td>
            <td width="100px">Frete</td>
    </tr>
    <script type="text/javascript">
    //Escrevendo o código-fonte HTML e ocultando os campos criados:
    for (iLoop = 1; iLoop <= totalCampos; iLoop++) {
    var linha = "";
    if (iLoop <=1) {
            visualizar = "";
    } else {
            visualizar = "none";
    }
    
            linha += "<tr id='linha"+iLoop+"' style='display:"+visualizar+"'>";
            linha += "<td width='200px'>";
            linha += "<select id='sel"+iLoop+"' onchange='somar("+iLoop+")'>";
            linha += "<option value=''>---</option>";
            linha += "<option value='2650.00'>FQ.01</option>";
            linha += "<option value='2480.00'>FQ.02</option>";
            linha += "<option value='3300.00'>FQ.06</option>";
            linha += "<option value='3200.00'>FQ.07</option>";
            linha += "<option value='2750.00'>FQ.08</option>";
            linha += "</select>";
            linha += "</td>";
            linha += "<td width='100px'>";
            linha += "<select id='qtde"+iLoop+"' onchange='somar("+iLoop+")'><option value='0'>0</option><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option></select>";
            linha += "</td>";
            linha += "<td width='100px'>";
            linha += "<input type='text' id='vUnit"+iLoop+"' readonly='readonly' value='0.00'>";
            linha += "</td>";
            linha += "<td width='100px'>";
            linha += "<input type='text' id='vTot"+iLoop+"' readonly='readonly' value='0.00'>";
            linha += "</td>";
                    linha += "<td><input type='text' name='decapagem' id='decapagem' value='35.00' onkeyup='somar("+iLoop+")'></td>";
            linha += "<td><input type='text' name='frete' id='frete' value='50.00' onkeyup='somar("+iLoop+")'></td>";
                    linha += "<td><input type='button' value='Remover campo' onclick='RemoverCampos("+iLoop+")'></td>";
            linha += "</tr>";       
    
    document.write (linha);
    }
    
    
    function RemoverCampos(id) {
    //Criando ponteiro para hidden1:        
    var hidden1 = document.getElementById("decapagem");
    
    //Pegar o valor do campo que será excluído:
    var campoValor = document.getElementById("decapagem").value;
            //Se o campo não tiver nenhum valor, atribuir a string: vazio:
            if (campoValor == "") {
                    campoValor = "vazio";
            }
    
            {
                    document.getElementById("linha"+id).style.display = "none"; iCount--;
                    
                    //Removendo o valor de hidden1:
                    if (hidden1.value.indexOf(",linha"+id) != -1) {
                            hidden1.value = hidden1.value.replace(",linha"+id,"");
                    }else if (hidden1.value.indexOf("linha"+id+",") == 0) {
                            hidden1.value = hidden1.value.replace("linha"+id+",","");
                    }else{
                            hidden1.value = "";
                    }
            }
    }
    </script>
    
    <tr>
            <td> </td>
            <td> </td>
            <td>Sub-total:</td>
            <td><input type="text" id="subTotal" readonly='readonly' value="0.00"></td>
    </tr>
    <tr>
            <td> </td>
            <td> </td>
            <td>Total:</td>
            <td><input type="text" id="total" readonly='readonly' value="0.00"></td>
    </tr>
    </table>
    <input type="button" value="Adicionar campos" onclick="AddCampos()">
    
    <input type="hidden" name="hidden2" id="hidden2">
    <br><br>
    <br><br>
    </form>
    

    Fábio Sanches Carmona
    segunda-feira, 14 de dezembro de 2009 17:14