aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/reports
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/traccar/reports')
-rw-r--r--src/org/traccar/reports/ReportUtils.java16
-rw-r--r--src/org/traccar/reports/Summary.java6
-rw-r--r--src/org/traccar/reports/Trips.java7
3 files changed, 16 insertions, 13 deletions
diff --git a/src/org/traccar/reports/ReportUtils.java b/src/org/traccar/reports/ReportUtils.java
index 924dff4c1..818920ad5 100644
--- a/src/org/traccar/reports/ReportUtils.java
+++ b/src/org/traccar/reports/ReportUtils.java
@@ -69,14 +69,14 @@ public final class ReportUtils {
&& lastPosition.getAttributes().get(Position.KEY_FUEL) != null) {
try {
switch (firstPosition.getProtocol()) {
- case "meitrack":
- case "galileo":
- case "noran":
- return new BigDecimal(firstPosition.getAttributes().get(Position.KEY_FUEL).toString())
- .subtract(new BigDecimal(lastPosition.getAttributes().get(Position.KEY_FUEL).toString()))
- .setScale(2, RoundingMode.HALF_EVEN).toString() + " %";
- default:
- break;
+ case "meitrack":
+ case "galileo":
+ case "noran":
+ BigDecimal v = new BigDecimal(firstPosition.getAttributes().get(Position.KEY_FUEL).toString());
+ v = v.subtract(new BigDecimal(lastPosition.getAttributes().get(Position.KEY_FUEL).toString()));
+ return v.setScale(2, RoundingMode.HALF_EVEN).toString() + " %";
+ default:
+ break;
}
} catch (Exception error) {
Log.warning(error);
diff --git a/src/org/traccar/reports/Summary.java b/src/org/traccar/reports/Summary.java
index 44fb1dd4c..d4171f644 100644
--- a/src/org/traccar/reports/Summary.java
+++ b/src/org/traccar/reports/Summary.java
@@ -37,7 +37,7 @@ public final class Summary {
private static SummaryReport calculateSummaryResult(long deviceId, Date from, Date to) throws SQLException {
SummaryReport result = new SummaryReport();
result.setDeviceId(deviceId);
- result.setDeviceName(Context.getDeviceManager().getDeviceById(deviceId).getName());
+ result.setDeviceName(Context.getIdentityManager().getDeviceById(deviceId).getName());
Collection<Position> positions = Context.getDataManager().getPositions(deviceId, from, to);
if (positions != null && !positions.isEmpty()) {
Position firstPosition = null;
@@ -60,7 +60,9 @@ public final class Summary {
speedSum += position.getSpeed();
result.setMaxSpeed(position.getSpeed());
}
- result.setDistance(ReportUtils.calculateDistance(firstPosition, previousPosition));
+ boolean ignoreOdometer = Context.getDeviceManager()
+ .lookupConfigBoolean(deviceId, "report.ignoreOdometer", false);
+ result.setDistance(ReportUtils.calculateDistance(firstPosition, previousPosition, !ignoreOdometer));
result.setAverageSpeed(speedSum / positions.size());
}
return result;
diff --git a/src/org/traccar/reports/Trips.java b/src/org/traccar/reports/Trips.java
index 2171d5f93..f0a10edbd 100644
--- a/src/org/traccar/reports/Trips.java
+++ b/src/org/traccar/reports/Trips.java
@@ -53,15 +53,16 @@ public final class Trips {
long tripDuration = endTrip.getFixTime().getTime() - positions.get(startIndex).getFixTime().getTime();
long deviceId = startTrip.getDeviceId();
trip.setDeviceId(deviceId);
- String deviceName = Context.getDeviceManager().getDeviceById(deviceId).getName();
- trip.setDeviceName(deviceName);
+ trip.setDeviceName(Context.getIdentityManager().getDeviceById(deviceId).getName());
trip.setStartPositionId(startTrip.getId());
trip.setStartTime(startTrip.getFixTime());
trip.setStartAddress(startTrip.getAddress());
trip.setEndPositionId(endTrip.getId());
trip.setEndTime(endTrip.getFixTime());
trip.setEndAddress(endTrip.getAddress());
- trip.setDistance(ReportUtils.calculateDistance(startTrip, endTrip));
+ boolean ignoreOdometer = Context.getDeviceManager()
+ .lookupConfigBoolean(deviceId, "report.ignoreOdometer", false);
+ trip.setDistance(ReportUtils.calculateDistance(startTrip, endTrip, !ignoreOdometer));
trip.setDuration(tripDuration);
trip.setAverageSpeed(speedSum / (endIndex - startIndex));
trip.setMaxSpeed(speedMax);