Calculo tabela pai x filho com botão

Bom dia Pessoal, preciso fazer um calculo somando campos da tabela paixfilho, porém com algumas condições, durante o preenchimento. Se o valor for pago , a soma deve ser realizada no campo TOTAL DINHEIRO, se for cartão, TOTAL OUTRAS MOEDAS. Tentei fazer isso pelo evento on.blur, ou através de um botão, porém sem sucesso, vou deixar o código utilizando on.blur pra ver se voces me dão uma luz.

HTML:

Add

function init() { $("input[id^='valor_']:last").blur(doFormTotal); }

function doFormTotal() { var totalr = 0; var totald = 0; var index = this.id.substring(this.id.indexOf('') + 3); var moeda = $("#moeda" + index).val(); if (moeda == "real") { $("input[id^='valor']").each(function() { if ($(this).val()) { totalr += parseInt($(this).val()); } }); $("#totaldin").val(totalr); } if (moeda == "dolar" || moeda == "euro") { $("input[id^='valor']").each(function() { if ($(this).val()) { totald += parseInt($(this).val()); } }); $("#totalMoed").val(totald); }

}

function fnCustomDelete(oElement){ fnWdkRemoveChild(oElement); doFormTotal(); }

Acredito que com um botão seria mais facil, mas nao sei como percorrer todas as linhas e fazer a verificação.

Obrigada!

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Boa tarde Danielle, tens como anexar o arquivo js na pergunta, porque ele não mostra os underscore dos indices do pai e filho quando o código fica direto na pergunta.

Boa tarde Diogo, adicionei meu arquivo.

Danielle,

acho que seria algo assim para pagamento em real e outras moedas, sobre o cartão não entendi como ficaria a diferença entre pagar com cartão em euro, dolar ou real:


function doFormTotal() {
   var totalr = 0;
   var totald = 0;

   $("input[id^='valor']").each(function() {
      if ($(this).val()) {
         var index = $(this).prop('id').replace('valor___', '');
           var moeda = $("#moeda___" + index).val();
           if (moeda == "real") {
             totalr += parseInt($(this).val());
           } else if (moeda == "dolar" || moeda == "euro") {
             totald += parseInt($(this).val()); 
           }
      }
   });

   $("#totaldin").val(totalr);
   $("#totalMoed").val(totald);
}

Bom dia Diogo, quando fazemos uma viagem corporativa, muitas vezes usamos cartões corporativos, caso o pagamento seja feito via cartão, as cobranças vem na moeda original, e os recibos ou comprovantes também, por isso a necessidade de verificar também se o pagamento é feito no dinheiro ou cartão, e qual moeda foi utilizada.

Como existem mtas opçoes em relação a moeda que pode ser utilizada Diogo, vou somar apenas valores em reais, e dividi-los em dinheiro ou cartão…
Funcionou certinho,muito obrigada!

Diogo, me surgiu mais uma duvida, aqui estamos somando números inteiros, como faço para somar os decimais?