Difficulty in calculating with jquery

0

A jquery function was done by a fellow designer to meet the following need. I have a table, which works inside a repeater, which works like a grid. This table has 4 <TD> . There is TD that I bring from the database, a value I call vlCreditoCota . There is another TD with a TextBox where I type any value, which I call vlAssociado . And there is a third TD that gets the result of: vlCreditoCota - vlAssociado; . The following is happening. In vlCreditoCota I created a currency mask, in ASP.NET as: Text='<%# string.Format("{0:C}", Eval("vlCreditoCota"))' . Because of this mask, my jquery zoou and the guy is having difficulty doing this calculation with this mask. Below my jquery:

jQuery(function ($) {
    //var contalinhas = $("#tabelaDinamica > tbody > tr").length; - ORIGINAL
    $("#tabelaDinamica > tbody > tr").each(function (index) {
        //declarando variárives
        var recebeTotalDisponivel = $(this).children("td:eq(1)").children(".creditoDisponivel").text(); //recebe valor
        //desenvolvimento
        var aux = recebeTotalDisponivel;
        if (index == "0") {
            totalDisponivel = aux;
        } else {
            totalDisponivel = (parseFloat(aux) + parseFloat(totalDisponivel)).toFixed(2);
        }
        $(".totalCreditoDisponivel").text(totalDisponivel);
    });

    $(".valorDesejado").focus(function () {
        //$(this).children("td:eq(2)").addClass("celulaAtiva");
        $(this).closest("tr").addClass("linhaAtiva");

        //declarando variáveis globais
        var creditoAssociado = 0;
        var creditoPendente = 0;
        var creditoDisponivel = $(".linhaAtiva > td > .creditoDisponivel").text();
        var creditoDisponivelInteger = parseFloat(creditoDisponivel).toFixed(2);
        var recebeTotalCreditoPendente;

        //desenvolvimento
        $(".linhaAtiva > td > .valorDesejado").keyup(function () {
            $(".linhaAtiva > td >.valorPendente").text(creditoPendente);
            creditoAssociado = $(".linhaAtiva > td > .valorDesejado").val().replace(".", "").replace(",", "."); //capturando valor digitado no campo valor desejado / crédito associado

            var creditoAssociadoInteger = parseFloat(creditoAssociado).toFixed(2); //convertendo para inteiro e atribuindo para variável local
            creditoPendente = (parseFloat(creditoDisponivelInteger) - parseFloat(creditoAssociadoInteger)).toFixed(2); //calculando
            $(".linhaAtiva > td >.valorPendente").text(creditoPendente); //inserindo o  valor da variável "creditoPendente" ao atributo "text" do campo que recebe o valor pendente

            //verifica se o usuário apagou o valor digitado no campo "valor desejado" e insere zero no atributo "text" do campo que recebe o valor pendente
            if ($(".linhaAtiva > td > .valorDesejado").val() == "" || $(".linhaAtiva > td > .valorDesejado").val() == "0") {
                $(".linhaAtiva > td > .valorPendente").text("0");
                $(".linhaAtiva > td > .valorDesejado").val("0");
            }

            //acerta o comportamento se o valor digitado no crédito associado for maior que o valor disponível
            if ($(".linhaAtiva > td > .valorPendente").text() < "0") {
                $(".linhaAtiva > td > .valorPendente").text("0");
                $(".linhaAtiva > td > .valorDesejado").val("0");
                alert("Valor maior que o disponível no momento. Por favor, informe outro valor");
            }

            //calculando total de crédito pendente  
            $("#tabelaDinamica > tbody > tr").each(function (index) {
                //declarando variárives
                //var recebeTotalPendente = $(this).children("td:eq(2)").children(".valorPendente").text(); //recebe valor
                var recebeTotalPendente = $(this).children("td:eq(2)").children(".valorPendente").text().replace(",", "."); //recebe valor
                //desenvolvimento
                var auxP = recebeTotalPendente;
                if (index == "0") {
                    totalPendente = auxP;
                } else {
                    totalPendente = (parseFloat(auxP) + parseFloat(totalPendente)).toFixed(2);
                }
                $(".totalCreditoPendente").text(totalPendente);
            });

            //calculando total de crédito associado
            $("#tabelaDinamica > tbody > tr").each(function (index) {
                //declarando variárives
                var recebeTotalAssociado = $(this).children("td:eq(3)").children(".valorDesejado").val().replace(".", "").replace(",", "."); //recebe valor
                //desenvolvimento
                var auxAss = recebeTotalAssociado;
                if (index == "0") {
                    totalAssociado = auxAss;
                } else {
                    totalAssociado = (parseFloat(auxAss) + parseFloat(totalAssociado)).toFixed(2);
                }
                $(".totalCreditoAssociado").text(totalAssociado);
            });

        });
        //remove a classe "linhaAtiva" quando o campo "valor desejado" perde o foco
        $(".valorDesejado").focusout(function () {
            $("tr").removeClass("linhaAtiva");
        });
    });
});

How can I make a calculation like this using a mask? I think of serializing the associated value, sending to Behind, doing the calculation there and serializing to the jquery back and populating the correct TD, but if I get a solution in the Client, it will be better for me. The question is: How do I make this calculation in jquery using the currency mask?

    
asked by anonymous 30.01.2015 / 18:10

0 answers