Skip to main content

Horários de atendimento diferentes no mesmo dia


Matheus1

Olá! Estou com uma dúvida se existe a possibilidade de ter dois diferentes horários de atendimento no mesmo dia. Ex: seg de 8:00 ás 12:00 e de 13:00 ás 17:00.
Tentei usando os operadores OU e AND seguindo a lógica do arquivo js, porém sem sucesso. Seria possível? Ou não tem jeito mesmo?

Este tópico foi fechado para respostas.

8 comentários

Bruno
  • Specialist
  • March 12, 2020

É possível sim, basta fazer um tratamento no seu Javascript. Posta pra gente o código que você tentou usar e não conseguiu.


Matheus1
  • Autor
  • Connected
  • March 13, 2020

O código é este :

function run(offset, start, end, workDays) {

offset = parseInt(offset) + DEFAULT_OFFSET;

let today = nowUTC(offset);
let startDate = utcDate(start, offset);
let endDate = utcDate(end, offset);
let starttDate = utcDate(start, offset);
let enddDate = utcDate(end, offset);

return (((today - startDate) > 0) && ((endDate - today) > 0) || ((today - starttDate) > 0) && ((enddDate - today) > 0)) && isWorkDay(today, workDays);
}

Criei as variáveis starttDate e enddDate em variáveis de configuração, além disso coloquei config.enddDate e config.starttDate nas variáveis de entrada do bloco que verifica horário de atendimento. Porém mesmo no horário configurado ele não reconhece os horários de atendimento destas variáveis.


Bruno
  • Specialist
  • March 13, 2020

@Matheus1

Você está passando starttDate e enddDate como parâmetro na função run? No código apresentado, você está usando os mesmos horários startDate e endDate para definir starttDate e enddDate


Matheus1
  • Autor
  • Connected
  • March 13, 2020

Realizei a sua sugestão e continua ocorrendo a falha. Segue o código atualizado

function run(offset, start, end,startt,endd, workDays) {

offset = parseInt(offset) + DEFAULT_OFFSET;

let today = nowUTC(offset);
let startDate = utcDate(start, offset);
let endDate = utcDate(end, offset);
let starttDate = utcDate(startt, offset);
let enddDate = utcDate(endd, offset);

return (((today - startDate) > 0) && ((endDate - today) > 0) || ((today - starttDate) > 0) && ((enddDate - today) > 0)) && isWorkDay(today, workDays);
}

´Fiz também dessa maneira e não funcionou

function run(offset, start, end,starttDate,enddDate, workDays) {

offset = parseInt(offset) + DEFAULT_OFFSET;

let today = nowUTC(offset);
let startDate = utcDate(start, offset);
let endDate = utcDate(end, offset);
let starttDate = utcDate(starttDate, offset);
let enddDate = utcDate(enddDate, offset);

return (((today - startDate) > 0) && ((endDate - today) > 0) || ((today - starttDate) > 0) && ((enddDate - today) > 0)) && isWorkDay(today, workDays);
}


Bruno
  • Specialist
  • March 16, 2020

@Matheus1

Pelos testes que eu realizei aqui, esses códigos funcionaram, retornando true. Talvez o problema esteja em alguma outra parte.


Matheus1
  • Autor
  • Connected
  • March 16, 2020

Fiz mais testes aqui e ele só funciona se estiver dentre os horários de startDate e endDate, quando fica entre starttDate e enddDate continua aparecendo fora do horário de atendimento. Acho que pode estar relacionado ao start/end que é passado de parâmetro na function run. Você sabe se há em algum lugar nas configurações que start e end existam? Pois aqui eu só vejo eles no script.


Bruno
  • Specialist
  • March 16, 2020

@Matheus1

Não sei se entendi direito sua dúvida. Você quer saber onde essas informações são definidas antes de chegar no script? Elas são definidas nas variáveis de configuração do bot.

image

Não se esqueça de colocar elas como parâmetro de entrada do script

image


Matheus1
  • Autor
  • Connected
  • March 16, 2020

Consegui aqui. O problema era a ordem das variáveis de parâmetro no script, no caso eu estava colocando config.workDays antes de config.enddDate e config.starttDate. Quando coloquei config.workDays no final funcionou corretamente. Muito obrigado!