40 lines
1.5 KiB
JavaScript
40 lines
1.5 KiB
JavaScript
/**
|
|
* 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);
|
|
});
|