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