/ = javascript_include_tag 'gestao_de_estoque/transferencia/transferencia'
.alert.alert-warning[role="alert" id="alert-content" style="display: none;"]
span#alert-message
.alert.alert-warning[role="alert" id="alert-content" style="display: none;"]
span#alert-message
= form_for( @transferencia, html: { class: "form-vertical" }, role: "form" ) do |f|
fieldset
legend
strong
= @transferencia.new_record? ? 'Cadastrar' : 'Editar'
' Transferência
.form-group
.row
.col-sm-4
= f.label :data_de_transferencia, "Data de Transferência*", class: "control-label"
= f.calendar_field :data_de_transferencia, id: "data_de_transferencia"
= error_for @transferencia, :data_de_transferencia
.col-sm-4
= f.label :tipo_de_material, "Tipo de Material*", class: "control-label", for: "normal-field"
= f.select :tipo_de_material,
options_for_select( \
@tipos_de_materiais.collect {|t|[ "#{GestaoDeEstoque::Transferencia.localizar("tipo_de_material", t[0])}", t[0] ] },
@transferencia.try(:tipo_de_material) \
),
{include_blank: 'Selecione'},
class: 'form-control s2', id: "tipo_de_material"
= error_for @transferencia, :tipo_de_material
.col-sm-4
= f.label :classificacao_tipo_de_material, "Detalhamento*", class: "control-label"
= f.select :classificacao_tipo_de_material,
options_for_select( \
@classificacoes_tipo_de_material.collect {|t|[ "#{GestaoDeEstoque::Transferencia.localizar("classificacao_tipo_de_material", t[0])}", t[0] ] },
@transferencia.try(:classificacao_tipo_de_material) \
),
{include_blank: 'Selecione'},
class: 'form-control s2', id: "classificacao_tipo_de_material"
= error_for @transferencia, :classificacao_tipo_de_material
.form-group
.row
.col-sm-12
fieldset
legend
strong
' Dados da Origem
.row
.col-sm-5
= f.label :unidade_orcamentaria_id, "Unidade Orçamentária*", class: "control-label"
= f.select :unidade_orcamentaria_id,
options_from_collection_for_select( \
@unidades_orcamentarias, :id, :codigo_e_nome_e_exercicio, f.object.try(:unidade_orcamentaria_id) \
), { include_blank: "Selecione" },
class: "form-control s2", id: "unidade_orcamentaria"
= error_for @transferencia, :unidade_orcamentaria_id
.col-sm-5
= f.label :almoxarifado_id, "Almoxarifado*", class: "control-label"
= f.select :almoxarifado_id,
options_from_collection_for_select(@almoxarifados_de_origem, :id, :codigo_e_nome, f.object.try(:almoxarifado_id)), { \
include_blank: "Selecione" \
},
class: "form-control s2", id: "almoxarifado"
= error_for @transferencia, :almoxarifado_id
.form-group
.row
.col-sm-12
fieldset
legend
strong
' Dados do Destino
.row
.col-sm-5
= f.label :unidade_orcamentaria_de_destino_id, "Unidade Orçamentária*", class: "control-label"
= f.select :unidade_orcamentaria_de_destino_id,
options_from_collection_for_select( \
@unidades_orcamentarias, :id, :codigo_e_nome_e_exercicio, f.object.try(:unidade_orcamentaria_de_destino_id) \
), { include_blank: "Selecione" },
class: "form-control s2", id: "unidade_orcamentaria_de_destino"
= error_for @transferencia, :unidade_orcamentaria_de_destino_id
.col-sm-5
= f.label :almoxarifado_de_destino_id, "Almoxarifado*", class: "control-label"
= f.select :almoxarifado_de_destino_id,
options_from_collection_for_select(@almoxarifados_de_destino, :id, :codigo_e_nome, f.object.try(:almoxarifado_de_destino_id)), { \
include_blank: "Selecione" \
},
class: "form-control s2", id: "almoxarifado_destino"
= error_for @transferencia, :almoxarifado_de_destino_id
.col-sm-2 id='mostra_checkbox_programas'
.checkbox.checkbox-circle
= f.check_box :usa_programa, class: "form-check-input", id: "usa_programa", style: "margin-right: 5px"
= f.label :usa_programa, "Separar por programas?", class: "form-check-label"
= error_for @transferencia, :usa_programa
.div id='mostra_tabela'
.form-group
.row
.col-sm-12
= error_for @transferencia, :programas_por_almoxarifado_e_transferencia
= render 'tabela_programa_por_almoxarifados_e_transferencias', f: f
.row style="margin-top:20px"
.col-sm-9.form-check style="padding: 10px;"
= f.check_box :transferir_todos_os_itens, class: "form-check-input", id: "transferir_todos_os_itens", style: "margin-right: 5px"
= f.label :transferir_todos_os_itens, "Transferir todos os itens", class: "form-check-label", for: "transferir_todos_os_itens"
= error_for @transferencia, :transferir_todos_os_itens
.row style="margin-top30px"
.col-sm-12#section-observacao
= f.label :observacao, 'Observações', class: "control-label"
= f.text_area :observacao, rows: 5, cols: 10, class: "form-control", id: "observacoes"
= error_for @transferencia, :observacao
h6
' (*) Campos Obrigatórios
.form-actions
.row
.col-sm-12
= f.submit "Salvar", class: "btn btn-primary"
= link_to "Cancelar", gestao_de_estoque_transferencias_path, class: "btn btn-default"
- content_for :js do
javascript:
$(function() {
inicia();
$('form').on('cocoon:after-insert', function(e, insertedItem) {
$('select.s2', insertedItem).select2();
$('select.s2').on('select2:select', function(evt) {
$(this).focus();
});
$("[data-autonumeric=true]").autoNumeric('init');
$('.valor_unitario, .sub-total, .moeda', insertedItem).autoNumeric('init', {
'aSep': '.',
'aDec': ',',
'aPad': 2,
'vMin': 0,
'aSign': 'R$ ',
'mDec': 4
});
$(document).trigger('refresh_autonumeric');
});
if ($('#usa_programa').is(":checked")){
$("#mostra_tabela").show();
}else{
$("#mostra_tabela").hide();
}
$('#unidade_orcamentaria').change(function(){
var id = $(this).val()
if (id != undefined && id != '') {
var almoxarifado = $('#almoxarifado')
let url = `${ROOT_PATH}pesquisas/${id}/almoxarifados_por_unidade_orcamentaria`
$.ajax({
url: url,
type: 'GET',
beforeSend: function() {
$(almoxarifado).empty()
$(almoxarifado).append(``)
},
success: function(data){
if ($.trim(data) != ""){
limpaSelectBox($(almoxarifado));
$.each(data, function (i, almoxarifado) {
option = new Option(almoxarifado.codigo_e_nome, almoxarifado.id, true, true);
select_box.append(option);
});
populaSelectBox(select_box);
}
},
error: function(xhr, status, error) {
console.log(xhr, status, error)
}
})
};
});
$('#unidade_orcamentaria_de_destino').change(function(){
var id = $(this).val()
if (id != undefined && id != '') {
var almoxarifado_destino = $('#almoxarifado_destino')
let url = `${ROOT_PATH}pesquisas/${id}/almoxarifados_por_unidade_orcamentaria`
$.ajax({
url: url,
type: 'GET',
beforeSend: function() {
$(almoxarifado_destino).empty()
$(almoxarifado_destino).append(``)
},
success: function(data){
if ($.trim(data) != ""){
limpaSelectBox($(almoxarifado_destino));
$.each(data, function (i, almoxarifado_destino) {
option = new Option(almoxarifado_destino.codigo_e_nome, almoxarifado_destino.id, true, true);
select_box.append(option);
});
populaSelectBox(select_box);
}
},
error: function(xhr, status, error) {
console.log(xhr, status, error)
}
})
};
});
$('#almoxarifado_destino').change(function(){
var id = $('#almoxarifado_destino').val()
if (id != undefined && id != '') {
$.getJSON(ROOT_PATH + "gestao_de_estoque/almoxarifados/" + id + ".json?", function (dados) {
escola = dados.escola_id
if (escola != undefined && escola != ''){
$("#mostra_checkbox_programas").show();
}else{
$("#mostra_checkbox_programas").hide();
$('#usa_programa').prop('checked', false);
$("#mostra_tabela").hide();
$(".programa").each(function (e){
$(this).val('').change();
});
};
});
};
});
$('#usa_programa').change(function(){
if ($(this).is(":checked")){
var almxorifado = $('#almoxarifado_destino').val()
$("#mostra_tabela").show();
buscaProgramasPorAlmoxarifado();
$("#almoxarifado_programa").val(almxorifado);
}else{
$("#mostra_tabela").hide();
$(".programa").each(function (e){
$(this).val('').change();
});
$("#almoxarifado_programa").val('');
}
});
$('#data_de_transferencia').on('change input', function() {
const dataDeTransferencia = $(this).val();
const dataSelecionada = dataDeTransferencia.split('/').reverse().join('-');
if (dataDeTransferencia) {
const dataFormatada = new Date(dataSelecionada + 'T12:00:00');
const diaDaSemana = dataFormatada.getDay();
const fimDeSemana = diaDaSemana === 0 || diaDaSemana === 6;
if (fimDeSemana) {
$('#alert-message').html("A data selecionada é um sábado ou domingo.");
$('#alert-content').show();
} else {
$.ajax({
method: 'GET',
url: root_url + '/base/configuracoes_de_feriados.json',
dataType: 'json',
success: function(data) {
const result = data.find((e) => {
const dataDoFeriado = e.data_do_feriado;
if (dataDoFeriado === dataSelecionada) {
$('#alert-message').html("A data selecionada é um feriado.");
$('#alert-content').show();
return true;
}
});
if (!result) {
$('#alert-content').hide();
}
}
});
}
}
});
function buscaProgramasPorAlmoxarifado() {
var id = $('#almoxarifado_destino').val()
if (id != undefined && id != '') {
$.getJSON(root_url + "gestao_de_estoque/almoxarifados/" + id + ".json?", function (dados) {
$(".programa").each(function (e){
var referencia = $(this).closest('.referencia')
if ($(this, referencia).val() != undefined && $(this, referencia).val() != ''){
}else{
$('.almoxarifado_programa_por_almoxarifado_e_transferencia', referencia).val(id)
limpaSelectBox($('.programa', referencia));
$.each(dados.programas_por_escola, function (i, programa) {
option = new Option(programa[0], programa[1], true, true);
select_box.append(option);
});
populaSelectBox(select_box);
}
});
})
};
}
function inicia() {
$("#mostra_checkbox_programas").hide();
$('#btn-add-programas-por-almoxarifado-e-transferencia').click(buscaProgramasPorAlmoxarifado);
}
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');
}
});