ol.breadcrumb li = link_to "Processos Licitatórios", licitacao_processos_path, class: "link_breadcrumb" li = link_to @apostilamento.contrato.projeto.numero_do_processo, licitacao_processo_path(@apostilamento.contrato.projeto) + "?tab=contratos", class: "link_breadcrumb" li = link_to "##{@apostilamento.id}", @apostilamento, class: "link_breadcrumb" li.active Itens do Apostilamento .widget .widget-body = simple_form_for( @apostilamento, method: :put, url: licitacao_atualizar_itens_do_apostilamento_path(@apostilamento) ) do |f| = f.input :modalidade, as: :hidden, input_html: { class: "modalidade" } legend strong = "#{@apostilamento.itens_do_apostilamento.any? ? "Atualizar" : "Cadastrar" } Itens do Apostilamento" = error_for @apostilamento, :base #tabela_itens_do_apostilamento table.table.table-bordered.table-hover.table-responsive thead tr th Item th width="13%" Valor Unitário th width="12%" Valor do Reajuste th width="12%" Valor Atualizado th width="10%" Quantidade th width="10%" Quantidade Disponível th width="15%" Valor Total tbody#itens_do_apostilamento = f.fields_for :itens_do_apostilamento, @apostilamento.itens_do_apostilamento.each do |item_do_apostilamento| = render 'item_do_apostilamento_fields', f: item_do_apostilamento .row .col-sm-6 .col-sm-2 = f.submit "Salvar", class: 'btn btn-primary' .col-sm-2 = link_to "Voltar", @apostilamento, class: "btn btn-default" javascript: $(document).ready(function(){ $(".saldo-final, .valor-reajuste, .valor-atualizado ").autoNumeric('init', { 'aSep': '.', 'aDec': ',', 'aPad': true, 'vMin': 0, 'aSign': 'R$ ' }); $(".valor-reajuste").each(function(){ const linha = $(this).closest("tr"); const precoUnitarioOriginal = $(".preco-unitario-original", linha); const modalidade = $(".modalidade").val(); if ($(this).autoNumeric('get') && precoUnitarioOriginal.attr("data")){ if(modalidade == "acrescimo"){ var valorAtualizado = parseFloat(precoUnitarioOriginal.attr("data")) + parseFloat($(this).autoNumeric('get')); }else{ var valorAtualizado = parseFloat(precoUnitarioOriginal.attr("data")) - parseFloat($(this).autoNumeric('get')); } $(".valor-atualizado", linha).autoNumeric("set", valorAtualizado); } }) $(".saldo-final").each(function(){ const linha = $(this).closest("tr"); const quantidade = $(".quantidade", linha).autoNumeric("get"); const precoUnitario = $(".valor-atualizado", linha).autoNumeric("get"); $(this).autoNumeric("set", quantidade * precoUnitario); }) }) $('form').submit(function(){ var form = $(this); $('input').each(function(i){ var self = $(this); try{ var v = self.autoNumeric('get'); self.autoNumeric('destroy'); self.val(v); }catch(err){ console.log("Not an autonumeric field: " + self.attr("name")); } }); return true; }); $(".valor-reajuste").on("change", function(){ const linha = $(this).closest('tr'); const precoUnitario = parseFloat($(this).autoNumeric('get')); const quantidade = parseFloat($(".quantidade", linha).autoNumeric('get')) || 0; const precoUnitarioOriginal = parseFloat($(".preco-unitario-original", linha).attr("data")); const modalidade = $(".modalidade").val(); if(modalidade == "acrescimo"){ var valorAtualizado = precoUnitarioOriginal + precoUnitario; }else{ var valorAtualizado = precoUnitarioOriginal - precoUnitario; } $(".valor-atualizado", linha).autoNumeric("set", valorAtualizado); $(".saldo-final", linha).autoNumeric("set", valorAtualizado * quantidade); }) $(".quantidade").on("change", function(){ const linha = $(this).closest('tr'); const precoUnitario = parseFloat($(".valor-reajuste", linha).autoNumeric("get")); const quantidade = parseFloat($(this, linha).autoNumeric("get")); $(".saldo-final", linha).autoNumeric("set", quantidade * $(".valor-atualizado", linha).autoNumeric("get")); }) $(".valor-atualizado").on("change", function(){ const linha = $(this).closest('tr'); const precoOriginal = parseFloat($(".preco-unitario-original", linha).attr("data")); const precoUnitario = $(this).autoNumeric("get"); const modalidade = $(".modalidade").val(); if(modalidade == "acrescimo"){ var valorReajuste = precoUnitario - precoOriginal; }else{ var valorReajuste = precoOriginal - precoUnitario; } $(".valor-reajuste", linha).autoNumeric("set", valorReajuste); $(".valor-reajuste", linha).trigger("change"); }) $(function(){ $('form').on('cocoon:after-insert', function(e, insertedItem) { $('select.s2', insertedItem).select2() $('.valor-reajuste', insertedItem).autoNumeric('init'); }) })