tr.nested-fields - resto_a_pagar_cancelado_id = resto_a_pagar_cancelado_id rescue 0 - liquidacao_id = liquidacao_id rescue 0 td = f.input :item_id, label: false, collection: @itens, label_method: :codigo_e_descricao, include_blank: 'Selecione', input_html: { class: 'form-control s2 item_id' } = f.input :liquidacao_do_rp_cancelado_id, as: :hidden - if f.object.persisted? = f.input :resto_a_pagar_cancelado_id, as: :hidden, input_html: { class: 'resto_a_pagar_cancelado_id', value: (f.object.resto_a_pagar_cancelado_id.present?) ? f.object.resto_a_pagar_cancelado_id : f.object.liquidacao_do_rp_cancelado.resto_a_pagar_cancelado_id } = f.input :liquidacao_id, as: :hidden, input_html: { class: 'liquidacao_id', value: (f.object.liquidacao_id.present?) ? f.object.try(:liquidacao_id) : f.object.try(:liquidacao_do_rp_cancelado).try(:liquidacao_id) } - else = f.input :resto_a_pagar_cancelado_id, as: :hidden, input_html: { class: 'resto_a_pagar_cancelado_id', value: (f.object.resto_a_pagar_cancelado_id.present?) ? f.object.resto_a_pagar_cancelado_id : resto_a_pagar_cancelado_id } = f.input :liquidacao_id, as: :hidden, input_html: { class: 'liquidacao_id', value: (f.object.liquidacao_id.present?) ? f.object.liquidacao_id : liquidacao_id } td = f.input :quantidade_cancelada, label: false, as: :string, input_html: { class: 'form-control quantidade_cancelada' } td = f.input :quantidade_disponivel_a_cancelar, label: false, as: :string, readonly: true, input_html: {class: 'form-control quantidade_disponivel_a_cancelar'} td = f.input :valor_unitario, label: false, as: :string, readonly: true, input_html: { class: 'form-control valor_unitario_item' } td = f.input :total, label: false, as: :string, input_html: { class: 'form-control total_cancelado_item' } td.text-center = link_to_remove_association " Remover", f, class: "btn btn-sm btn-danger icone-anular remove-item" - content_for :js do javascript: $(document).ready(function() { $(".quantidade_cancelada").autoNumeric("init",{ 'aSep': '.', 'aDec': ',', 'vMin': 0, 'vMax': 999999999.99, }) $(".quantidade_de_itens_a_cancelar").autoNumeric('init', { 'aSep': '.', 'aDec': ',', 'vMin': 0, 'vMax': 999999999.99, }) $(".valor_unitario_item").autoNumeric('init', { 'aSep': '.', 'aDec': ',', 'aPad': true, 'vMin': 0.00, 'aSign': 'R$ ' }) $(".total_cancelado_item").autoNumeric('init', { 'aSep': '.', 'aDec': ',', 'aPad': true, 'vMin': 0.00, 'aSign': 'R$ ' }) $(".valor_cancelado_liquidacao").autoNumeric('init', { 'aSep': '.', 'aDec': ',', 'aPad': true, 'vMin': 0.00, 'aSign': 'R$ ' }) $(".quantidade_disponivel_a_cancelar").autoNumeric("init",{ 'aSep': '.', 'aDec': ',', 'vMin': 0, 'vMax': 999999999.99, }) $('.item_id').each(function() { $(this).trigger('change'); }); }); $('.item_id').on("change", function(){ var item = $(this).val() var linha = $(this).closest('tr') var liquidacao_rp = $(".liquidacao_id", linha).val() var empenho_rp = $(".resto_a_pagar_cancelado_id", linha).val() if ($('.item_id').val() != "") { $.getJSON(ROOT_PATH + "contabilidade/restos_a_pagar_cancelados/retorna_valor_unitario_do_item_de_rp.json?item_id=" + item + "&resto_a_pagar_cancelado_id=" + empenho_rp + "&liquidacao_id=" + liquidacao_rp, function(data) { $('.valor_unitario_item', linha).autoNumeric('set', data[0]); $('.quantidade_disponivel_a_cancelar', linha).autoNumeric('set', data[1]) }); } }); $('.quantidade_cancelada').on("change", function(){ var linha = $(this).closest('tr') var quantidade = $(this).autoNumeric('get' || 0); var valor_unitario = $('.valor_unitario_item', linha).autoNumeric('get' || 0); var total = quantidade * valor_unitario $('.total_cancelado_item', linha).autoNumeric('set', total); $('.total_cancelado_item', linha).trigger('change'); }); $('.total_cancelado_item').on("change", function(){ var total_geral = 0 var linha = $(this).parent().parent().parent().parent().parent().parent().parent().parent().prev() var linha_empenho = $(this).parent().parent().parent().parent().parent().parent().parent().parent().prev() var outra_linha = linha.next() $('.total_cancelado_item', outra_linha).each(function(){ valor = parseFloat($(this).autoNumeric('get' || 0)); total_geral = total_geral + valor outra_linha = outra_linha.next() }); $('.valor_cancelado_liquidacao', linha).autoNumeric('set', total_geral); $('.valor_cancelado_empenho', linha_empenho).autoNumeric('set', total_geral); });