From 9d0372859e1175377422851c0a4a506623c4a28c Mon Sep 17 00:00:00 2001 From: Jake Kasper Date: Fri, 29 Aug 2025 14:08:48 -0400 Subject: [PATCH] alksdfja --- backend/src/routes/applications.js | 21 +++++++++++++++++-- .../Applications/ApplicationViewModal.js | 14 +++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/backend/src/routes/applications.js b/backend/src/routes/applications.js index 8ae7d5c..f3c4350 100644 --- a/backend/src/routes/applications.js +++ b/backend/src/routes/applications.js @@ -1411,6 +1411,18 @@ router.post('/logs', validateRequest(applicationLogSchema), async (req, res, nex // @access Private router.get('/logs', async (req, res, next) => { try { + const { planId } = req.query; + + let whereConditions = ['p.user_id = $1']; + let queryParams = [req.user.id]; + + if (planId) { + whereConditions.push('al.plan_id = $2'); + queryParams.push(planId); + } + + const whereClause = whereConditions.join(' AND '); + const result = await pool.query(` SELECT al.*, @@ -1424,9 +1436,9 @@ router.get('/logs', async (req, res, next) => { JOIN properties p ON ls.property_id = p.id JOIN user_equipment ue ON al.equipment_id = ue.id LEFT JOIN equipment_types et ON ue.equipment_type_id = et.id - WHERE p.user_id = $1 + WHERE ${whereClause} ORDER BY al.application_date DESC, al.created_at DESC - `, [req.user.id]); + `, queryParams); const logs = result.rows.map(row => ({ id: row.id, @@ -1444,6 +1456,11 @@ router.get('/logs', async (req, res, next) => { createdAt: row.created_at })); + console.log(`GET /logs query with planId: ${planId}, found ${logs.length} logs`); + if (logs.length > 0) { + console.log('First log GPS track:', logs[0].gpsTrack); + } + res.json({ success: true, data: { diff --git a/frontend/src/components/Applications/ApplicationViewModal.js b/frontend/src/components/Applications/ApplicationViewModal.js index b3e2752..3610a41 100644 --- a/frontend/src/components/Applications/ApplicationViewModal.js +++ b/frontend/src/components/Applications/ApplicationViewModal.js @@ -11,14 +11,22 @@ const ApplicationViewModal = ({ application, propertyDetails, onClose }) => { // Calculate coverage percentage based on GPS tracking and equipment specifications const calculateCoverage = (application, log) => { + console.log('calculateCoverage called with:', { application, log }); + console.log('GPS track points:', log?.gpsTrack?.points?.length || 0); + console.log('GPS track structure:', log?.gpsTrack); + if (!log?.gpsTrack?.points || log.gpsTrack.points.length < 2) { + console.log('No GPS points or insufficient points for coverage calculation'); return 0; // No movement = no coverage } const totalDistance = log.gpsTrack.totalDistance || 0; const plannedArea = application.totalSectionArea || 0; + console.log('Total distance:', totalDistance, 'Planned area:', plannedArea); + if (totalDistance === 0 || plannedArea === 0) { + console.log('Zero distance or area, returning 0 coverage'); return 0; } @@ -62,10 +70,16 @@ const ApplicationViewModal = ({ application, propertyDetails, onClose }) => { // Try to fetch application logs to get GPS tracking data try { + console.log('Fetching logs for planId:', application.id); const logsResponse = await applicationsAPI.getLogs({ planId: application.id }); + console.log('Logs response:', logsResponse); const logs = logsResponse.data.data.logs; + console.log('Parsed logs:', logs); if (logs && logs.length > 0) { + console.log('Setting application log to:', logs[0]); setApplicationLog(logs[0]); // Get the most recent log + } else { + console.log('No logs found in response'); } } catch (error) { console.log('No application logs found:', error);