fleetmap-reports 1.0.419 → 1.0.422
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/index.test.js +15 -0
- package/src/speeding-report.js +3 -10
- package/src/trip-report.js +4 -0
package/package.json
CHANGED
package/src/index.test.js
CHANGED
|
@@ -52,6 +52,21 @@ describe('Test_Reports', function () {
|
|
|
52
52
|
assert.equal(device.trips[1].endPOIName, undefined)
|
|
53
53
|
assert.equal(device.totalDistance, 339204.53999999166) // Total Kms
|
|
54
54
|
}, 20000)
|
|
55
|
+
it('Trip without addresses', async () => {
|
|
56
|
+
const report = await getReports()
|
|
57
|
+
const userData = await report.getUserData()
|
|
58
|
+
|
|
59
|
+
const data = await report.tripReport(new Date(2022, 4, 27, 0, 0, 0, 0),
|
|
60
|
+
new Date(2022, 4, 27, 23, 59, 59, 0),
|
|
61
|
+
userData)
|
|
62
|
+
|
|
63
|
+
assert.equal(data.length, 1)
|
|
64
|
+
const device = data[0].devices.find(d => d.device.id === 25808)
|
|
65
|
+
assert.equal(device.trips.length, 11) // Total Trips
|
|
66
|
+
console.log(device.trips[0])
|
|
67
|
+
assert.equal(device.trips[0].endAddress, 'Rua Cláudio Manoel 184-314;Vera Cruz;Vera Cruz;96880-000;BR\n')
|
|
68
|
+
assert.equal(device.trips[1].endPOIName, undefined)
|
|
69
|
+
}, 20000)
|
|
55
70
|
// eslint-disable-next-line no-undef
|
|
56
71
|
it('Trip 2 by device', async () => {
|
|
57
72
|
const report = await getReports()
|
package/src/speeding-report.js
CHANGED
|
@@ -3,16 +3,15 @@ const jsPDF = require('jspdf')
|
|
|
3
3
|
const { convertMS, convertToLocaleString } = require('./util/utils')
|
|
4
4
|
const { headerFromUser, AmiriRegular } = require('./util/pdfDocument')
|
|
5
5
|
require('jspdf-autotable')
|
|
6
|
-
const { parse } = require('wkt')
|
|
7
6
|
const { getStyle } = require('./reportStyle')
|
|
8
7
|
const drivers = require('./util/driver')
|
|
9
8
|
const here = require('./here')
|
|
10
9
|
const { getUserPartner } = require('fleetmap-partners')
|
|
11
10
|
const traccarHelper = require('./util/traccar')
|
|
12
11
|
const { devicesToProcess } = require('./util/device')
|
|
13
|
-
const turf = require('@turf/distance')
|
|
14
12
|
const { point } = require('@turf/helpers')
|
|
15
13
|
const distance = require('@turf/distance')
|
|
14
|
+
const { insideGeofence } = require('./util/geofence')
|
|
16
15
|
|
|
17
16
|
const fileName = 'SpeedingReport'
|
|
18
17
|
const eventTypes = ['deviceOverspeed']
|
|
@@ -281,7 +280,7 @@ function calculateEventData (positions, pIndex, alert, device, geofence, userDat
|
|
|
281
280
|
dist += distance.default(point([endEventPosition.longitude, endEventPosition.latitude]),
|
|
282
281
|
point([positions[pIndex].longitude, positions[pIndex].latitude]))
|
|
283
282
|
endEventPosition = positions[pIndex]
|
|
284
|
-
if (endEventPosition.speed <= alert.attributes.speedLimit || (geofence &&
|
|
283
|
+
if (endEventPosition.speed <= alert.attributes.speedLimit || (geofence && !insideGeofence(endEventPosition, geofence))) {
|
|
285
284
|
alert.eventTime = new Date(endEventPosition.fixTime) - new Date(alert.position.fixTime)
|
|
286
285
|
alert.attributes.maxSpeed = maxSpeed
|
|
287
286
|
alert.distance = dist
|
|
@@ -303,12 +302,6 @@ function calculateEventData (positions, pIndex, alert, device, geofence, userDat
|
|
|
303
302
|
return pIndex
|
|
304
303
|
}
|
|
305
304
|
|
|
306
|
-
function isOutsideGeofence (geofence, endEventPosition) {
|
|
307
|
-
const v = turf.feature(turf.flip(parse(geofence.area)))
|
|
308
|
-
const point = turf.point([endEventPosition.longitude, endEventPosition.latitude])
|
|
309
|
-
return turf.inside(point, v)
|
|
310
|
-
}
|
|
311
|
-
|
|
312
305
|
async function exportSpeedingReportToPDF (userData, reportData) {
|
|
313
306
|
console.log('Export to PDF')
|
|
314
307
|
|
|
@@ -364,7 +357,7 @@ async function exportSpeedingReportToPDF (userData, reportData) {
|
|
|
364
357
|
if (d.alerts[0] && !userData.byDriver) {
|
|
365
358
|
doc.text(translations.report.speedLimit + ': ' + ((userData.useVehicleSpeedLimit || !userData.customSpeed) ? Math.round(d.alerts[0].attributes.speedLimit * 1.85200) : userData.customSpeed) + ' Km/h', 20, space + 30)
|
|
366
359
|
}
|
|
367
|
-
d.alerts.
|
|
360
|
+
d.alerts.forEach(a => {
|
|
368
361
|
const temp = [
|
|
369
362
|
getAlertDate(a, userData.user),
|
|
370
363
|
a.position.address + (a.geofenceName ? ' - ' + a.geofenceName : ''),
|
package/src/trip-report.js
CHANGED
|
@@ -10,6 +10,7 @@ const trips = require('./util/trips')
|
|
|
10
10
|
const { isInsideTimetable, addNearestPOIs, isPartialInsideTimetable, calculateTrip, getTripIdleTime } = require('./util/trips')
|
|
11
11
|
const { devicesToProcess } = require('./util/device')
|
|
12
12
|
const { getIdleEvents } = require('./util/route')
|
|
13
|
+
const axios = require('axios')
|
|
13
14
|
|
|
14
15
|
const fileName = 'TripReport'
|
|
15
16
|
|
|
@@ -157,6 +158,9 @@ function processDevices (from, to, devices, data, userData) {
|
|
|
157
158
|
trip.stopDuration = 0
|
|
158
159
|
trip.stopEngineHours = 0
|
|
159
160
|
}
|
|
161
|
+
if (trip.endAddress === null) {
|
|
162
|
+
axios.get(`https://main.d8z8k71nd7w8x.amplifyapp.com/?${trip.endLat},${trip.endLon}`).then(r => { trip.endAddress = r.data })
|
|
163
|
+
}
|
|
160
164
|
})
|
|
161
165
|
|
|
162
166
|
if (trips.length > 0) {
|