/** * compras.js * * Funções de controle da tabela de itens (tbItens) e cálculo de totais. * As demais funções deste arquivo (modal de produtos, zoom handlers, activity manager) * foram consolidadas em compras_digital.js e script.js. */ /* ========= Totais da tabela de itens ========= */ function atualizarTotais() { // Percorre as linhas da tabela somando qtd * preço de referência var totalGeral = 0; $('#tbItens tbody tr.tableRow:not([detail=true])').each(function () { var qtd = parseFloat($(this).find('input[name^="qtd___"]').val()) || 0; var preco = brMoneyToFloat($(this).find('input[name^="Refpreco___"]').val()); var total = qtd * preco; $(this).find('input[name^="totalValor___"]').val(floatToBRL(total)); totalGeral += total; }); $('#totalGeral').val(floatToBRL(totalGeral)); $('#totalItens').val($('#tbItens tbody tr.tableRow:not([detail=true])').length); } /* ========= Recalcula o total de uma linha ========= */ function recalcLinha(el) { var $linha = $(el).closest('tr'); var qtd = parseFloat($linha.find('input[name^="qtd___"]').val()) || 0; var preco = brMoneyToFloat($linha.find('input[name^="Refpreco___"]').val()); $linha.find('input[name^="totalValor___"]').val(floatToBRL(qtd * preco)); atualizarTotais(); } /* ========= Delegação de eventos de preço/quantidade ========= */ $(document).on('input', 'input[name^="qtd___"], input[name^="Refpreco___"]', function () { recalcLinha(this); });