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