fix(payments,dates): improve duplicate payment detection and Jalali date parsing

This commit is contained in:
2026-08-23 14:15:06 +03:30
parent 945b4e6332
commit 22ce6c3fb1
3 changed files with 36 additions and 4 deletions
+9 -1
View File
@@ -602,7 +602,15 @@ const checkDuplicatePayment = async (query = {}) => {
const classObjectIds = rawClasses.map((id) => {
return mongoose.isValidObjectId(id) ? new mongoose.Types.ObjectId(String(id)) : id;
});
filter.classes = { $in: classObjectIds };
const classDocs = await Class.find({ _id: { $in: classObjectIds } }).select('course').lean();
const courseIds = classDocs.map((c) => c.course).filter(Boolean);
const orConditions = [{ classes: { $in: classObjectIds } }];
if (courseIds.length) {
orConditions.push({ course: { $in: courseIds } });
}
filter.$or = orConditions;
}
const payments = await Payment.find(filter)