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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fleetmap-reports",
3
- "version": "1.0.419",
3
+ "version": "1.0.422",
4
4
  "description": "",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
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()
@@ -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 && isOutsideGeofence(geofence, endEventPosition))) {
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.map(a => {
360
+ d.alerts.forEach(a => {
368
361
  const temp = [
369
362
  getAlertDate(a, userData.user),
370
363
  a.position.address + (a.geofenceName ? ' - ' + a.geofenceName : ''),
@@ -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) {