diff --git a/src/controllers/activityController.js b/src/controllers/activityController.js index 82b127d94..ab7ece07a 100644 --- a/src/controllers/activityController.js +++ b/src/controllers/activityController.js @@ -3,6 +3,7 @@ const Activity = require('../models/activity'); const LessonPlan = require('../models/lessonPlan'); const Subject = require('../models/subject'); const Atom = require('../models/atom'); + const activityController = function () { // Get all activities const getActivities = async (req, res) => { diff --git a/src/controllers/bmdashboard/bmIssueController.js b/src/controllers/bmdashboard/bmIssueController.js index 78757fcbc..791ed459c 100644 --- a/src/controllers/bmdashboard/bmIssueController.js +++ b/src/controllers/bmdashboard/bmIssueController.js @@ -273,18 +273,37 @@ const bmIssueController = function (BuildingIssue, injuryIssue) { query.projectId = { $in: filteredProjectIds }; } - const issues = await BuildingIssue.find(query) - .select('issueTitle issueDate projectId') - .populate({ - path: 'projectId', - select: 'projectName name', - }) + let issues = await BuildingIssue.find(query) + .select('issueTitle issueDate _id') + .populate('projectId') .lean(); - const grouped = buildGroupedIssues(issues); - const response = buildLongestOpenResponse(grouped); + issues = issues.map((issue) => { + const durationInMonths = getDurationOpenMonths(issue.issueDate); + return { + issueName: issue.issueTitle && issue.issueTitle.length > 0 ? issue.issueTitle[0] : null, + durationInMonths, + issueId: issue._id.toString(), + projectId: issue.projectId?._id?.toString() || issue.projectId?.toString(), + projectName: issue.projectId?.name || null, + }; + }); + + const sortedIssues = issues + .sort((a, b) => b.durationInMonths - a.durationInMonths) + .map(({ issueName, durationInMonths, issueId, projectId, projectName }) => ({ + issueName, + durationOpen: durationInMonths, + issueId, + projectId, + projectName, + })); + + console.log( + `[getLongestOpenIssues] Total issues found: ${issues.length}, Returning: ${sortedIssues.length} issues`, + ); - res.json(response); + res.json(sortedIssues); } catch (error) { res.status(500).json({ message: 'Error fetching longest open issues' }); } diff --git a/src/helpers/overviewReportHelper.js b/src/helpers/overviewReportHelper.js index 059d46655..8b8bdb32a 100644 --- a/src/helpers/overviewReportHelper.js +++ b/src/helpers/overviewReportHelper.js @@ -1101,7 +1101,6 @@ const overviewReportHelper = function () { } async function getTasksStats(startDate, endDate, comparisonStartDate, comparisonEndDate) { - if (comparisonStartDate && comparisonEndDate) { const taskStats = await Task.aggregate([ { diff --git a/src/routes/kitchenandinventory/KIInventoryRouter.js b/src/routes/kitchenandinventory/KIInventoryRouter.js index b8fb6eeb3..90cbc8b23 100644 --- a/src/routes/kitchenandinventory/KIInventoryRouter.js +++ b/src/routes/kitchenandinventory/KIInventoryRouter.js @@ -22,4 +22,3 @@ const router = function () { }; module.exports = router; - diff --git a/src/scripts/seedKIInventoryItems.js b/src/scripts/seedKIInventoryItems.js index aa5616b20..8e1e68303 100644 --- a/src/scripts/seedKIInventoryItems.js +++ b/src/scripts/seedKIInventoryItems.js @@ -470,12 +470,12 @@ async function seed() { // Quick stats summary const total = inserted.length; - const critical = inserted.filter(i => i.presentQuantity <= i.reorderAt * 0.5).length; + const critical = inserted.filter((i) => i.presentQuantity <= i.reorderAt * 0.5).length; const low = inserted.filter( - i => i.presentQuantity <= i.reorderAt && i.presentQuantity > i.reorderAt * 0.5, + (i) => i.presentQuantity <= i.reorderAt && i.presentQuantity > i.reorderAt * 0.5, ).length; const preserved = inserted.filter( - i => + (i) => i.category === 'INGREDIENT' && new Date(i.expiryDate) >= new Date(Date.now() + 365 * 24 * 60 * 60 * 1000), ).length;