.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()
}
});