= javascript_include_tag 'administrativo/requisicoes_de_materiais/form' .alert.alert-warning[role="alert" id="alert-content" style="display: none;"] span#alert-message = simple_form_for(@requisicao_de_material) do |f| - if configuracao.usa_modulo_administrativo? = f.input :avulsa, as: :hidden, input_html: { value: false } - else = f.input :avulsa, as: :hidden, input_html: { value: true } = f.input :marca_todos_centro_de_custo, as: :hidden, input_html: { value: "#{@requisicao_de_material.new_record?}", class: "marca_todos_centro_de_custo"} = f.input :tipo_de_solicitacao, as: :hidden, input_html: { value: "solicitacao_requisicao" } = f.input :tipo_de_consumo, as: :hidden, input_html: { value: "saida_de_material"} fieldset legend strong = @requisicao_de_material.new_record? ? 'Cadastrar' : 'Editar' - if configuracao.usa_modulo_administrativo? ' Requisição de Material - else ' Saída de Material - if f.object.errors[:base].present? .div.alert.alert-danger "#{f.object.errors[:base].to_sentence}" .form-group .row .col-sm-3 = f.input :data_da_requisicao, label: "#{configuracao.usa_modulo_administrativo? ? "Data da Requisição" : "Data da Saída" }", as: :string, wrapper: :calendar_field, input_html: { class: "date-picker", placeholder: "#{Date.today}", id: "data_da_requisicao" } .col-sm-2 = f.input :tipo_de_requisicao, label: "Tipo de Requisição", collection: Administrativo::RequisicaoDeMaterial.tipos_de_requisicoes_i18n, label_method: :first, value_method: :second, include_blank: "Selecione", input_html: { class: "s2"} .col-sm-4 = f.input :responsavel_id, label: "Responsável da Requisição", collection: @agentes, label_method: :cpf_e_nome, include_blank: "Selecione", input_html: {class: "s2"} - if Configuracao.last.utiliza_centro_de_custo_na_requisicao? .col-sm-3 .checkbox.checkbox-circle = f.input :utiliza_centro_de_custo, label: "Utiliza Centro de Custo ?", input_html: { style: "margin-right: 10px", id: "utiliza-centro-de-custo"} .form-group fieldset legend strong Dados da Requisição .row .col-sm-4 - if f.object.possui_recebimento_de_material? = f.input :unidade_orcamentaria_id, label: "Unidade Orçamentária", as: :string, disabled: true, input_html: { value: f.object.try(:unidade_orcamentaria).try(:codigo_e_nome_e_exercicio)} = f.input :unidade_orcamentaria_id ,as: :hidden, input_html: { value: f.object.unidade_orcamentaria_id, id: "unidade_orcamentaria" } - else = 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-4 - if f.object.possui_recebimento_de_material? = f.input :almoxarifado_id, label: "Almoxarifado Origem", as: :string, disabled: true, input_html: { value: f.object.try(:almoxarifado).try(:codigo_e_nome) } = f.input :almoxarifado_id ,as: :hidden, input_html: { value: f.object.almoxarifado_id } - else = f.input :almoxarifado_id, label: "Almoxarifado Origem", collection: @almoxarifados, label_method: :codigo_e_nome, include_blank: "Selecione", input_html: { class: "s2", id: "almoxarifado"} .col-sm-4 - if f.object.possui_recebimento_de_material? && f.object.almoxarifado_destino_id.present? = f.input :almoxarifado_destino_id, label: "Almoxarifado de Destino", collection: @almoxarifados, label_method: :codigo_e_nome, disabled: true ,include_blank: "Selecione", input_html: { class: "s2" , id: "almoxarifado_destino"} - else = f.input :almoxarifado_destino_id, label: "Almoxarifado de Destino", collection: @almoxarifados, label_method: :codigo_e_nome, include_blank: "Selecione", input_html: { class: "s2" , id: "almoxarifado_destino"} -if logado_no_administrativo? = f.hidden_field :logado_no_adm, input_html: {value: true} - if configuracao.usa_modulo_administrativo? .form-group .row .col-sm-4 .checkbox.checkbox-circle style="padding-top: 20px;" - if f.object.possui_recebimento_de_material? = f.input :trazer_itens_do_recebimento, label: "Trazer itens do recebimento ?", as: :boolean, input_html: { id: "trazer_itens_do_recebimento", value: f.object.trazer_itens_do_recebimento? } - else = f.input :trazer_itens_do_recebimento, label: "Trazer itens do recebimento ?", as: :boolean, input_html: { id: "trazer_itens_do_recebimento" } .col-sm-8#container_recebimento_de_materiais - if f.object.possui_recebimento_de_material? = f.input :recebimento_de_material_id, as: :string, label: "Ordem de Fornecimento", disabled: true, input_html: { value: f.object.try(:recebimento_de_material).try(:numero_da_ordem_de_compra_e_fornecedor) } = f.input :recebimento_de_material_id ,as: :hidden, input_html: { value: f.object.recebimento_de_material_id } - else = f.input :recebimento_de_material_id, label: "Ordem de Fornecimento", collection: @recebimento_de_materiais, label_method: :numero_da_ordem_de_compra_e_fornecedor, include_blank: "Selecione", input_html: { class: "s2", id: "recebimento_de_material" } #centros_de_custo legend strong Centros de custo = f.fields_for :centros_de_custo_da_requisicao, @requisicao_de_material.centros_de_custo_da_requisicao do |centro_de_custo| = render 'centro_de_custo_da_requisicao_fields', f: centro_de_custo = link_to_add_association ' Adicionar'.html_safe, f, :centros_de_custo_da_requisicao, :"data-association-insertion-node" => "#centros_de_custo ", :"data-association-insertion-method" => "append", class: 'btn btn-primary btn-sm centros_de_custo_da_requisicao_btn', id: 'btn-add-centros-de-custo-da_requisicao-de-material' = error_for @requisicao_de_material, :base_detalhamento #tabela_detalhamentos table.table.table-bordered.table-hover.table-responsive thead tr th.text-center width="30%" Tipo de Material th.text-center width="30%" Detalhamento th.text-center width="30%" Classificação th width="10%" tbody#detalhamentos_da_requisicao_de_material = f.fields_for :detalhamentos_da_requisicao_de_material, @requisicao_de_material.detalhamentos_da_requisicao_de_material do |detalhamento_da_requisicao| = render 'detalhamento_da_requisicao_de_material_fields', f: detalhamento_da_requisicao tfoot tr td = link_to_add_association ' Adicionar'.html_safe, f, :detalhamentos_da_requisicao_de_material, :"data-association-insertion-node" => "tbody#detalhamentos_da_requisicao_de_material", :"data-association-insertion-method" => "append", class: 'btn btn-primary btn-sm', id: 'btn-add-detalhamentos-da-requisicao_de_material' .form-group .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 @requisicao_de_material.new_record? = f.submit 'Salvar e ir para itens' , name: "ir_para_itens", value: "Salvar e ir para itens", class: "btn btn-success" = link_to "Cancelar", administrativo_requisicoes_de_materiais_path, class: "btn btn-default" - else = f.submit "Salvar", class: "btn btn-primary" = link_to "Cancelar", administrativo_requisicao_de_material_path(@requisicao_de_material), class: "btn btn-default" - content_for :js do javascript: $(document).ready(function(){ exibe_tabela_detalhamento() $(".centros_de_custo_da_requisicao_btn").hide(); $("#centros_de_custo").hide(); buscaCentroDeCustos($("#unidade_orcamentaria")); if ($('#administrativo_requisicao_de_material_unidade_orcamentaria_id').val() != ''){ $('#unidade_orcamentaria').trigger('change'); } $('.nested-fields').each(function(){ var linha = $(this); var tipoDeMaterial = $('.tipo_de_material', linha).val(); var classificacao = $('.classificacao_do_detalhamento', linha); if(tipoDeMaterial == 'consumo_distribuicao_gratuita'){ $('.classificacao_do_detalhamento', linha).show(); }else{ $('.classificacao_do_detalhamento', linha).hide(); } }) }) $("#utiliza-centro-de-custo").on("click", function(){ if($(this).is(":checked")){ buscaCentroDeCustos($("#unidade_orcamentaria")); }else{ $(".centro_de_custo_check_box").each(function(){ $(this).remove(); }) } }) $("#unidade_orcamentaria").on("change", function(){ $(".centro_de_custo_check_box").each(function(){ $(this).remove(); }) buscaCentroDeCustos($(this)); }) function buscaCentroDeCustos(unidade_orcamentaria){ if($("#utiliza-centro-de-custo").is(":checked")){ $.ajax({ url: `${ root_url }pesquisas/retorna_centros_de_custo_por_unidade_orcamentaria/${unidade_orcamentaria.val()}`, method: "GET", beforeSend: function(){ LoadingInterface("Carregando Centro de Custos..."); }, success: function(data){ if(data.length > 0){ $("#centros_de_custo").show(); }else{ $("#centros_de_custo").hide(); } for(let i = 0; i < data.length; i++){ var centroDeCustoNome = data[i].descricao; var elementoJaFoiCriado = false; $(".label_marcado_para_cadastro").each(function(){ if($(this).text() == centroDeCustoNome){ elementoJaFoiCriado = true; } }) if(!elementoJaFoiCriado){ $(".centros_de_custo_da_requisicao_btn").trigger("click"); if($(".marca_todos_centro_de_custo").val() == "true"){ console.log("marca pra coisaar") $(".centro_de_custo_input").last().attr("value", 1); $(".centro_de_custo_input").last().prop("checked", true); } $(".id_do_centro_de_custo").last().attr("value", data[i].id); $(".label_marcado_para_cadastro").last().text(data[i].descricao) } } } }) } } $("#trazer_itens_do_recebimento").on("change", function(){ exibe_tabela_detalhamento() }) function exibe_tabela_detalhamento(){ if($("#trazer_itens_do_recebimento").is(":checked")){ $("#tabela_detalhamentos").hide() }else{ $("#tabela_detalhamentos").show() } } $(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('tr') 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 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 exibeClassificacaoDoDetalhamento(tipoDeMaterial){ var linha = tipoDeMaterial.closest('tr'); if(tipoDeMaterial.val() == 'consumo_distribuicao_gratuita'){ $('.classificacao_do_detalhamento', linha).show(); }else{ $('.classificacao_do_detalhamento', linha).hide(); } }