.alert.alert-warning[role="alert" id="alert-content" style="display: none;"] span#alert-message = form_for(@recebimento_de_material, html: { class: "form-vertical" }, role: "form") do |f| = f.hidden_field :avulso, value: false, id: "avulso" = f.hidden_field :modalidade, value: @recebimento_de_material.ordem_de_compra.empenho.modalidade, id: "modalidade_do_empenho" fieldset legend strong = @recebimento_de_material.new_record? ? 'Cadastrar' : 'Editar' ' Recebimento de Material - if f.object.errors[:base].present? .div.alert.alert-danger "#{f.object.errors[:base].to_sentence}" div#alerta-recebimento-fora-do-prazo.alert.alert-warning style="display: none !important;" i.fa.fa-warning =< span Ordem de Fornecimento está fora do prazo de entrega, =< strong prazo de entrega "#{@recebimento_de_material.ordem_de_compra.prazo_de_entrega}". div#alerta-tipo-recebimento.alert.alert-warning style="display: none !important;" i.fa.fa-warning =< span A ordem de compra deriva de um empenho ordinário, o recebimento de materiais deverá ser total. = f.hidden_field :prazo_de_entrega, value: @recebimento_de_material.ordem_de_compra.prazo_de_entrega, id: "prazo_de_entrega" .form-group .row .col-sm-4 = f.label :data_do_recebimento, "Data do Rec.*", class: "control-label" = f.calendar_field :data_do_recebimento, data: { ano: contexto_atual.exercicio }, id: "data_do_recebimento" = error_for @recebimento_de_material, :data_do_recebimento .col-sm-4 = f.label "Tipo de Entrada*", class: "control-label", for: "normal-field" = f.select :tipo_de_entrada, options_for_select( \ @tipos_de_entradas.collect {|t|[ "#{GestaoDeEstoque::RecebimentoDeMaterial.localizar("tipo_de_entrada", t[0])}", t[0] ] }, @recebimento_de_material.try(:tipo_de_entrada) \ ), {include_blank: 'Selecione'}, class: 'form-control s2 entrada', id: "tipo_de_entrada", data: { value: @recebimento_de_material.try(:tipo_de_entrada) } = error_for @recebimento_de_material, :tipo_de_entrada .col-sm-4 = f.label :ordem_de_compra_id, "Ordem de Fornecimento*", class: "control-label", for: "normal-field" = f.text_field :ordem_de_compra, class: "form-control", value: @recebimento_de_material.ordem_de_compra.numero_e_fornecedor, title: @recebimento_de_material.ordem_de_compra.numero_e_fornecedor, readonly: true = f.hidden_field :ordem_de_compra_id, value: @recebimento_de_material.ordem_de_compra.id if @recebimento_de_material.ordem_de_compra.present? = error_for @recebimento_de_material, :ordem_de_compra_id .form-group .row .col-sm-4 = f.label "Tipo de Material*", class: "control-label", for: "normal-field" - if f.object.possui_ordem_de_compra? = f.text_field :tipo_de_material, value: @recebimento_de_material.localizar(:tipo_de_material), class: "form-control", readonly: :readonly = f.hidden_field :tipo_de_material, value: @recebimento_de_material.tipo_de_material - else = f.select :tipo_de_material, options_for_select( \ @tipos_de_materiais.collect {|t|[ "#{GestaoDeEstoque::RecebimentoDeMaterial.localizar("tipo_de_material", t[0])}", t[0] ] }, @recebimento_de_material.try(:tipo_de_material) \ ), {include_blank: 'Selecione'}, class: 'form-control s2', id: "tipo_de_material", data: { value: @recebimento_de_material.try(:tipo_de_material) } = error_for @recebimento_de_material, :tipo_de_material .form-group .row .col-sm-6 = f.label :ordem_de_compra_id, "Unidade Orçamentária*", class: "control-label", for: "normal-field" = f.text_field :unidade_orcamentaria, class: "form-control", value: @recebimento_de_material.unidade_orcamentaria.codigo_e_nome, title: @recebimento_de_material.unidade_orcamentaria.codigo_e_nome, readonly: true = f.hidden_field :unidade_orcamentaria_id, value: @recebimento_de_material.unidade_orcamentaria.id if @recebimento_de_material.ordem_de_compra.present? = error_for @recebimento_de_material, :unidade_orcamentaria_id .col-sm-6 = f.label :ordem_de_compra_id, "Almoxarifado*", class: "control-label", for: "normal-field" = f.text_field :almoxarifado, class: "form-control", value: @recebimento_de_material.almoxarifado.codigo_e_nome, title: @recebimento_de_material.almoxarifado.codigo_e_nome, readonly: true = f.hidden_field :almoxarifado_id, value: @recebimento_de_material.almoxarifado.id if @recebimento_de_material.ordem_de_compra.present? = error_for @recebimento_de_material, :almoxarifado_id .form-group .row style="margin-bottom:25px;" .col-sm-6 = f.label "Tipo de Recebimento", class: "control-label", for: "normal-field" = f.select :tipo_de_recebimento, options_for_select( \ @tipos_de_recebimento.collect {|t|[ "#{GestaoDeEstoque::RecebimentoDeMaterial.localizar("tipo_de_recebimento", t[0])}", t[0] ] }, @recebimento_de_material.try(:tipo_de_recebimento) \ ), { include_blank: false }, class: 'form-control s2', id: "tipo_de_recebimento", data: { value: @recebimento_de_material.try(:tipo_de_recebimento), modalidade_do_empenho: @recebimento_de_material.try(:ordem_de_compra).try(:empenho).try(:modalidade) } = error_for @recebimento_de_material, :tipo_de_recebimento .col-sm-6 .checkbox.checkbox-circle.checkbox_conversao = f.check_box :converte_unidades, class: 'converte_unidades' = f.label 'Converter Unidades?' .form-group .row .col-sm-6.destino = f.label :unidade_orcamentaria_de_destino_id , "Unidade Orçamentária de Destino*", class: "control-label destino", for: "normal-field" = f.select :unidade_orcamentaria_de_destino_id , options_from_collection_for_select(\ @unidades_orcamentarias_de_destino, :id , :codigo_e_nome_e_exercicio , @recebimento_de_material.unidade_orcamentaria_de_destino_id\ ), {include_blank: "Selecione"}, class: "form-control s2" , id: "unidade-de-destino" = error_for @recebimento_de_material, :unidade_orcamentaria_de_destino_id .col-sm-6.destino = f.label :almoxarifado_de_destino_id, "Almoxarifado de Destino*", class: "control-label destino", for: "normal-field" = f.select :almoxarifado_de_destino_id, options_from_collection_for_select(\ @almoxarifados_de_destino, :id , :codigo_e_nome , @recebimento_de_material.almoxarifado_de_destino_id\ ), {include_blank: "Selecione"}, class: "form-control s2" , id: "almoxarifado-de-destino" = error_for @recebimento_de_material, :almoxarifado_de_destino_id .form-group .row .col-sm-4 = f.label :numero_da_nota, "Número da Nota*", class: "control-label" = f.text_field :numero_da_nota, maxlength: 15, class: "form-control" = error_for @recebimento_de_material, :numero_da_nota .col-sm-4 = f.label :serie, "Série*", class: "control-label" = f.text_field :serie, maxlength: 5, class: "form-control" = error_for @recebimento_de_material, :serie .col-sm-4 = f.label :data_de_emissao, "Data de Emissão*", class: "control-label" = f.calendar_field :data_de_emissao = error_for @recebimento_de_material, :data_de_emissao .form-group .row .col-sm-12 = f.label :observacao, 'Observações', class: "control-label" = f.text_area :observacao, rows: 5, cols: 10, class: "form-control" = error_for @recebimento_de_material, :observacao .form-group .row .col-sm-12 = f.label :local, 'Local de Recebimento', class: "control-label" = f.text_area :local, rows: 2, cols: 5, class: "form-control" = error_for @recebimento_de_material, :local .form-group h6 ' (*) Campos Obrigatórios .form-actions .row .col-sm-12 = f.button 'Salvar e ir para itens' , name: "ir_para_itens", value: "Salvar e ir para itens", class: "btn btn-success btn_salvar_ir_itens" = f.submit "Salvar", class: "btn btn-primary btn_salvar" = link_to "Cancelar", gestao_de_estoque_recebimento_de_materiais_path, class: "btn btn-default" - content_for :js do javascript: $(function(){ if($(".entrada option:selected").val() != "remoto_comum" && $(".entrada option:selected").val() != "remoto_consumo"){ $(".destino").hide() } $('#tipo_de_recebimento').trigger('change') $('form').on('cocoon:after-insert', function(e, insertedItem) { $('select.s2', insertedItem).select2() $('select.s2').on('select2:select', function (evt) { $(this).focus() }) }) $('.entrada').change(function(){ if(this.value == "remoto_comum" || this.value == "remoto_consumo"){ $(".destino").show() }else{ $(".destino").hide() } }) defineBotaoSalvar(); }) $('#tipo_de_recebimento').on('change', function(){ if($(this).val() == 'recebimento_total'){ $('.checkbox_conversao').show(); }else{ $('.checkbox_conversao').hide(); } defineBotaoSalvar(); }) $('.converte_unidades').on('change', function(){ defineBotaoSalvar(); }) function defineBotaoSalvar(){ var tipoDeRecebimento = $('#tipo_de_recebimento').val(); var converteUnidade = $('.converte_unidades').is(':checked'); if(converteUnidade || tipoDeRecebimento == 'recebimento_parcial'){ $('.btn_salvar_ir_itens').show(); $('.btn_salvar').hide(); }else{ $('.btn_salvar_ir_itens').hide(); $('.btn_salvar').show(); } } $('#unidade-de-destino').on('change', function(){ if( $('#unidade-de-destino').val() != "" ) { let comboAlmoxarifadoDestino = $('#almoxarifado-de-destino') let url = `${root_url}gestao_de_estoque/${$('#unidade-de-destino').val()}/almoxarifados_por_unidades_orcamentarias` $.ajax({ url: url, type: 'GET', beforeSend: function() { comboAlmoxarifadoDestino.empty() comboAlmoxarifadoDestino.append(``) }, success: function(data,status,xhr) { comboAlmoxarifadoDestino.empty() comboAlmoxarifadoDestino.append($('').attr('value', '').text('Selecione')); comboAlmoxarifadoDestino.prop('selectedIndex', 0); $.each(data, function (key, entry) { comboAlmoxarifadoDestino.append($('').attr('value', entry.id).text(entry.codigo_e_nome)); comboAlmoxarifadoDestino.trigger("change"); }); }, error: function(xhr, status, error) { console.log(xhr, status, error) } }) } else { comboAlmoxarifadoDestino.empty() } });