aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbyss777 <abyss@fox5.ru>2017-08-16 16:52:45 +0500
committerAbyss777 <abyss@fox5.ru>2017-08-16 16:52:45 +0500
commit9476e6be8fae228cda5867750bc4d102b1f9497d (patch)
tree3e0d2a9627f7b13d70df06a971e2fd36b2b0df76
parente8739edc4e2b3a945c2b0eeec6286f7ef59037cf (diff)
downloadtrackermap-server-9476e6be8fae228cda5867750bc4d102b1f9497d.tar.gz
trackermap-server-9476e6be8fae228cda5867750bc4d102b1f9497d.tar.bz2
trackermap-server-9476e6be8fae228cda5867750bc4d102b1f9497d.zip
- Map correct position to delayed event notification
- Fix nested condition
-rw-r--r--src/org/traccar/database/NotificationManager.java11
-rw-r--r--src/org/traccar/reports/ReportUtils.java6
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;