fix: Saturday message not matching with database enabled/disabled

feat-scaling-ticket-remote-creation
adriano 2024-04-01 17:51:45 -03:00
parent 4b9dca2401
commit 88a71e5758
2 changed files with 34 additions and 24 deletions

View File

@ -141,15 +141,15 @@ export const remoteTicketCreation = async (
const whatsapp = await Whatsapp.findOne({
where: { number: contact_from, status: "CONNECTED" }
});
});
if (whatsapp) {
const { id: whatsappId, number, status } = whatsapp;
const queue: any = await WhatsappQueue.findOne({
where: { whatsappId },
attributes: ["queueId"]
});
});
const { queueId } = queue;
@ -213,7 +213,7 @@ export const remoteTicketCreation = async (
undefined,
queueId
);
botSendMessage(ticket, `\u200e${msg}`);
botSendMessage(ticket, `${msg}`);
}
const io = getIO();
@ -408,7 +408,6 @@ export const update = async (
for (const w of whatsappsByqueue) {
let whats = await ListWhatsAppsNumber(w.id);
console.log("-------> WHATS: ", JSON.stringify(whats, null, 6));
const ticket = await Ticket.findOne({
where: {
[Op.and]: [

View File

@ -62,21 +62,8 @@ const isWeekend = async (number: string | number) => {
weekend.value == "enabled" &&
weekend.message?.trim()?.length > 0
) {
// Specify your desired timezone
const brazilTimeZone = "America/Sao_Paulo";
const currentDateUtc = new Date();
// Convert UTC date to Brazil time zone
const currentDate = utcToZonedTime(currentDateUtc, brazilTimeZone);
// Format the date using the desired format
const formattedDate = _format(currentDate, "yyyy-MM-dd HH:mm:ssXXX");
const parsedDate = parseISO(formattedDate);
// Convert parsed date to Brazil time zone
const localDate = utcToZonedTime(parsedDate, brazilTimeZone);
const localDate = localDateConvert();
// Check if it's Saturday or Sunday
if (isSaturday(localDate)) {
@ -176,6 +163,14 @@ async function isOutBusinessTime(number: string | number) {
async function isOutBusinessTimeSaturday(number: string | number) {
let obj = { set: false, msg: "" };
// Convert parsed date to Brazil time zone
const localDate = localDateConvert();
// Check if it's Saturday or Sunday
if (!isSaturday(localDate)) {
return obj;
}
const outBusinessHoursSaturday = await SettingTicket.findOne({
where: { key: "saturdayBusinessTime", number }
});
@ -183,11 +178,9 @@ async function isOutBusinessTimeSaturday(number: string | number) {
let isWithinRange = false;
if (
true &&
outBusinessHoursSaturday
// outBusinessHoursSaturday &&
// outBusinessHoursSaturday.value == "enabled" &&
// outBusinessHoursSaturday?.message?.trim()?.length > 0
outBusinessHoursSaturday &&
outBusinessHoursSaturday.value == "enabled" &&
outBusinessHoursSaturday?.message?.trim()?.length > 0
) {
const ticketDateTimeUpdate = splitDateTime(
new Date(
@ -249,4 +242,22 @@ async function isOutBusinessTimeSaturday(number: string | number) {
return obj;
}
function localDateConvert() {
const brazilTimeZone = "America/Sao_Paulo";
const currentDateUtc = new Date();
// Convert UTC date to Brazil time zone
const currentDate = utcToZonedTime(currentDateUtc, brazilTimeZone);
// Format the date using the desired format
const formattedDate = _format(currentDate, "yyyy-MM-dd HH:mm:ssXXX");
const parsedDate = parseISO(formattedDate);
// Convert parsed date to Brazil time zone
const localDate = utcToZonedTime(parsedDate, brazilTimeZone);
return localDate;
}
export { isWeekend, isHoliday, isOutBusinessTime, isOutBusinessTimeSaturday };