fleetmap-reports 1.0.646 → 1.0.648

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.646",
3
+ "version": "1.0.648",
4
4
  "description": "",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -8,7 +8,7 @@ const automaticReports = require('./automaticReports')
8
8
  const traccarHelper = require('./util/traccar')
9
9
  const { getIdleEvents } = require('./util/route')
10
10
  const { reportByDriver } = require('./util/driver')
11
- const { getNearestPOIs, insideGeofence } = require('./util/geofence')
11
+ const { getNearestPOIs, insideGeofence, loadGroupsData } = require('./util/geofence')
12
12
 
13
13
  const fileName = 'IdleReport'
14
14
 
@@ -213,12 +213,6 @@ function findGeofenceData (event, userData) {
213
213
  }
214
214
  }
215
215
 
216
- async function loadGroupsData (userData, traccarInstance) {
217
- for (const g of userData.groups) {
218
- g.geofenceIds = (await traccarInstance.geofences.geofencesGet(undefined, undefined, undefined, g.id, undefined, undefined).then(r => r.data)).map(g => g.id)
219
- }
220
- }
221
-
222
216
  async function exportIdleReportToPDF (userData, reportData) {
223
217
  console.log('Export to PDF')
224
218
 
@@ -1,7 +1,7 @@
1
1
  const { devicesToProcess, deviceName } = require('./util/device')
2
2
  const automaticReports = require('./automaticReports')
3
3
  const traccarHelper = require('./util/traccar')
4
- const { getNearestPOIs, insideGeofence } = require('./util/geofence')
4
+ const { getNearestPOIs, insideGeofence, loadGroupsData } = require('./util/geofence')
5
5
  const { getTranslations, convertToLocaleString, convertMS, convertToLocaleDateString, convertToLocaleTimeString } = require('./util/utils')
6
6
  const jsPDF = require('jspdf')
7
7
  const { headerFromUser, addTable } = require('./util/pdfDocument')
@@ -27,6 +27,8 @@ async function createStopReportByDevice (from, to, userData, traccar) {
27
27
  devices: []
28
28
  }
29
29
 
30
+ await loadGroupsData(userData, traccar)
31
+
30
32
  const sliced = automaticReports.sliceArray(devices, 5)
31
33
 
32
34
  let deviceCount = 0
@@ -26,3 +26,9 @@ exports.getNearestPOIs = function getNearestPOIs (long, lat, geofences) {
26
26
  })
27
27
  return distance.filter(a => a.distance < 100).sort((a, b) => (a.distance > b.distance) ? 1 : -1)
28
28
  }
29
+
30
+ exports.loadGroupsData = async function loadGroupsData (userData, traccarInstance) {
31
+ for (const g of userData.groups) {
32
+ g.geofenceIds = (await traccarInstance.geofences.geofencesGet(undefined, undefined, undefined, g.id, undefined, undefined).then(r => r.data)).map(g => g.id)
33
+ }
34
+ }
package/src/util/utils.js CHANGED
@@ -234,3 +234,11 @@ exports.getLogo = (user) => {
234
234
  }
235
235
  exports.convertToFeature = convertToFeature
236
236
  exports.convertPositionToFeature = convertPositionToFeature
237
+ exports.calculateDistance = (positions) => {
238
+ return positions.map(p => [p.longitude, p.latitude])
239
+ .reduce((previousValue, currentValue, currentIndex, array) => {
240
+ return currentIndex < array.length - 1
241
+ ? previousValue + distance.default(currentValue, array[currentIndex + 1])
242
+ : previousValue
243
+ }, 0) || 0
244
+ }
@@ -1,6 +1,9 @@
1
1
  const moment = require('moment')
2
2
  const automaticReports = require('./automaticReports')
3
- const { convertMS, convertToLocaleString, getTranslations, convertToFeature, convertPositionToFeature } = require('./util/utils')
3
+ const {
4
+ convertMS, convertToLocaleString, getTranslations, convertToFeature, convertPositionToFeature,
5
+ calculateDistance
6
+ } = require('./util/utils')
4
7
  const jsPDF = require('jspdf')
5
8
  require('jspdf-autotable')
6
9
  const traccarHelper = require('./util/traccar')
@@ -113,6 +116,7 @@ async function processDevices (from, to, devices, userData, data) {
113
116
  inTime: zoneInData[a.geofenceId].position,
114
117
  outTime: a.position,
115
118
  totalTime: totalInTime,
119
+ distance: calculateDistance(route),
116
120
  geofenceName: geofence.name,
117
121
  stopped: route.filter(p => !p.attributes.ignition).length > 0,
118
122
  driverName: zoneInData[a.geofenceId].position.driverName