.alert.alert-warning[role="alert" id="alert-content" style="display: none;"] span#alert-message .widget .widget-body = simple_form_for(@movimentacao_do_plano_de_contas) do |f| legend strong = "#{f.object.persisted? ? "Editar" : "Cadastrar" } Movimentação" = f.input :lancamento_manual, as: :hidden, input_html: { value: session[:lancamento_manual], class: 'lancamento_manual' } = f.input :exercicio, as: :hidden, input_html: { value: contexto_atual.exercicio, class: 'exercicio' } .row .col-sm-4 = f.input :data_de_lancamento, label: 'Data de Lançamento *', as: :string, wrapper: :calendar_field, input_html: { class: "date-picker", autocomplete: "off" } = error_for f.object, :sim .col-sm-4 = f.input :unidade_orcamentaria_id, label: 'Unidade Orçamentária *', collection: @unidades_orcamentarias, label_method: :codigo_e_nome, include_blank: 'Selecione', input_html: { class: "s2 unidade_orcamentaria" } .row .col-sm-4 = f.label :categoria_de_lancamento, "Categoria de Lançamento *", class: "control-label" == f.select :categoria_de_lancamento, options_for_select(@categorias_de_lancamento.invert, selected: Contabilidade::MovimentacaoDoPlanoDeContas.categorias_de_lancamento[@movimentacao_do_plano_de_contas.categoria_de_lancamento_before_type_cast.to_s]), { include_blank: "Selecione" },class: 'form-control s2 categoria_de_lancamento' - if session[:lancamento_manual] == 'divida_ativa' .col-sm-4 = f.label :titulo, "Titulo *", class: "control-label" = f.select :titulo, options_for_select(Contabilidade::GrupoDeEventoContabil.titulos_i18n.transform_keys{|key| Contabilidade::GrupoDeEventoContabil.titulos[key]}.invert, selected: Contabilidade::GrupoDeEventoContabil.titulos[@movimentacao_do_plano_de_contas.titulo_before_type_cast.to_s]), { include_blank: "Selecione" },class: 'form-control s2 titulo' = error_for f.object, :titulo - elsif session[:lancamento_manual] == 'almoxarifado' .col-sm-4 = f.input :centro_de_custo_id, label: 'Centro de Custo', collection: @centros_de_custo, label_method: :descricao, include_blank: "Selecione", input_html: { class: 'centro_de_custo s2', valor_anterior: @movimentacao_do_plano_de_contas.centro_de_custo_id} - if session[:lancamento_manual] == 'precatorio' || session[:lancamento_manual] == 'investimentos' .col-sm-4 = f.input :grupo_pcasp, label: 'Grupo PCASP',collection: Contabilidade::MovimentacaoDoPlanoDeContas.grupos_pcasp, include_blank: 'Selecione', value_method: :second, label_method: :first, input_html: { class: "s2 grupos_pcasp" } .col-sm-4 = f.input :grupo_de_evento_id, label: 'Grupo de Evento *',collection: @grupos_de_eventos, include_blank: 'Selecione', label_method: :nome_do_grupo, input_html: { class: "s2 grupos_de_eventos", valor_anterior: @movimentacao_do_plano_de_contas.grupo_de_evento_id } .col-sm-4 = f.input :evento_contabil_id, label: 'Evento Contábil *', collection: @eventos_contabeis, label_method: :nome, include_blank: 'Selecione', input_html: { class: "s2 evento_contabil", valor_anterior: @movimentacao_do_plano_de_contas.evento_contabil_id } .col-sm-4 = f.input :valor, label: 'Valor', as: :string, input_html: {data: { autonumeric: true, 'a-sep'=> '.', 'a-dec'=>',', 'a-sign'=> 'R$ ', 'v-min'=> '0.00', 'v-max'=> '9999999999.99' }} - if session[:lancamento_manual] == 'abertura' .col-sm-4 = f.label :conta_bancaria_id, "Conta Bancária *", class: "control-label" = f.select :conta_bancaria_id, options_from_collection_for_select(@contas_bancarias, :id, :to_s, @movimentacao_do_plano_de_contas.conta_bancaria_id), { include_blank: 'Selecione' }, class: 'form-control s2' = error_for f.object, :categoria_de_lancamento .col-sm-4 = f.label :conta_extra_orcamentaria_id, "Conta Extra Orçamentária", class: "control-label" = f.select :conta_extra_orcamentaria_id, options_from_collection_for_select(@contas_extra_orcamentarias, :id, :codigo_completo_e_descricao, @movimentacao_do_plano_de_contas.conta_extra_orcamentaria_id), { include_blank: 'Selecione' }, class: 'form-control s2' = error_for f.object, :categoria_de_lancamento .row .col-sm-4#subconta-pcasp = f.input :sub_conta_pcasp_id, label: 'Sub Conta PCASP', collection: @subcontas_pcasp, include_blank: 'Selecione', label_method: :codigo_e_descricao, input_html: { class: "s2 subconta" } .col-sm-4 = f.input :criar_nova_subconta, label: '  Criar Nova Sub Conta'.html_safe, as: :boolean, input_html: { class: "checkbox-circle cria_subconta", style: "margin-top: 30px;" } .col-sm-4#descricao-subconta = f.input :descricao_subconta, label: 'Descrição da Sub Conta PCASP', input_html: { class: "form-control" } .row .col-sm-6 = f.input :ic_fp, label: 'Atributo do Superávit Financeiro *', collection: [['Financeiro', 1], ['Permanente', 2]], include_blank: 'Selecione', input_html: { class: "s2 ic_fp" } .col-sm-6 = f.input :ic_fp_credito, label: 'Atributo do Superávit Financeiro (Crédito) *', collection: [['Financeiro', 1], ['Permanente', 2]], include_blank: 'Selecione', input_html: { class: "s2 ic_fp" } .row .col-sm-6 = f.input :fonte_de_recursos_id, label: 'Fonte de Recursos *', collection: @fontes_de_recursos, include_blank: 'Selecione', label_method: :codigo_completo_e_descricao, input_html: { class: "s2 ic_fr", style: "width: 100%" } .col-sm-6 = f.input :fonte_de_recursos_credito_id, label: 'Fonte de Recursos (Crédito) *', collection: @fontes_de_recursos, include_blank: 'Selecione', label_method: :codigo_completo_e_descricao, input_html: { class: "s2 ic_fr", style: "width: 100%" } .row .col-sm-6 = f.input :ic_nr, label: 'Natureza da Receita *', collection: @naturezas_da_receita, include_blank: 'Selecione', label_method: :codigo_formatado_e_descricao, value_method: :codigo_para_ic, input_html: { class: "s2", id: "ic_nr}", style: "width: 100%" } .col-sm-6 = f.input :ic_nr_credito, label: 'Natureza da Receita (Crédito) *', collection: @naturezas_da_receita, include_blank: 'Selecione', label_method: :codigo_formatado_e_descricao, value_method: :codigo_para_ic, input_html: { class: "s2", id: "ic_nr}", style: "width: 100%" } .row .col-sm-6 = f.input :ic_nd, label: 'Natureza da Despesa *', collection: @sub_elementos_de_despesa, include_blank: 'Selecione', label_method: :codigo_formatado_e_descricao, value_method: :codigo_do_objeto_para_msc, input_html: { class: "s2", id: "ic_nd", style: "width: 100%" } .col-sm-6 = f.input :ic_nd_credito, label: 'Natureza da Despesa (Crédito) *', collection: @sub_elementos_de_despesa, include_blank: 'Selecione', label_method: :codigo_formatado_e_descricao, value_method: :codigo_do_objeto_para_msc, input_html: { class: "s2", id: "ic_nd", style: "width: 100%" } .row .col-sm-6 = f.input :ic_fs, label: 'Função e Subfunção *', collection: @funcoes_e_subfuncoes, include_blank: 'Selecione', label_method: :codigo_e_nome, value_method: :codigo_para_ic, input_html: { class: "s2", id: "ic_fs", style: "width: 100%" } .col-sm-6 = f.input :ic_fs_credito, label: 'Função e Subfunção (Crédito) *', collection: @funcoes_e_subfuncoes, include_blank: 'Selecione', label_method: :codigo_e_nome, value_method: :codigo_para_ic, input_html: { class: "s2", id: "ic_fs", style: "width: 100%" } .row .col-sm-12 = f.input :historico, label: 'Histórico *', as: :text, input_html: { rows: 12 } .form-actions = f.submit "Salvar", class: "btn btn-primary" = link_to "Cancelar", contabilidade_index_movimentacoes_manuais_path(lancamento_manual: session[:lancamento_manual]),class: "btn btn-default" javascript: $(document).ready(function(){ $('abbr').remove(); $('#alerta_evento_contabil').hide(); insere_valores_anteriores(); cria_ou_nao_subconta(); }) $('.cria_subconta').on('change', function(){ cria_ou_nao_subconta(); }); function insere_valores_anteriores() { try { valor_categoria_anterior = Array.from($('#contabilidade_movimentacao_do_plano_de_contas_categoria_de_lancamento option')).find(function(e) { return $(e).attr("selected") == "selected" }).value; $('#contabilidade_movimentacao_do_plano_de_contas_categoria_de_lancamento').val(valor_categoria_anterior); pagina = $(".breadcrumb li.active").text(); if (pagina == "Movimentações Divida ativa") { valor_titulo_anterior = Array.from($('#contabilidade_movimentacao_do_plano_de_contas_titulo option')).find(function(e) { return $(e).attr("selected") == "selected" }).value; $('#contabilidade_movimentacao_do_plano_de_contas_titulo').val(valor_titulo_anterior); inicializa_valores_antigos(); } else if (pagina == "Movimentações Almoxarifado") { pesquisaCentrosDeCusto(function() { inicializa_valores_antigos(); }) } else { inicializa_valores_antigos(); } } catch(e) { console.log(e); } } function inicializa_valores_antigos() { if(podeRealizarPesquisaDeGrupo()) { pesquisarGruposDosEventos(function() { if($('#contabilidade_movimentacao_do_plano_de_contas_grupo_de_evento_id').attr('valor_anterior')) { $('#contabilidade_movimentacao_do_plano_de_contas_grupo_de_evento_id').val($('#contabilidade_movimentacao_do_plano_de_contas_grupo_de_evento_id').attr('valor_anterior')); pesquisaEventosContabeis(function() { if ($('#contabilidade_movimentacao_do_plano_de_contas_evento_contabil_id').attr('valor_anterior')) { $('#contabilidade_movimentacao_do_plano_de_contas_evento_contabil_id').val($('#contabilidade_movimentacao_do_plano_de_contas_evento_contabil_id').attr('valor_anterior')); } }); } }); } } function cria_ou_nao_subconta(){ if ($('.cria_subconta').is(":checked")){ $("#subconta-pcasp").hide(); $("#descricao-subconta").show(); } else { $("#subconta-pcasp").show(); $("#descricao-subconta").hide(); } } $('.categoria_de_lancamento').on('change', function(){ if(podeRealizarPesquisaDeGrupo()){ pesquisarGruposDosEventos(); } }) $('.titulo').on('change', function(){ if(podeRealizarPesquisaDeGrupo()){ pesquisarGruposDosEventos(); } }) $('.grupos_pcasp').on('change', function(){ if($(this).val() != null && $(this).val() != ''){ pesquisaEventosContabeis(); } }) $('.grupos_de_eventos').on('change', function(){ if($(this).val() != null && $(this).val() != ''){ pesquisaEventosContabeis(); } }) $('.codigo_subconta').on('change', function(){ $('.evento_contabil').trigger('change'); }) $('.unidade_orcamentaria').on('change', function(){ var session = "#{session[:lancamento_manual]}" if (session == "almoxarifado"){ pesquisaCentrosDeCusto(); } }) $('.centro_de_custo').on('change', function(){ $('.evento_contabil').trigger('change'); }) function podeRealizarPesquisaDeGrupo(){ let categoriaDeLancamentoPossuiValor = $('.categoria_de_lancamento').val() != ''; let tituloPossuiValor = $('.titulo').val() != ''; let naoExigeTitulo = $('.lancamento_manual').val() != 'divida_ativa'; return categoriaDeLancamentoPossuiValor && (tituloPossuiValor || naoExigeTitulo) ; } function pesquisarGruposDosEventos(callback=null){ limpaSelectBox(".evento_contabil"); limpaSelectBox(".grupos_de_eventos"); var categoriaDeLancamento = $('.categoria_de_lancamento').val(); var titulo = $('.titulo').val(); var gruposPcasp = $('.grupos_pcasp').val(); param = '' if(titulo != undefined){ param = param + `&q%5Btitulo_eq%5D=${titulo}` } var url = root_url + `contabilidade/index_grupos_dos_eventos/?q%5Bcategoria_de_lancamento_eq%5D=${categoriaDeLancamento}` + param if (categoriaDeLancamento >= 3) { url += "&todos=1" } $.ajax({ type: 'GET', dataType: 'json', url: url, beforeSend: function(){ LoadingInterface("Carregando Grupos..."); }, success: function(data, stauts, xhr){ if($.trim(data) != ""){ $.each(data, function (i, item) { option = new Option(item.nome_do_grupo, item.id, true, true); select_box.append(option); }); populaSelectBox(select_box); if (callback != null) { callback(); } } } }) } function pesquisaEventosContabeis(callback=null){ limpaSelectBox(".evento_contabil"); var gruposPcasp = $('.grupos_pcasp').val(); param = '' if(gruposPcasp != undefined){ if (gruposPcasp == 'circulante') { param = param + `&q%5Bconfiguracao_do_evento_contabil_grupo_pcasp_eq%5D=1` } else if (gruposPcasp == 'nao_circulante'){ param = param + `&q%5Bconfiguracao_do_evento_contabil_grupo_pcasp_eq%5D=2` } else { param = '' } } $.ajax({ type: 'GET', dataType: 'json', url: root_url + `contabilidade/${$('.exercicio').val()}/eventos_contabeis?q%5Bgrupo_de_evento_contabil_id_eq%5D=${$('.grupos_de_eventos').val()}` + param, beforeSend: function(){ LoadingInterface("Carregando Eventos..."); }, success: function(data, status,xhr){ if($.trim(data) != ""){ $.each(data, function (i, item) { option = new Option(item.nome, item.id, true, true); select_box.append(option); }); populaSelectBox(select_box); if (callback) { callback(); } } } }) } function linkParaPesquisarContas(){ var idDoEvento = $('.evento_contabil').val(); var contaDebito = 0; var url = new URL(`${root_url}contabilidade/${$('.exercicio').val()}/contas`); url.searchParams.append('q[detalhamento_extra_blank]', ''); url.searchParams.append('q[contas_por_eventos_contabeis_evento_contabil_id_eq]', idDoEvento); url.searchParams.append('q[contas_por_eventos_contabeis_tipo_de_lancamento_eq]', contaDebito); url.searchParams.append('q[contas_filhas_detalhamento_extra_not_eq]', numeroSubconta()); return url.href; } function linkParaCriarSubconta(contaDebito){ var idDoEvento = $('.evento_contabil').val(); var url = new URL(`${root_url}contabilidade/${$('.exercicio').val()}/contas/new`); url.searchParams.append('conta_pai_id', contaDebito); url.searchParams.append('detalhamento_extra', numeroSubconta()); url.searchParams.append('evento_contabil_id', idDoEvento); url.searchParams.append('tipo', $('.lancamento_manual').val()); return url.href; } function limpaSelectBox(id){ $(id).empty().trigger('change'); select_box = $(id).select2({ placeholder: "Selecione", allowClear: true }) return(select_box); } function populaSelectBox(select_box){ select_box.prepend(new Option('Selecione', '', true, true)); select_box.trigger('change'); } function numeroSubconta(){ if($(".centro_de_custo").val() != "" && $(".centro_de_custo").val() != undefined){ return $(".centro_de_custo option:selected").text(); } return $('.codigo_subconta').val(); } function pesquisaCentrosDeCusto(callback=null){ limpaSelectBox(".centro_de_custo"); $.getJSON(urlPesquisaCentrosDeCusto(), function(centrosDeCusto){ if($.trim(centrosDeCusto) != ""){ $.each(centrosDeCusto, function (i, item) { option = new Option(item.descricao, item.id, true, true); select_box.append(option); }); populaSelectBox(select_box); } }).then(function() { if (callback) { callback(); } }) } function urlPesquisaCentrosDeCusto(){ var url = new URL(`${root_url}controladoria/centro_de_custos`); url.searchParams.append('q[unidade_gestora_unidades_orcamentarias_id_eq]', $('.unidade_orcamentaria').val()); url.searchParams.append('com_filhas', true); return url.href; }