attendance section update
This commit is contained in:
parent
92e5ef9f94
commit
0d0a2978c0
@ -196,6 +196,18 @@ export const markAttendance = async (req, res) => {
|
|||||||
const userId = req.user._id;
|
const userId = req.user._id;
|
||||||
const userType = req.userType;
|
const userType = req.userType;
|
||||||
|
|
||||||
|
// Get today's date
|
||||||
|
const today = new Date();
|
||||||
|
today.setHours(0, 0, 0, 0);
|
||||||
|
|
||||||
|
// Check if the date in req.body is not today's date
|
||||||
|
if (!isSameDay(new Date(date), today)) {
|
||||||
|
return res.status(400).json({
|
||||||
|
success: false,
|
||||||
|
message: `Attendance can only be marked for today's date: ${today.toLocaleDateString()}`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Get the start and end of the day to check if the attendance is already marked
|
// Get the start and end of the day to check if the attendance is already marked
|
||||||
const startOfDay = new Date(date);
|
const startOfDay = new Date(date);
|
||||||
startOfDay.setHours(0, 0, 0, 0);
|
startOfDay.setHours(0, 0, 0, 0);
|
||||||
@ -207,7 +219,11 @@ export const markAttendance = async (req, res) => {
|
|||||||
const existingAttendance = await Attendance.findOne({
|
const existingAttendance = await Attendance.findOne({
|
||||||
userId,
|
userId,
|
||||||
userType,
|
userType,
|
||||||
"records.date": { $gte: startOfDay, $lte: endOfDay },
|
records: {
|
||||||
|
$elemMatch: {
|
||||||
|
date: { $gte: startOfDay, $lte: endOfDay }
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (existingAttendance) {
|
if (existingAttendance) {
|
||||||
@ -246,6 +262,15 @@ export const markAttendance = async (req, res) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Helper function to check if two dates are on the same day
|
||||||
|
function isSameDay(date1, date2) {
|
||||||
|
return (
|
||||||
|
date1.getFullYear() === date2.getFullYear() &&
|
||||||
|
date1.getMonth() === date2.getMonth() &&
|
||||||
|
date1.getDate() === date2.getDate()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// Get attendance by user ID
|
// Get attendance by user ID
|
||||||
export const getAttendanceByUser = async (req, res) => {
|
export const getAttendanceByUser = async (req, res) => {
|
||||||
try {
|
try {
|
||||||
|
Loading…
Reference in New Issue
Block a user