Skip to main content

Horario de atendimento não verifica certo no WhatsApp

  • May 10, 2023
  • 1 comentário
  • 53 Visualizações

Bom Dia Gente, poderia me ajudar com o seguinte problema ?

Estou utilizando o código:

function run() {
let workSchedule = [
{
“num”: 1,
“name”: “Monday”,
“portugueseName”: “Segunda”,
“workTime”: [
{
“start”: “08:00”,
“end”: “18:00”
}
]
},
{
“num”: 2,
“name”: “Tuesday”,
“portugueseName”: “Terça”,
“workTime”: [
{
“start”: “08:00”,
“end”: “18:00”
}
]
},
{
“num”: 3,
“name”: “Wednesday”,
“portugueseName”: “Quarta”,
“workTime”: [
{
“start”: “08:00”,
“end”: “18:00”
}
]
},
{
“num”: 4,
“name”: “Thursday”,
“portugueseName”: “Quinta”,
“workTime”: [
{
“start”: “08:00”,
“end”: “18:00”
}
]
},
{
“num”: 5,
“name”: “Friday”,
“portugueseName”: “Sexta”,
“workTime”: [
{
“start”: “08:00”,
“end”: “18:00”
}
]
}
];

return JSON.stringify(workSchedule);

}

E para verificar o:
// Receive the variables as parameters

function run(offset, weekSchedule) {

offset = parseInt(offset);

weekSchedule = JSON.parse(weekSchedule);

let today = nowUTC(offset);

if (isWorkDay(today, weekSchedule)) {

let todaySchedule = getTodaySchedule(weekSchedule, today);

let intervalTime = getIntervalTime(todaySchedule, today);

return checkTime(intervalTime, today);

}

return false;

}

function getIntervalTime(todaySchedule, today) {

let intervalTime = [];

for (let i = 0; i < todaySchedule.workTime.length; i++) {

intervalTime.push({

start: utcDate(todaySchedule.workTime[i].start, today),

end: utcDate(todaySchedule.workTime[i].end, today)

});

}

return intervalTime;

}

function checkTime(intervalTime, today) {

for (let i = 0; i < intervalTime.length; i++) {

if (today - intervalTime[i].start > 0 && intervalTime[i].end - today > 0)

return true;

}

return false;

}

function getTodaySchedule(weekSchedule, today) {

for (let i = 0; i < weekSchedule.length; i++) {

if (weekSchedule[i].num == today.getUTCDay()) return weekSchedule[i];

}

}

//Get now UTC Date

function nowUTC(offset) {

let now = new Date();

let utc_timestamp = Date.UTC(

now.getUTCFullYear(),

now.getUTCMonth(),

now.getUTCDate(),

now.getUTCHours(),

now.getUTCMinutes(),

now.getUTCSeconds(),

now.getUTCMilliseconds()

);

return new Date(utc_timestamp + offset * 3600 * 1000);

}

//Get UTC Date

function utcDate(timeString, today) {

let hour = getValueByString(“hour”, timeString);

let minutes = getValueByString(“minutes”, timeString);

let utc_timestamp = Date.UTC(

today.getUTCFullYear(),

today.getUTCMonth(),

today.getUTCDate(),

hour,

minutes,

0,

0

);

return new Date(utc_timestamp);

}

//Get hour/minute by string with pattern HH:mm

function getValueByString(type, timeString) {

if (type === “hour”) {

return parseInt(timeString.substring(0, timeString.indexOf(“:”)));

} else if (type === “minutes”) {

return parseInt(

timeString.substring(timeString.indexOf(“:”) + 1, timeString.length)

);

}

return 0;

}

//Get if today is a work day

function isWorkDay(today, workDays) {

for (let i = 0; i < workDays.length; i++) {

if (workDays[i].num == today.getDay().toString()) return true;

}

return false;

}

E em Preprod (Blip) ele verificar normal o horario de atendimento, mas quando passo para o WhatsApp não, alguém conseguiria me ajudar ?

Este tópico foi fechado para respostas.

1 comentário

Rafael_Figueiredo
Blipper
Forum|alt.badge.img+6

Olá @Gabriel_Lutz tudo bem ?

No caso tem que ver se quem vem do whatsapp, está passando realmente pelo bloco, pode usar a extensão do beholder para validar passo a passo e se não tem outro tipo de direcionamento devido a notificação ativa que ignora esse bloco e já cai no atendimento humano.