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?
É 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.
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);
}
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.
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.
Não se esqueça de colocar elas como parâmetro de entrada do script
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!
Comente
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.