.widget .widget-body = simple_form_for Contabilidade::MovimentacaoDaContaBancaria.new, url: registro_bancario_path(busca: 0), method: :get, :html => {class: "form-vertical"} do |f| fieldset .form-group .row.alinhar .col-sm-2 = f.input :data_inicial, as: :string, wrapper: :calendar_field, label: 'Data Inicial', autocomplete: "off", input_html: {class: 'form-control date-picker', id: 'data-inicial', autocomplete: false} .col-sm-2 = f.input :data_final, as: :string, wrapper: :calendar_field, label: 'Data Final', autocomplete: "off", input_html: {class: 'form-control date-picker', id: 'data-final', autocomplete: false} .row.alinhar .col-sm-2 style="border-bottom: 15px;" .form-actions.form-search-actions style="padding-top: 10px; border: 10px;" = f.hidden_field :busca_ativa, value: true = f.submit "Consultar", class: "btn btn-default btn-sm", id: 'botao-busca-movimentacoes', input_html: {style: 'border: 10px;', autocomplete: false} .alert.alert-info.alert-md.alerta-data-vazia p b Importante! | Caso não seja definida a data ao filtrar, será exibido as movimentações da data de hoje (#{Date.today}) .alert.alert-danger.alert-md.alerta-datas-fora-do-range style="display:none" p b Aviso! | O intervalo não pode ser superior a 31 dias .alert.alert-danger.alert-md.alerta-data-inicial-maior style="display:none" p b Aviso! | A data inicial não pode ser superior a data final == render partial: "movimentacoes_bancarias_do_periodo" javascript: $(document).ready(function(){ function diferencaEntreAsDatasMaiorQueTrintaEUmDias(dataInicial, dataFinal){ return (diferencaDeTempo = (retornaDataObject(dataFinal).getTime() - retornaDataObject(dataInicial).getTime())/(1000*3600*24)) > 31 } function retornaDataObject(data){ var dateParts = data.val().split("/") var dateObject = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0]) return dateObject } function dataInicialEMaiorQueDataFinal(dataInicial, dataFinal){ return retornaDataObject(dataInicial).getTime() > retornaDataObject(dataFinal).getTime() } function dataInicialEdataFinalPreenchidas(dataInicial, dataFinal){ return !(dataInicial.val() == "") && !(dataFinal.val() == "") } $('#data-inicial, #data-final').change(function(){ if ($('#data-inicial').val() == "" || $('#data-final').val() == ""){ $('.alerta-data-vazia').show() } else { $('.alerta-data-vazia').hide() } if(dataInicialEdataFinalPreenchidas($('#data-inicial'), $('#data-final')) && diferencaEntreAsDatasMaiorQueTrintaEUmDias($('#data-inicial'), $('#data-final')) ){ $('.alerta-datas-fora-do-range').show() } else { $('.alerta-datas-fora-do-range').hide() } if(dataInicialEdataFinalPreenchidas($('#data-inicial'), $('#data-final')) && dataInicialEMaiorQueDataFinal($('#data-inicial'), $('#data-final')) ){ $('.alerta-data-inicial-maior').show() } else { $('.alerta-data-inicial-maior').hide() } if(dataInicialEdataFinalPreenchidas($('#data-inicial'), $('#data-final')) && (diferencaEntreAsDatasMaiorQueTrintaEUmDias($('#data-inicial'), $('#data-final')) || dataInicialEMaiorQueDataFinal($('#data-inicial'), $('#data-final'))) ){ $('#botao-busca-movimentacoes').prop('disabled', true) } else { $('#botao-busca-movimentacoes').prop('disabled', false) } }); })