diff --git a/pages/cart/publishers/stats.tsx b/pages/cart/publishers/stats.tsx index d881b1f..0a0b738 100644 --- a/pages/cart/publishers/stats.tsx +++ b/pages/cart/publishers/stats.tsx @@ -4,7 +4,10 @@ import ProtectedRoute from '../../../components/protectedRoute'; import { UserRole } from '@prisma/client'; import axiosServer from '../../../src/axiosServer'; import common from '../../../src/helpers/common'; -import { filterPublishers, /* other functions */ } from '../../api/index'; +// import { filterPublishers, /* other functions */ } from '../../api/index'; +import data from '../../../src/helpers/data'; + +// const data = require('../../src/helpers/data'); function ContactsPage({ publishers }) { const [searchQuery, setSearchQuery] = useState(''); @@ -74,7 +77,7 @@ export default ContactsPage; export const getServerSideProps = async (context) => { const dateStr = new Date().toISOString().split('T')[0]; - let publishers = await filterPublishers('id,firstName,lastName,email,isActive,desiredShiftsPerMonth', "", new Date(), true, true, false); + let publishers = await data.filterPublishersNew('id,firstName,lastName,email,isActive,desiredShiftsPerMonth', dateStr, false, true, true); // const axios = await axiosServer(context); // const { data: publishers } = await axios.get(`api/?action=filterPublishers&assignments=true&availabilities=true&date=${dateStr}&select=id,firstName,lastName,isActive,desiredShiftsPerMonth`); diff --git a/src/helpers/data.js b/src/helpers/data.js index 1cc459b..f2e6316 100644 --- a/src/helpers/data.js +++ b/src/helpers/data.js @@ -227,8 +227,11 @@ async function getAvailabilities(userId) { } + async function filterPublishersNew(selectFields, filterDate, isExactTime = false, isForTheMonth = false, isWithStats = true) { + filterDate = new Date(filterDate); // Convert to date object if not already + // Only attempt to split if selectFields is a string; otherwise, use it as it is. selectFields = typeof selectFields === 'string' ? selectFields.split(",") : selectFields; @@ -330,14 +333,15 @@ async function filterPublishersNew(selectFields, filterDate, isExactTime = false } if (isForTheMonth) { // If no filter date, return all publishers's availabilities for currentMonthStart + whereClause["availabilities"] = { some: { OR: [ - // Check if dayOfMonth is not null and startTime is after currentMonthStart (Assignments on specific days AND time) + // Check if dayOfMonth is not null and startTime is after monthInfo.firstMonday (Assignments on specific days AND time) { dayOfMonth: { not: null }, - startTime: { gte: currentMonthStart }, - endTime: { lte: currentMonthEnd } + startTime: { gte: monthInfo.firstMonday }, + endTime: { lte: monthInfo.lastSunday } }, // Check if dayOfMonth is null and match by day of week using the enum (Assigments every week) {