/**
 * 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);
});
