diff options
author | Christoph Krey <krey.christoph@gmail.com> | 2018-04-16 10:50:57 +0200 |
---|---|---|
committer | Christoph Krey <krey.christoph@gmail.com> | 2018-04-16 10:50:57 +0200 |
commit | 7a0be25c49eebba92ab70c715faa987312950b7d (patch) | |
tree | 0342b16af8f8aa524b69e4a5b83476431a5e6dbc /src/org/traccar/reports/ReportUtils.java | |
parent | 3a602dd133b533cc69d5986d64a00fb3ed670f75 (diff) | |
download | trackermap-server-7a0be25c49eebba92ab70c715faa987312950b7d.tar.gz trackermap-server-7a0be25c49eebba92ab70c715faa987312950b7d.tar.bz2 trackermap-server-7a0be25c49eebba92ab70c715faa987312950b7d.zip |
[NEW] Odometer in Reports
Diffstat (limited to 'src/org/traccar/reports/ReportUtils.java')
-rw-r--r-- | src/org/traccar/reports/ReportUtils.java | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/org/traccar/reports/ReportUtils.java b/src/org/traccar/reports/ReportUtils.java index e04f2f90c..e12968428 100644 --- a/src/org/traccar/reports/ReportUtils.java +++ b/src/org/traccar/reports/ReportUtils.java @@ -217,10 +217,21 @@ public final class ReportUtils { trip.setDriverUniqueId(findDriver(startTrip, endTrip)); trip.setDriverName(findDriverName(trip.getDriverUniqueId())); + if (!ignoreOdometer + && startTrip.getDouble(Position.KEY_ODOMETER) != 0 + && endTrip.getDouble(Position.KEY_ODOMETER) != 0) { + trip.setStartOdometer(startTrip.getDouble(Position.KEY_ODOMETER)); + trip.setEndOdometer(endTrip.getDouble(Position.KEY_ODOMETER)); + } else { + trip.setStartOdometer(startTrip.getDouble(Position.KEY_TOTAL_DISTANCE)); + trip.setEndOdometer(endTrip.getDouble(Position.KEY_TOTAL_DISTANCE)); + } + return trip; } - private static StopReport calculateStop(ArrayList<Position> positions, int startIndex, int endIndex) { + private static StopReport calculateStop(ArrayList<Position> positions, int startIndex, int endIndex, + boolean ignoreOdometer) { Position startStop = positions.get(startIndex); Position endStop = positions.get(endIndex); @@ -256,6 +267,16 @@ public final class ReportUtils { } stop.setEngineHours(engineHours); + if (!ignoreOdometer + && startStop.getDouble(Position.KEY_ODOMETER) != 0 + && endStop.getDouble(Position.KEY_ODOMETER) != 0) { + stop.setStartOdometer(startStop.getDouble(Position.KEY_ODOMETER)); + stop.setEndOdometer(endStop.getDouble(Position.KEY_ODOMETER)); + } else { + stop.setStartOdometer(startStop.getDouble(Position.KEY_TOTAL_DISTANCE)); + stop.setEndOdometer(endStop.getDouble(Position.KEY_TOTAL_DISTANCE)); + } + return stop; } @@ -265,7 +286,7 @@ public final class ReportUtils { if (reportClass.equals(TripReport.class)) { return (T) calculateTrip(positions, startIndex, endIndex, ignoreOdometer); } else { - return (T) calculateStop(positions, startIndex, endIndex); + return (T) calculateStop(positions, startIndex, endIndex, ignoreOdometer); } } |