diff options
-rw-r--r-- | src/org/traccar/database/NotificationManager.java | 11 | ||||
-rw-r--r-- | src/org/traccar/reports/ReportUtils.java | 6 |
2 files changed, 10 insertions, 7 deletions
diff --git a/src/org/traccar/database/NotificationManager.java b/src/org/traccar/database/NotificationManager.java index 0987f255b..8eea287de 100644 --- a/src/org/traccar/database/NotificationManager.java +++ b/src/org/traccar/database/NotificationManager.java @@ -48,8 +48,13 @@ public class NotificationManager { } public void updateEvent(Event event, Position position) { + Position relatedPosition = position; try { dataManager.addObject(event); + if (event.getPositionId() != 0 && (relatedPosition == null + || event.getPositionId() != relatedPosition.getId())) { + relatedPosition = dataManager.getObject(Position.class, event.getPositionId()); + } } catch (SQLException error) { Log.warning(error); } @@ -64,16 +69,16 @@ public class NotificationManager { Context.getConnectionManager().updateEvent(userId, event); } if (notification.getMail()) { - NotificationMail.sendMailAsync(userId, event, position); + NotificationMail.sendMailAsync(userId, event, relatedPosition); } if (notification.getSms()) { - NotificationSms.sendSmsAsync(userId, event, position); + NotificationSms.sendSmsAsync(userId, event, relatedPosition); } } } } if (Context.getEventForwarder() != null) { - Context.getEventForwarder().forwardEvent(event, position); + Context.getEventForwarder().forwardEvent(event, relatedPosition); } } diff --git a/src/org/traccar/reports/ReportUtils.java b/src/org/traccar/reports/ReportUtils.java index 6a5370d15..8a398e4c2 100644 --- a/src/org/traccar/reports/ReportUtils.java +++ b/src/org/traccar/reports/ReportUtils.java @@ -302,12 +302,10 @@ public final class ReportUtils { startEventIndex = -1; } } - if (startEventIndex != -1) { - if (startNoEventIndex != -1 || !trips) { - result.add(calculateTripOrStop(positions, startEventIndex, + if (startEventIndex != -1 && (startNoEventIndex != -1 || !trips)) { + result.add(calculateTripOrStop(positions, startEventIndex, startNoEventIndex != -1 ? startNoEventIndex : positions.size() - 1, ignoreOdometer, reportClass)); - } } } return result; |