[Resolvido] Horários de atendimento diferentes no mesmo dia

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?

1 Curtida

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

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.

@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

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);
}

@Matheus1

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

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.

@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

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!

1 Curtida