fleetmap-reports 1.0.700 → 1.0.702

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.700",
3
+ "version": "1.0.702",
4
4
  "description": "",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -1,6 +1,10 @@
1
1
  const jsPDF = require('jspdf')
2
2
  const { headerFromUser, AmiriRegular } = require('./util/pdfDocument')
3
- const { convertToLocaleString, convertMS, getTranslations, getLanguage, convertToLocaleDateString, convertToLocaleTimeString } = require('./util/utils')
3
+ const {
4
+ convertToLocaleString, convertMS, getTranslations, getLanguage, convertToLocaleDateString, convertToLocaleTimeString,
5
+ convertPositionToFeature,
6
+ convertToFeature
7
+ } = require('./util/utils')
4
8
  const { getStyle } = require('./reportStyle')
5
9
  const { getUserPartner } = require('fleetmap-partners')
6
10
  const { devicesToProcess } = require('./util/device')
@@ -8,7 +12,7 @@ const automaticReports = require('./automaticReports')
8
12
  const traccarHelper = require('./util/traccar')
9
13
  const { getIdleEvents } = require('./util/route')
10
14
  const { reportByDriver, getDriverData } = require('./util/driver')
11
- const { getNearestPOIs, insideGeofence, loadGroupsData } = require('./util/geofence')
15
+ const { getNearestPOIs, checkGeofenceIn, loadGroupsData } = require('./util/geofence')
12
16
 
13
17
  const fileName = 'IdleReport'
14
18
 
@@ -202,10 +206,9 @@ function findPOIData (event, userData) {
202
206
  }
203
207
  }
204
208
 
205
- function findGeofenceData (event, userData) {
206
- const geofence = userData.geofences.filter(g => g && g.area.startsWith('POLYGON')).find(g =>
207
- insideGeofence({ latitude: event.position.latitude, longitude: event.position.longitude }, g)
208
- )
209
+ function findGeofenceData (event, userData, geofences) {
210
+ const geofence = geofences.find(g =>
211
+ checkGeofenceIn(convertPositionToFeature(event.position), convertToFeature(g)))
209
212
  if (geofence) {
210
213
  const group = userData.groups.find(g => g.geofenceIds && g.geofenceIds.includes(geofence.id))
211
214
  event.geofenceName = geofence.name
@@ -0,0 +1,17 @@
1
+ const { getReports } = require('./index')
2
+ const assert = require('assert')
3
+ // eslint-disable-next-line no-undef
4
+ describe('idle', function () {
5
+ // eslint-disable-next-line no-undef
6
+ it('works with afriquia', async () => {
7
+ const report = await getReports('moviflotte@gmail.com', 'moviflotte@gmail.com')
8
+ const userData = await report.getUserData()
9
+ console.log(userData.devices.length)
10
+ console.log(userData.geofences)
11
+ const result = await report.idleReport(
12
+ new Date(Date.UTC(2023, 5, 11, 0, 0, 0, 0)),
13
+ new Date(Date.UTC(2023, 5, 11, 23, 59, 59, 0)),
14
+ userData)
15
+ console.log('result', result)
16
+ }, 4000000)
17
+ })
@@ -17,12 +17,10 @@ describe('Test_Reports', function () {
17
17
  userData)
18
18
  await report.speedingReportToPDF(userData, data)
19
19
  }, 40000)
20
-
21
20
  it('converts madrid time', async () => {
22
21
  assert.equal(false, utils.isClientSide())
23
22
  console.log(utils.convertToLocaleString(new Date(), 'es-CL', 'Europe/Madrid'))
24
23
  })
25
-
26
24
  // eslint-disable-next-line no-undef
27
25
  it('Trip by device', async () => {
28
26
  const report = await getReports()
@@ -1,5 +1,9 @@
1
1
  const { getReports } = require('./index')
2
+ const assert = require('assert')
3
+ const ellca = require('./ellca.json')
4
+ // eslint-disable-next-line no-undef
2
5
  describe('zones', function () {
6
+ // eslint-disable-next-line no-undef
3
7
  it('works with ellca', async () => {
4
8
  const report = await getReports()
5
9
  const userData = await report.getUserData()
@@ -20,7 +24,6 @@ describe('zones', function () {
20
24
  const report = await getReports('moviflotte@gmail.com', 'moviflotte@gmail.com')
21
25
  const userData = await report.getUserData()
22
26
  console.log(userData.devices.length)
23
- console.log(userData.devices.map(d => d.id))
24
27
  console.log(userData.geofences)
25
28
  const result = await report.zoneReport(
26
29
  new Date(Date.UTC(2023, 5, 11, 0, 0, 0, 0)),
@@ -28,4 +31,20 @@ describe('zones', function () {
28
31
  userData)
29
32
  console.log('result', result)
30
33
  }, 4000000)
34
+
35
+ // eslint-disable-next-line no-undef
36
+ it('works with casais', async () => {
37
+ const report = await getReports('mario.andre.moreira@casais.gi', 'Casais.23')
38
+ const userData = await report.getUserData()
39
+ userData.devices = userData.devices.filter(d => d.name === 'G-1101-E Clio')
40
+ userData.geofences = userData.geofences.filter(g => g.name === 'baliza raio verde ')
41
+ const result = await report.zoneReport(
42
+ new Date(Date.UTC(2023, 0, 1, 0, 0, 0, 0)),
43
+ new Date(Date.UTC(2023, 0, 31, 23, 59, 59, 0)),
44
+ userData)
45
+ const first = result[0].devices[0].geofences[0]
46
+ console.log(first)
47
+ assert.equal(first.inTime.fixTime, '2023-01-03T21:23:24.000+0000')
48
+ assert.equal(first.outTime.fixTime, '2023-01-07T12:22:53.000+0000')
49
+ }, 4000000)
31
50
  })
package/src/util/utils.js CHANGED
@@ -245,4 +245,4 @@ exports.calculateDistance = (positions) => {
245
245
  }, 0) || 0
246
246
  }
247
247
 
248
- exports.sortPositions = (a, b) => new Date(a).getTime() - new Date(b).getTime()
248
+ exports.sortPositions = (a, b) => new Date(a.fixTime).getTime() - new Date(b.fixTime).getTime()
@@ -325,7 +325,7 @@ function getInAndOutEvents (devices, route, userData) {
325
325
  if (!checkGeofenceIn(p, g)) {
326
326
  deviceEvents.push(createEvent('geofenceExit', d.id, p, g))
327
327
  } else {
328
- previous.inside[id] = true
328
+ p.inside[id] = true
329
329
  }
330
330
  } else {
331
331
  if (checkGeofenceIn(p, g)) {