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 +1 -1
- package/src/events-report.js +23 -8
- package/src/index.js +0 -1
- package/src/partnerReports/afriquia.js +0 -5
- package/src/tests/activity.test.js +10 -0
- package/src/tests/index.test.js +11 -3
- package/src/tests/zones.test.js +12 -0
package/package.json
CHANGED
package/src/events-report.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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,
|
|
313
|
-
if (
|
|
314
|
-
return convertToLocaleString(
|
|
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
|
})
|
package/src/tests/index.test.js
CHANGED
|
@@ -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')
|
package/src/tests/zones.test.js
CHANGED
|
@@ -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)
|