- if @solicitacao_de_alteracao_orcamentaria.avulso? && @solicitacao_de_alteracao_orcamentaria.credito_suplementar? .nested-fields .widget style="width: 100%" .widget-body .row .col-sm-10 .col-sm-3 = f.label 'Ação', style: "font-weight: bold" .col-sm-9 = f.input :subacao_id, label: false, collection: @subacoes, label_method: :acao_iniciativa, include_blank: "Selecione", input_html: {class: "s2", id: "sub_acao"} .row .col-sm-10 .col-sm-3 = f.label 'Elemento de Despesa', style: "font-weight: bold" .col-sm-9 = f.input :elemento_de_despesa_id, label: false, collection: f.object.retorna_elementos_de_despesa, label_method: :codigo_e_descricao, include_blank: "Selecione", input_html: {class: "s2", id: "elemento_de_despesa"} .row .col-sm-10 .col-sm-3 = f.label 'Fonte de Recurso', style: "font-weight: bold" .col-sm-9 = f.input :fonte_de_recurso_id, label: false, collection: f.object.retorna_fontes_de_recursos, label_method: :codigo_completo_e_descricao, include_blank: "Selecione", input_html: {class: "s2", id: "fonte_de_recurso"} .row .col-sm-10 .col-sm-3 = f.label 'Valor', style: "font-weight: bold" .col-sm-3 = f.input :valor, label: false, as: :string, input_html: { class: "quantidade_origem" ,data: { autonumeric: true, 'a-sep'=> '.', 'a-dec'=>',', 'a-sign'=> 'R$ ', 'v-min'=> '0.00', 'v-max'=> '9999999999.99' } } .col-sm-1 = link_to_remove_association " Remover", f, class: "btn btn-sm btn-danger icone-anular" - elsif !@solicitacao_de_alteracao_orcamentaria.vem_de_projeto_ou_empenho? && !@solicitacao_de_alteracao_orcamentaria.credito_extraordinario? tr.nested-fields td = f.text_field :dotacao_id, class: "form-control s2 dotacao_origem" = error_for f.object, :dotacao_id, :orcamento_da_despesa .alerta_utilizacao = exibir_alerta_em_formulario(mensagem: 'Esta rubrica já foi objeto de redução neste Decreto', condicao: f.object.dotacao_ja_utilizada_no_decreto?) td span.saldo_antes_reducao td = f.monetary_field :valor, class: "form-control valor-unitario origem" = error_for f.object, :valor td span.saldo_apos_reducao td = link_to_remove_association " Remover", f, class: "btn btn-sm btn-danger icone-anular" - else tr.nested-fields td = f.text_field :dotacao_id, class: "form-control s2 dotacao_origem" = error_for f.object, :dotacao_id, :orcamento_da_despesa .alerta_utilizacao = exibir_alerta_em_formulario(mensagem: 'Esta rubrica já foi objeto de redução neste Decreto', condicao: f.object.dotacao_ja_utilizada_no_decreto?) td = f.monetary_field :valor, class: "form-control valor-unitario origem" = error_for f.object, :valor td = link_to_remove_association " Remover", f, class: "btn btn-sm btn-danger icone-anular" javascript: $(document).ready(function(){ $(".dotacao_origem").change(atualizaSaldosAntesDaReducao); $(".dotacao_origem").change(verificaUtilizacaoDaDotacao); $.each($('.dotacao_origem'), function(index, value) { var linha = $(this).closest("tr"); $(this).trigger('change'); }); $(".valor-unitario").change(atualizaSaldosAposDaReducao); setTimeout(function() { $.each($('.valor-unitario'), function(index, value) { var linha = $(this).closest("tr"); $(this).trigger('change'); }); }, 350); function atualizaSaldosAntesDaReducao() { var linha = $(this).closest("tr"); var dotacao_origem = $(this).val(); if ( dotacao_origem != "") { $.getJSON(ROOT_PATH + "pesquisas/" + dotacao_origem + "/retorna_saldo_atual_da_dotacao.json", function(dados) { $('.saldo_antes_reducao', linha).text(formataDinheiro(dados)); }); } } function verificaUtilizacaoDaDotacao() { var linha = $(this).closest("tr"); var dotacao_origem = $(this).val(); $.getJSON(ROOT_PATH + "pesquisas/#{@solicitacao_de_alteracao_orcamentaria.id}/" + dotacao_origem + "/origem_utilizada_no_decreto.json", function(dados) { if (dados == true) { $('.alerta_utilizacao', linha).html('Esta rubrica já foi objeto de redução neste Decreto'); } }); } function atualizaSaldosAposDaReducao() { var linha = $(this).closest("tr"); var valor_da_dotacao = parseFloat($('.saldo_antes_reducao', linha).text().replace(/[^\d,]/g, '').replace(',', '.')); var valor_colocado = parseFloat($(this).val().replace(/[^\d,]/g, '').replace(',', '.')); var valor = valor_da_dotacao - valor_colocado; valor = isNaN(valor) ? 0 : valor; $('.saldo_apos_reducao', linha).text(formataDinheiro(valor)); } });