JavaFree.org | RubyOnBr.org

Argument out of range

Acompanhar Argument out of range 8 posts, 3 participantes

Avatar Emerson 98 posts

Moçada, é o seguinte..
Tenho uma folha de calendário, um método que retorna apenas as quartas-feiras do mes corrente, e para cada quarta, 3 horários para atendimento..
Quando todos os horários estiverem ocupados, automaticamente o mês deve ser incrementado e uma nova folhinha é mostrada.
Foi simples fazer a primeira incrementação de Julho para Agosto, mas, de Agosto para Setembro está difícil.
Sei que preciso de uma variável Global que guarde o estado atual do mes que está sendo mostrado na folhinha(esse mês não é, necessariamente, o mes corrente)
Helper:

View linha do erro Argumente out of range:

Mais uma vez agradeço!

 
B13a135198320737beec6918deb80b06 chiquitao 155 posts

Cara não entendi muito bem seu metodo… mas se vc quiser um Array com todos os dias das quartas feiras de um mês, fiz esse metodo aqui…


def busca_quartas(date)
init_month = date.beginning_of_month
wednesdaies = []
first_wednesday = init_month.beginning_of_week.advance(:days => 2)
wednesdaies << first_wednesday if first_wednesday.month == init_month.month
week = init_month
while week.next_week(:wednesday).month == init_month.month
wednesdaies << week.next_week(:wednesday)
week = week.next_week
end
wednesdaies
end

Ele recebe uma data como parametro (Ex: Time.now)
e te retorna um array de datas sendo q todas elas são as quartas feiras do mes da data passada…

Vê aí se ajuda…
Abraç

 
Avatar Mereghost 1476 posts

Ou pega todas as quartas até o final do ano que vem.

Passa o vetor e modifica o calendar com js.

 
B13a135198320737beec6918deb80b06 chiquitao 155 posts

Esse Ficou firmeeeza ein! =)

 
Avatar Emerson 98 posts

Eu só posso modificar o calendário depois que todas as datas já foram preenchidas.
O método que busca as quartas esta funfando e busca só do mes corrente, pq eu preciso verificar se existem datas que foram canceladas(datas canceladas serão disponibilizadas para novo agendamento)

Entendam que, devido a grande demanda de agendamentos, a folhinha que aparecerá nunca será do mês corrente, (exceto se houver datas canceladas), ou seja:

Algoritimo:
1- A folhinha que aparece é do mes atual(Agosto);
2- Grande demanda de agendamentos faz com que o mes de Agosto fique lotado, e automaticamente, a folhinha de Setembro aparecerá;
3- Grande demanda de agendamentos provoca preenchimento total do mes de Setembro e a folhinha de Outubro aparecerá;
4- Ainda estamos no mês de Agosto, mas a folhinha já está em Outubro, se houverem desistências em Setembro a folhinha de Setembro é mostrada.

EU já consegui fazer com que a folhinha pule do mes atual para o seguinte e que retorne ao mes atual caso exista uma vaga(desistência), MAS, não consigo fazê-lo para 2 meses a frente do mes atual. =/

 
B13a135198320737beec6918deb80b06 chiquitao 155 posts

Agora entendi o que vc quis dizer… mas tá difícil de entender seu código,
Em que linha está dando o erro?
Pelo nome do erro vc esta acessando está acontecendo algo nos limites de algum desses seus loops que dependendo do mês, e seu numero de dias, deve estar indo fora do range…
Por Ex: fevereiro tem 28 ou 29 dias,

eu chutaria esse while


while quartas <= 31 do
dias << quartas
quartas = quartas+7
end

como um forte candidato a fazer algo fora de um range…
Mas mostra aí pra gente onde da o erro exatamente…
Abraç

 
Avatar Emerson 98 posts

Linha do erro: Argument out of range

busca_quarta:

busca_mes_num:

View:

 
Avatar Mereghost 1476 posts

Hmmm… sinto cheiro de necessidade de refactor, mas fica aqui uma idéia rápida de como resolver seu problema.