fleetmap-reports 1.0.868 → 1.0.870

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.868",
3
+ "version": "1.0.870",
4
4
  "description": "",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -4,7 +4,7 @@ require('jspdf-autotable')
4
4
  const { getStyle } = require('./reportStyle')
5
5
  const { headerFromUser } = require('./util/pdfDocument')
6
6
  const { getUserPartner } = require('fleetmap-partners')
7
- const { convertToLocaleString, getTranslations } = require('./util/utils')
7
+ const { convertToLocaleString, getTranslations, convertMS } = require('./util/utils')
8
8
  const { devicesToProcess } = require('./util/device')
9
9
  const { isInside } = require('./util/timetable')
10
10
  const { getDigitalPortValue } = require('./location-report')
@@ -84,6 +84,13 @@ async function processDevices (from, to, devices, data, traccar, userData) {
84
84
  for (const a of deviceAlerts) {
85
85
  a.position = positions.find(p => p.id === a.positionId)
86
86
 
87
+ if (a.type === 'alarm' && a.position) {
88
+ for (const p of positions.filter(p => p.fixTime >= a.position.fixTime)) {
89
+ if (p.attributes.alarm !== a.position.attributes.alarm) { break }
90
+ a.endPosition = p
91
+ }
92
+ }
93
+
87
94
  if (!a.geofenceId && a.position) {
88
95
  const poi = getNearestPOI(a.position, userData.geofences)
89
96
  a.geofenceId = poi && poi.p.id
@@ -132,8 +139,10 @@ async function exportSpeedingReportToPDF (userData, reportData) {
132
139
 
133
140
  const headers = [
134
141
  translations.report.eventType,
135
- translations.report.date,
142
+ translations.report.start,
143
+ translations.report.end,
136
144
  translations.report.address,
145
+ translations.report.duration,
137
146
  translations.report.info
138
147
  ]
139
148
  if (reportData.devices) {
@@ -185,8 +194,10 @@ async function exportSpeedingReportToPDF (userData, reportData) {
185
194
  d.alerts.forEach(a => {
186
195
  const temp = [
187
196
  getEventType(a, translations, d.device),
188
- getAlertDate(userData.user, a),
197
+ getAlertDate(userData.user, a.position),
198
+ getAlertDate(userData.user, a.endPosition),
189
199
  a.geofenceName || (a.position ? a.position.address : ''),
200
+ a.position && a.endPosition ? convertMS(new Date(a.endPosition.fixTime).getTime() - new Date(a.position.fixTime).getTime()) : '',
190
201
  getAlertInfo(userData.drivers, a, d.device, translations)
191
202
  ]
192
203
  data.push(temp)
@@ -247,8 +258,10 @@ function exportSpeedingReportToExcel (userData, reportData) {
247
258
  const headers = [
248
259
  { label: translations.report.vehicle, value: 'name' },
249
260
  { label: translations.report.eventType, value: 'eventType' },
250
- { label: translations.report.date, value: 'fixTime' },
261
+ { label: translations.report.start, value: 'fixTime' },
262
+ { label: translations.report.end, value: 'endFixTime' },
251
263
  { label: translations.report.address, value: 'address' },
264
+ { label: translations.report.duration, value: 'duration' },
252
265
  { label: translations.report.zone, value: 'geofenceName' },
253
266
  { label: translations.report.driver, value: 'driver' },
254
267
  { label: translations.report.info, value: 'info' },
@@ -262,8 +275,10 @@ function exportSpeedingReportToExcel (userData, reportData) {
262
275
  return {
263
276
  name: d.device.name,
264
277
  eventType: getEventType(a, translations, d.device),
265
- fixTime: getAlertDate(userData.user, a),
278
+ fixTime: getAlertDate(userData.user, a.position),
279
+ endFixTime: getAlertDate(userData.user, a.endPosition),
266
280
  address: a.position && a.position.address,
281
+ duration: a.position && a.endPosition ? convertMS(new Date(a.endPosition.fixTime).getTime() - new Date(a.position.fixTime).getTime()) : '',
267
282
  geofenceName: a.geofenceName,
268
283
  info: getAlertInfo(userData.drivers, a, d.device, translations),
269
284
  driver: a.driver,
@@ -309,9 +324,9 @@ function getAlertInfo (drivers, alert, device, translations) {
309
324
  return ''
310
325
  }
311
326
 
312
- function getAlertDate (user, alert) {
313
- if (alert.position) {
314
- return convertToLocaleString(alert.position.fixTime, user.attributes.lang, user.attributes.timezone)
327
+ function getAlertDate (user, position) {
328
+ if (position) {
329
+ return convertToLocaleString(position.fixTime, user.attributes.lang, user.attributes.timezone)
315
330
  }
316
331
  }
317
332
 
package/src/index.js CHANGED
@@ -182,6 +182,5 @@ function Reports (config, axios, cookieJar) {
182
182
  this.stopReportToExcel = (userData, reportData) => {
183
183
  return require('./stop-report').exportStopReportToExcel(userData, reportData)
184
184
  }
185
- this.getPdf = require('./carbone').getPdf
186
185
  }
187
186
  module.exports = Reports
@@ -6,11 +6,6 @@ const { convertToFeature, convertPositionToFeature } = require('../util/utils')
6
6
  function calculateLastStopTime (stopTime, to, time) {
7
7
  return stopTime + (to.getTime() - new Date(time).getTime())
8
8
  }
9
-
10
- function calculateFirstStopTime (stopTime, from, time) {
11
- return stopTime + (new Date(time).getTime() - from.getTime())
12
- }
13
-
14
9
  async function createActivityReport (from, to, userData, traccarInstance) {
15
10
  const unauthorizedGeofences = []
16
11
  const authorizedGeofences = []
@@ -72,4 +72,14 @@ describe('activity report', function () {
72
72
  console.log(device)
73
73
  assert.equal(device.summary.reduce((a, b) => a + b.convertedSpentFuel, 0), 168.79999999999995)
74
74
  }, 800000)
75
+ it('Activity test performance', async () => {
76
+ const report = await getReports('q.trans', 'quality1214')
77
+ const userData = await report.getUserData()
78
+ console.log(userData)
79
+ userData.groupByDay = true
80
+ const data = await report.activityReport(new Date(2023, 7, 1, 0, 0, 0, 0),
81
+ new Date(2023, 31, 5, 23, 59, 59, 0),
82
+ userData)
83
+ assert.equal(data.length, 1)
84
+ }, 8000000)
75
85
  })
@@ -2,6 +2,7 @@
2
2
  const { getReports } = require('./index')
3
3
  const assert = require('assert')
4
4
  const utils = require('../util/utils')
5
+ const { createGPSJumpReport } = require('../partnerReports/gpsjump-report')
5
6
 
6
7
  // eslint-disable-next-line no-undef
7
8
  describe('Test_Reports', function () {
@@ -18,12 +19,19 @@ describe('Test_Reports', function () {
18
19
  const pdf = await report.speedingReportToPDF(userData, data[0])
19
20
  pdf.save()
20
21
  }, 40000)
21
-
22
22
  it('converts madrid time', async () => {
23
23
  assert.equal(false, utils.isClientSide())
24
24
  console.log(utils.convertToLocaleString(new Date(), 'es-CL', 'Europe/Madrid'))
25
25
  })
26
-
26
+ it('gps jump device', async () => {
27
+ const report = await getReports('HASSANE', 'movitec.1637')
28
+ const userData = await report.getUserData()
29
+ userData.devices = userData.devices.filter(d => d.id === 148725)
30
+ const data = await createGPSJumpReport(new Date(2023, 8, 22, 0, 0, 0, 0),
31
+ new Date(2023, 8, 24, 23, 59, 59, 0),
32
+ userData, report.traccar)
33
+ console.log(data)
34
+ }, 40000)
27
35
  it('Idle by device', async () => {
28
36
  const report = await getReports()
29
37
  const userData = await report.getUserData()
@@ -54,7 +62,7 @@ describe('Test_Reports', function () {
54
62
  const totalIdleTime = driver.idleEvents.reduce((a, b) => a + b.idleTime, 0)
55
63
  assert.equal(driver.idleEvents.length, 15) // Total Alerts
56
64
  assert.equal(totalIdleTime, 16000) // Total Duration
57
- }, 20000)
65
+ }, 20000),
58
66
  // eslint-disable-next-line no-undef
59
67
  it('test allinone', async () => {
60
68
  console.log('Start')
@@ -27,6 +27,18 @@ describe('zones', function () {
27
27
  console.log('result', result)
28
28
  }, 4000000)
29
29
 
30
+ it('works with afriquia', async () => {
31
+ const report = await getReports(process.env.USER_AFRIQUIA, process.env.PASS_AFRIQUIA)
32
+ const userData = await report.getUserData()
33
+ console.log(userData.devices.length)
34
+ console.log(userData.geofences)
35
+ const result = await report.zoneReport(
36
+ new Date(Date.UTC(2023, 5, 11, 0, 0, 0, 0)),
37
+ new Date(Date.UTC(2023, 5, 11, 23, 59, 59, 0)),
38
+ userData)
39
+ console.log('result', result)
40
+ }, 4000000)
41
+
30
42
  // eslint-disable-next-line no-undef
31
43
  it('works with casais', async () => {
32
44
  const report = await getReports(process.env.USER_CASAIS, process.env.PASS_CASAIS)