Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
144 changes: 62 additions & 82 deletions docs/helpdesk/blipdesk/como-configurar-horario-atendimento.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,107 +160,87 @@ Por fim, **alteraremos o "CheckWorkTime",** aquele que deve ser o segundo script
Por sua vez, temos o script propriamente dito, está apresentado abaixo e pode ser transferido para seu bot e funcionará perfeitamente, caso os passos a passos aqui apresentados sejam seguidos.

```javascript

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

return checkTime(intervalTime, today);
}

return false;
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) {
let intervalTime = [];
for (let i = 0; i < todaySchedule.workTime.length; i++) {
intervalTime.push({
start: utcDate(todaySchedule.workTime[i].start),
end: utcDate(todaySchedule.workTime[i].end)
});
}

return intervalTime;
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;
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.getDay()) return weekSchedule[i];
}
for (let i = 0; i < weekSchedule.length; i++) {
if (weekSchedule[i].num == today.getDay()) 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);
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) {
let now = new Date();

let hour = getValueByString("hour", timeString);
let minutes = getValueByString("minutes", timeString);

let utc_timestamp = Date.UTC(
now.getUTCFullYear(),
now.getUTCMonth(),
now.getUTCDate(),
hour,
minutes,
0,
0
);
return new Date(utc_timestamp);
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;
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;
for (let i = 0; i < workDays.length; i++) {
if (workDays[i].num == today.getDay().toString()) return true;
}
return false;
}

```
### Observações

Expand Down