tr.nested-fields td = f.text_field :codigo, class: "form-control", maxlength: 5 = error_for f.object, :codigo td = f.text_field :descricao, class: "form-control" = error_for f.object, :descricao td = f.text_field :unidade_de_medida, class: "form-control" = error_for f.object, :unidade_de_medida td = f.text_field :quantidade, placeholder: "0,00", min: 0, class: "form-control quantidade", data: { autonumeric: true, 'a-sep'=> '.', 'a-dec'=>',', 'v-min'=> '0.00', 'v-max'=> '9999999999.99' }, onclick: "this.select();" = error_for f.object, :quantidade td = f.text_field :preco_unitario, class: "form-control valor", data: { autonumeric: true, 'a-sep'=> '.', 'a-dec'=>',', 'v-min'=> '0.00', 'v-max'=> '9999999999.99' }, onclick: "this.select();" = error_for f.object, :preco_unitario td span.total.moeda data-totalizando = %Q([ "#total" ]) td = link_to_remove_association " Remover", f, class: "btn btn-sm btn-danger icone-anular" javascript: $(document).ready(function(){ $('.moeda').autoNumeric('init', { 'aSep': '.', 'aDec': ',', 'aPad': true, 'vMin': 0, 'aSign': 'R$ ' }); $(window).on('load', function() { var list_qtd = $('.quantidade'); list_qtd.each(function(index) { var quantidade = parseFloat( $(this).autoNumeric('get') || 0 ); if (quantidade != 0){ atualiza_quantidade($(this)); } }).promise().done( function(){ setTimeout(function() { new Totalizando(); }, 100)} ); }); function atualiza_quantidade(field){ var quantidade = parseFloat( field.autoNumeric('get') || 0 ); var valor_unitario = parseFloat($('.valor', field.closest("tr")).autoNumeric('get') || 0 ); $('.total', field.closest("tr")).autoNumeric('set', quantidade*valor_unitario); }; function atualiza_total_servico(field){ var list_qtd = $('.quantidade', field.closest("tbody")); var valor_total = 0; list_qtd.each(function(index) { var quantidade = parseFloat( $(this).autoNumeric('get') || 0 ); var valor_unitario = parseFloat($('.valor', $(this).closest("tr")).autoNumeric('get') || 0 ); valor_total = valor_total + (quantidade*valor_unitario); }); index = field.closest("tbody").attr('id').substr(-1); $("#total_servico_" + index).autoNumeric('set',valor_total); var total_obra = parseFloat($('#total_obra').autoNumeric('get') || 0 ); var percentual = (valor_total * 100) / total_obra; $("#percentual_servico_sobre_obra_" + index).text(('set', percentual.toFixed(2) ) + "%"); }; function atualiza_total_distribuir() { var total_obra = parseFloat($('#total_obra').autoNumeric('get') || 0 ); var total = parseFloat($('#total').autoNumeric('get') || 0 ); console.log(total_obra); console.log(total); var total_distribuir = total_obra - total; $('#total_distribuir').autoNumeric('set', total_distribuir); }; $('.quantidade, .valor').change(function () { var linha = $(this).closest("tr"); var quantidade = parseFloat($('.quantidade', linha).autoNumeric('get') || 0 ); var valor_unitario = parseFloat($('.valor', linha).autoNumeric('get') || 0 ); var total = quantidade * valor_unitario; $('.total', linha).autoNumeric('set', total); new Totalizando(); atualiza_total_servico(linha); atualiza_total_distribuir(); }); });