= javascript_include_tag 'gestao_de_estoque/consumos/form' .alert.alert-warning[role="alert" id="alert-content" style="display: none;"] span#alert-message = simple_form_for(@consumo) do |f| = f.error_notification = f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? legend strong = @consumo.new_record? ? 'Cadastrar ' : 'Editar ' - if logado_no_administrativo? ' Req. de Materiais - else ' Consumos .form-inputs / .row#opcoes_consumo / .col-sm-3.mb-5 / = f.label :data_de_consumo, "Data*", class: "control-label" / = f.calendar_field :data_de_consumo / = error_for @consumo, :data_de_consumo / .col-sm-3 / = f.input :tipo_de_material, label: "Tipo de Material", collection: @tipos_de_materiais, value_method: :second, label_method: :first, include_blank: "Selecione", input_html: { class: "s2", id: "tipo_de_material", style: 'width: 100%' } / .col-sm-3 / = f.input :sub_elemento_de_despesa_id, label: "Detalhamento", collection: f.object.retorna_todos_sub_elementos, label_method: :codigo_e_descricao, include_blank: "Selecione", input_html: { class: "s2", id: "sub_elemento_de_despesa" } .row .col-sm-2.mb-5 = f.input :data_de_consumo, label: "Data", as: :string, wrapper: :calendar_field, input_html: { autocomplete: "off", class:"date-picker" } .col-sm-4.mb-5 = f.input :responsavel_id, label: "Responsável", collection: @agentes, label_method: :cpf_e_nome, include_blank: "Selecione", input_html: {class: "s2"} br - if @interno.present? .col-sm-9 .checkbox.checkbox-circle = f.check_box :separa_itens_por_setor, class: "form-check-input" = f.label :separa_itens_por_setor, "Separar Itens por Setores", class: "form-check-label" .row .col-sm-3 = f.input :unidade_orcamentaria_id, label: "Unidade Orçamentária", collection: @unidades_orcamentarias, label_method: :codigo_e_nome_e_exercicio, include_blank: 'Selecione', input_html: { class: 's2', id: 'unidade_orcamentaria'} .col-sm-3 = f.input :almoxarifado_id, label: "Almoxarifado", collection: @almoxarifados, label_method: :codigo_e_nome, include_blank: "Selecione", input_html: { class: "s2", id: "almoxarifado"} .div id='mostra_escola' .col-sm-3 = f.hidden_field :escola_id, id:'escola' = label_tag :escola, 'Escola', class: "control-label" = text_field_tag :escola, '', readonly: true, class: "form-control s2 escola_teste" .col-sm-3 id='usa_escola' .checkbox.checkbox-circle = f.check_box :usa_escola, class: "form-check-input" = f.label :usa_escola, "Usar escolas no consumo?", class: "form-check-label" .div id='mostra_tabela_de_itens' .form-group .row .col-sm-12 = error_for @consumo, :programas_por_consumo = render 'tabela_programa_por_consumo', f: f .row .col-sm-6 = f.input :setor_solicitante, label: "Setor Solicitante", input_html: { row: 1 } .col-sm-6 = f.input :requisitante, label: "Requisitante", input_html: { row: 1 } .row .col-sm-12 = f.input :historico, label: "Histórico", input_html: { row: 5 } .form-group h6 ' (*) Campos Obrigatórios .form-actions .row .col-sm-12 - if @consumo.new_record? = f.submit 'Salvar e ir para itens', class: "btn btn-default" / - if @tipo == :outros / = link_to "Cancelar", gestao_de_estoque_consumos_path(tipo: 'outros'), class: "btn btn-default" - if logado_no_administrativo? = link_to "Cancelar", gestao_de_estoque_estoques_path, class: "btn btn-default" - else = link_to "Cancelar", gestao_de_estoque_consumos_path, class: "btn btn-default" - else = f.submit 'Salvar', class: "btn btn-primary" = link_to "Cancelar", gestao_de_estoque_consumo_path(@consumo), class: "btn btn-default" - content_for :js do javascript: $(function(){ inicia(); $('form').on('cocoon:after-insert', inicia); $('form').on('cocoon:before-remove', function (e, removedItem) { $('input[data-autonumeric]', removedItem).val('0'); $('input[type="hidden"][id$="_item_id"]', removedItem).val('0'); }); if ($('#gestao_de_estoque_consumo_usa_escola').is(":checked")){ $("#mostra_escola").show(); $("#mostra_tabela_de_itens").show(); buscaEscola(); }else{ $("#mostra_escola").hide(); $("#mostra_tabela_de_itens").hide(); } $('#gestao_de_estoque_consumo_usa_escola').change(function(){ if ($(this).is(":checked")){ $("#mostra_escola").show(); $("#mostra_tabela_de_itens").show(); buscaEscola(); }else{ $("#mostra_escola").hide(); $("#mostra_tabela_de_itens").hide(); } }); }); $('#almoxarifado').change(function(){ var id = $(this).val(); if (id != undefined && id != '') { $.getJSON(root_url + "gestao_de_estoque/almoxarifados/" + id + ".json?", function (dados) { escola = dados.escola_id if (escola != undefined && escola != ''){ $("#usa_escola").show(); }else{ $("#usa_escola").hide(); $('#gestao_de_estoque_consumo_usa_escola').prop('checked', false); $("#mostra_escola").hide(); $(".escola").each(function (e){ $(this).val('').change(); }); }; }); }; }); function buscaEscola() { var id = $('#almoxarifado').val() if (id != undefined && id != '') { $.getJSON(root_url + "gestao_de_estoque/almoxarifados/" + id + ".json", function (dados) { $(".escola_teste").val(dados.nome_escola) $("#escola").val(dados.escola_id) }) }; setTimeout(function() { buscaProgramasDaEscola(); }, 1000); } function buscaEscolasPorAlmoxarifado() { var id = $('#almoxarifado').val() if (id != undefined && id != '') { $.getJSON(root_url + "gestao_de_estoque/almoxarifados/" + id + ".json", function (dados) { $(".escola").each(function (e){ var referencia = $(this).closest('.referencia') if ($(this, referencia).val() != undefined && $(this, referencia).val() != ''){ }else{ limpaSelectBox($('.escola', referencia)); $.each(dados.programas_por_escola, function (i, escola) { option = new Option(escola.nome, escola.id, true, true); select_box.append(option); }); populaSelectBox(select_box); } }); }) }; } function buscaProgramasDaEscola(){ var id = $('#escola').val() if (id != undefined && id != '') { $.getJSON(root_url + "gestao_de_estoque/escolas/" + id + ".json", function (dados) { $(".programa").each(function (e){ var referencia = $(this).closest('.refe_program') if ($(this, referencia).val() != undefined && $(this, referencia).val() != ''){ }else{ $('.escola_nested', referencia).val(id) limpaSelectBox($('.programa', referencia)); $.each(dados.programas_da_escola, function (i, programa) { option = new Option(programa[0], programa[1], true, true); select_box.append(option); }); populaSelectBox(select_box); } }); }) }; } function inicia() { $('select.s2').select2(); $("#usa_escola").hide(); $('#btn-add-programas-por-consumo').click(buscaProgramasDaEscola); } 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'); } / - if @tipo == :outros / = link_to "Cancelar", gestao_de_estoque_consumo_path(@consumo, tipo: 'outros'), class: "btn btn-default" / - else / = link_to "Cancelar", gestao_de_estoque_consumo_path(@consumo), class: "btn btn-default" / - content_for :js do / javascript: / $(function(){ / $('form').on('cocoon:after-insert', function(e, insertedItem) { / $('select.s2', insertedItem).select2() / $('select.s2').on('select2:select', function (evt) { / $(this).focus() / }) / var linha = $(insertedItem).closest('tr'); / $('.classificacao_do_detalhamento', linha).hide(); / }) / }) / $("body").on("change","#tipo_de_material", function(){ / exibeClassificacaoDoDetalhamento($(this)); / const linha = $(this).closest('#opcoes_consumo') / var url = root_url + "/pesquisas/" + $(this).val() + "/filtra_por_tipo_de_material" / limpaSelectBox($("#sub_elemento_de_despesa", linha)); / $.ajax({ / url: url, / type: 'GET', / beforeSend: function() { / LoadingInterface("Aguarde...") / }, / success: function(data,status,xhr){ / if ($.trim(data) != ""){ / $.each(data, function (i, item) { / option = new Option(item.codigo_e_descricao, item.id, true, true); / select_box.append(option); / }); / populaSelectBox(select_box); / } / } / }) / }) / function exibeClassificacaoDoDetalhamento(tipoDeMaterial){ / var linha = tipoDeMaterial.closest('tr'); / if(tipoDeMaterial.val() == 'consumo_distribuicao_gratuita'){ / $('.classificacao_do_detalhamento', linha).show(); / }else{ / $('.classificacao_do_detalhamento', linha).hide(); / } / } / function limpaSelectBox(id){