fleetmap-reports 1.0.961 → 1.0.962
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/util/trips.js +6 -1
- package/src/zone-report.js +17 -19
package/package.json
CHANGED
package/src/util/trips.js
CHANGED
|
@@ -131,7 +131,12 @@ async function getDataByDay (device, date, data, userData, traccarInstance) {
|
|
|
131
131
|
|
|
132
132
|
const refuelingPositionsByDay = data.refuelingPositions ? data.refuelingPositions.filter(p => (new Date(p.date) > startDate && new Date(p.date) < endDate)) : []
|
|
133
133
|
|
|
134
|
-
|
|
134
|
+
const zoneInOutDayData = data.zoneInOutData
|
|
135
|
+
? data.zoneInOutData.filter(z => (!z.inTime || (new Date(z.inTime.fixTime) < endDate)) &&
|
|
136
|
+
(!z.outTime || (new Date(z.outTime.fixTime) > startDate)))
|
|
137
|
+
: []
|
|
138
|
+
|
|
139
|
+
return { tripsByDay, routeByDay, refuelingPositionsByDay, zoneInOutDayData }
|
|
135
140
|
}
|
|
136
141
|
|
|
137
142
|
function getKms (trips) {
|
package/src/zone-report.js
CHANGED
|
@@ -4,7 +4,7 @@ const {
|
|
|
4
4
|
calculateDistance,
|
|
5
5
|
sortPositions, getDates, convertToLocaleDateString, convertToLocaleTimeString,
|
|
6
6
|
isClientSide,
|
|
7
|
-
getLanguage
|
|
7
|
+
getLanguage, convertFromUTC, convertFromLocal
|
|
8
8
|
} = require('./util/utils')
|
|
9
9
|
const jsPDF = require('jspdf')
|
|
10
10
|
require('jspdf-autotable')
|
|
@@ -105,20 +105,19 @@ async function processDevices (from, to, devices, userData, data) {
|
|
|
105
105
|
|
|
106
106
|
const dataByDay = []
|
|
107
107
|
for (const date of dates) {
|
|
108
|
-
const
|
|
109
|
-
const
|
|
108
|
+
const startDateLocal = new Date(convertFromUTC(date, userData.user.attributes.timezone).toISOString().split('T')[0] + ' ' + userData.dayHours.startTime)
|
|
109
|
+
const endDateLocal = new Date(convertFromUTC(date, userData.user.attributes.timezone).toISOString().split('T')[0] + ' ' + userData.dayHours.endTime)
|
|
110
|
+
const startDate = isClientSide() ? startDateLocal : convertFromLocal(startDateLocal, userData.user.attributes.timezone)
|
|
111
|
+
const endDate = isClientSide() ? endDateLocal : convertFromLocal(endDateLocal, userData.user.attributes.timezone)
|
|
110
112
|
|
|
111
|
-
const { routeByDay } = await getDataByDay(d, date, { route: deviceRoute }, userData)
|
|
113
|
+
const { routeByDay, zoneInOutDayData } = await getDataByDay(d, date, { route: deviceRoute, zoneInOutData: filteredByGeofence }, userData)
|
|
112
114
|
|
|
113
|
-
const
|
|
114
|
-
|
|
115
|
+
const firstIn = zoneInOutDayData.find(z => z.inTime && new Date(z.inTime.fixTime) > startDate)
|
|
116
|
+
const lastOut = zoneInOutDayData.slice().reverse().find(z => z.outTime && new Date(z.outTime.fixTime) < endDate)
|
|
115
117
|
|
|
116
|
-
const
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
const timeIn = calculateTimeIn(zoneInOutDayData, fromByDay, from, toByDay, to)
|
|
120
|
-
const distanceIn = calculateDistanceIn(zoneInOutDayData, deviceRoute, routeByDay, fromByDay, toByDay, to, d)
|
|
121
|
-
const distanceOut = calculateDistanceOut(zoneInOutDayData, routeByDay, fromByDay, toByDay, 'distanceOut', d)
|
|
118
|
+
const timeIn = calculateTimeIn(zoneInOutDayData, startDate, from, endDate, to)
|
|
119
|
+
const distanceIn = calculateDistanceIn(zoneInOutDayData, deviceRoute, routeByDay, startDate, endDate, to, d)
|
|
120
|
+
const distanceOut = calculateDistanceOut(zoneInOutDayData, routeByDay, startDate, endDate, 'distanceOut', d)
|
|
122
121
|
|
|
123
122
|
dataByDay.push({
|
|
124
123
|
date,
|
|
@@ -141,15 +140,14 @@ async function processDevices (from, to, devices, userData, data) {
|
|
|
141
140
|
if (userData.zonesByColumn) {
|
|
142
141
|
const groupByDay = []
|
|
143
142
|
for (const date of dates) {
|
|
144
|
-
const
|
|
145
|
-
const
|
|
146
|
-
|
|
147
|
-
const
|
|
143
|
+
const startDateLocal = new Date(convertFromUTC(date, userData.user.attributes.timezone).toISOString().split('T')[0] + ' ' + userData.dayHours.startTime)
|
|
144
|
+
const endDateLocal = new Date(convertFromUTC(date, userData.user.attributes.timezone).toISOString().split('T')[0] + ' ' + userData.dayHours.endTime)
|
|
145
|
+
const startDate = isClientSide() ? startDateLocal : convertFromLocal(startDateLocal, userData.user.attributes.timezone)
|
|
146
|
+
const endDate = isClientSide() ? endDateLocal : convertFromLocal(endDateLocal, userData.user.attributes.timezone)
|
|
148
147
|
|
|
149
|
-
const zoneInOutDayData =
|
|
150
|
-
(!z.outTime || (new Date(z.outTime.fixTime) > fromByDay)))
|
|
148
|
+
const { routeByDay, zoneInOutDayData } = await getDataByDay(d, date, { route: deviceRoute, zoneInOutData }, userData)
|
|
151
149
|
|
|
152
|
-
const distanceOut = calculateDistanceOut(zoneInOutDayData, routeByDay,
|
|
150
|
+
const distanceOut = calculateDistanceOut(zoneInOutDayData, routeByDay, startDate, endDate, 'distanceOutAny', d)
|
|
153
151
|
|
|
154
152
|
const geofences = geofencesData.map(g => {
|
|
155
153
|
const day = g.days.find(day => day.date === date)
|