DigitalConsumer.FixMyGlass/src/layouts/schedule/helpers/schedule-helper.js
2025-12-30 13:10:09 -05:00

81 lines
2.4 KiB
JavaScript

import { storeActions } from "@/constants/store-actions";
import baseMixin from "@/mixins/base-mixin.js";
import { RouteCodeFlags } from "@/constants/schedule-constants";
export async function getAlertReasons(ctu) {
const alertReasons = await baseMixin.methods.dispatchStoreActionWithLogging(
storeActions.GET_ALERT_REASONS_BY_CTU,
{
ctu: ctu,
},
"schedule"
);
return Promise.resolve(alertReasons);
}
export function calcDaysBetweenDates(dateString1, dateString2) {
const date1 = new Date(dateString1);
const date2 = new Date(dateString2);
const timeDifference = Math.abs(date2 - date1); // Calculate the time difference in milliseconds
return Math.ceil(timeDifference / (1000 * 60 * 60 * 24)); // Convert milliseconds to days
}
export function convertDateToDateString(date) {
// returns YYYY-MM-DD format
if (date instanceof Date !== true) return;
return (
date.getFullYear() +
"-" +
("0" + (date.getMonth() + 1)).slice(-2) +
"-" +
("0" + date.getDate()).slice(-2)
);
}
export function convertDateStringToDate(dateString) {
// dateString must be YYYY-MM-DD format
if (typeof dateString !== "string") return;
const dateParts = dateString.split("-");
return new Date(dateParts[0], parseInt(dateParts[1]) - 1, dateParts[2]);
}
export function sumDateString(dateString, daysToAdd) {
// dateString must be YYYY-MM-DD format
if (typeof dateString !== "string") return;
const date = convertDateStringToDate(dateString);
date.setDate(date.getDate() + daysToAdd);
return convertDateToDateString(date);
}
export function militaryToTwelveHourTime(timeString) {
// Expected input: "HH:MM"
if (typeof timeString !== "string") return;
let hours = parseInt(timeString.split(":")[0]);
const minutes = timeString.split(":")[1];
const meridianNotation = hours > 11 ? "PM" : "AM";
if (hours > 12) {
hours -= 12;
}
return `${hours}:${minutes} ${meridianNotation}`;
}
export function isDropOffRouteCode(routeCode) {
if (!routeCode) {
return false;
}
return (
routeCode.includes(RouteCodeFlags.ALL_DAY_DROP_OFF) ||
routeCode.includes(RouteCodeFlags.OVERNIGHT_DROP_OFF)
);
}
export function getTodayDate(routeCode) {
return new Date();
}
export function getTodayDateString(routeCode) {
return convertDateToDateString(getTodayDate());
}