fleetmap-reports 2.0.21 → 2.0.23

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": "2.0.21",
3
+ "version": "2.0.23",
4
4
  "description": "",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
package/src/kms-report.js CHANGED
@@ -403,27 +403,46 @@ function getExcelTableColumns (userData, info, translations) {
403
403
  if (userData.groupByDay) {
404
404
  const partner = getUserPartner(userData.user)
405
405
  if (partner.reports.kmsReportDaysInColumns) {
406
- columns.push(
407
- { label: translations.report.vehicle, value: 'name' },
408
- { label: translations.settings.vehicle_licenseplate, value: 'licenseplate' },
409
- { label: translations.report.group, value: 'group' },
410
- { label: translations.report.startOdometer, value: 'startOdometer' })
406
+ if (userData.byDriver) {
407
+ columns.push(
408
+ { label: translations.report.vehicle, value: 'name' },
409
+ { label: translations.report.group, value: 'group' })
410
+ } else {
411
+ columns.push(
412
+ { label: translations.report.vehicle, value: 'name' },
413
+ { label: translations.settings.vehicle_licenseplate, value: 'licenseplate' },
414
+ { label: translations.report.group, value: 'group' },
415
+ { label: translations.report.startOdometer, value: 'startOdometer' })
416
+ }
411
417
 
412
418
  const days = info[0].days
413
419
  days.forEach((day, index) => {
414
420
  columns.push({ label: new Date(day.date).toLocaleDateString(), value: 'day' + index })
415
421
  })
416
422
 
417
- columns.push({ label: translations.report.total, value: 'total' },
418
- { label: translations.report.endOdometer, value: 'endOdometer' })
423
+ if (userData.byDriver) {
424
+ columns.push({ label: translations.report.total, value: 'total' })
425
+ } else {
426
+ columns.push({ label: translations.report.total, value: 'total' },
427
+ { label: translations.report.endOdometer, value: 'endOdometer' })
428
+ }
419
429
  } else {
420
- columns.push(
421
- { label: translations.report.vehicle, value: 'name' },
422
- { label: translations.settings.vehicle_licenseplate, value: 'licenseplate' },
423
- { label: translations.report.group, value: 'group' },
424
- { label: translations.report.date, value: 'date' },
425
- { label: translations.report.weekDay, value: 'weekday' },
426
- { label: translations.report.distance, value: 'distance' })
430
+ if (userData.byDriver) {
431
+ columns.push(
432
+ { label: translations.report.vehicle, value: 'name' },
433
+ { label: translations.report.group, value: 'group' },
434
+ { label: translations.report.date, value: 'date' },
435
+ { label: translations.report.weekDay, value: 'weekday' },
436
+ { label: translations.report.distance, value: 'distance' })
437
+ } else {
438
+ columns.push(
439
+ { label: translations.report.vehicle, value: 'name' },
440
+ { label: translations.settings.vehicle_licenseplate, value: 'licenseplate' },
441
+ { label: translations.report.group, value: 'group' },
442
+ { label: translations.report.date, value: 'date' },
443
+ { label: translations.report.weekDay, value: 'weekday' },
444
+ { label: translations.report.distance, value: 'distance' })
445
+ }
427
446
  }
428
447
  } else if (userData.byDriver) {
429
448
  columns.push(
@@ -456,48 +475,46 @@ function getExcelContent (userData, d, translations) {
456
475
  ? userData.groups.find(g => g.drivers && g.drivers.includes(d.driver.id))
457
476
  : userData.groups.find(g => d.device.groupId === g.id)
458
477
 
459
- if (d.device) {
460
- if (userData.groupByDay) {
461
- const partner = getUserPartner(userData.user)
462
- if (d.days) {
463
- if (partner.reports.kmsReportDaysInColumns) {
464
- const vehicle = {
465
- name: d.device.name,
466
- group: group ? group.name : '',
467
- licenseplate: d.device.attributes.license_plate,
468
- startOdometer: Number((d.startOdometer / 1000).toFixed(1)),
469
- endOdometer: Number((d.endOdometer / 1000).toFixed(1))
470
- }
478
+ if (userData.groupByDay) {
479
+ const partner = getUserPartner(userData.user)
480
+ if (d.days) {
481
+ if (partner.reports.kmsReportDaysInColumns) {
482
+ const vehicle = {
483
+ name: userData.byDriver ? d.driver.name : d.device.name,
484
+ group: group ? group.name : '',
485
+ licenseplate: userData.byDriver ? '' : d.device.attributes.license_plate,
486
+ startOdometer: userData.byDriver ? '' : Number((d.startOdometer / 1000).toFixed(1)),
487
+ endOdometer: userData.byDriver ? '' : Number((d.endOdometer / 1000).toFixed(1))
488
+ }
471
489
 
472
- d.days.forEach((day, index) => {
473
- vehicle['day' + index] = Number((day.kms / 1000).toFixed(0))
474
- })
490
+ d.days.forEach((day, index) => {
491
+ vehicle['day' + index] = Number((day.kms / 1000).toFixed(0))
492
+ })
475
493
 
476
- vehicle.total = Number(d.days.reduce((a, b) => a + (b.kms / 1000), 0).toFixed(0))
477
-
478
- data.push(vehicle)
479
- } else {
480
- data.push({})
481
- data.push(...(d.days.map(a => {
482
- return {
483
- name: d.device.name,
484
- group: group ? group.name : '',
485
- licenseplate: d.device.attributes.license_plate,
486
- date: new Date(a.date).toLocaleDateString(),
487
- weekday: weekDays[new Date(a.date).getDay()],
488
- distance: Number((a.kms / 1000).toFixed(0))
489
- }
490
- })))
491
- }
494
+ vehicle.total = Number(d.days.reduce((a, b) => a + (b.kms / 1000), 0).toFixed(0))
495
+
496
+ data.push(vehicle)
497
+ } else {
498
+ data.push({})
499
+ data.push(...(d.days.map(a => {
500
+ return {
501
+ name: userData.byDriver ? d.driver.name : d.device.name,
502
+ group: group ? group.name : '',
503
+ licenseplate: userData.byDriver ? '' : d.device.attributes.license_plate,
504
+ date: new Date(a.date).toLocaleDateString(),
505
+ weekday: weekDays[new Date(a.date).getDay()],
506
+ distance: Number((a.kms / 1000).toFixed(0))
507
+ }
508
+ })))
492
509
  }
493
- } else {
494
- data.push({
495
- name: userData.byDriver ? d.driver.name : d.device.name,
496
- group: group ? group.name : '',
497
- licenseplate: userData.byDriver ? '' : d.device.attributes.license_plate,
498
- distance: Number((d.summary.distance / 1000).toFixed(0))
499
- })
500
510
  }
511
+ } else {
512
+ data.push({
513
+ name: userData.byDriver ? d.driver.name : d.device.name,
514
+ group: group ? group.name : '',
515
+ licenseplate: userData.byDriver ? '' : d.device.attributes.license_plate,
516
+ distance: Number((d.summary.distance / 1000).toFixed(0))
517
+ })
501
518
  }
502
519
  return data
503
520
  }
@@ -314,7 +314,7 @@ async function getRoadSpeedLimits (devices, routes, threshold, minimumMinutes =
314
314
 
315
315
  exports.getRoadSpeedLimits = getRoadSpeedLimits
316
316
 
317
- async function invokeValhalla (route, i, chunk, country, threshold, results, retry = 3) {
317
+ async function invokeValhalla (route, i, chunk, country, threshold, results, retry = 10) {
318
318
  const slice = route.slice(i, i + chunk)
319
319
  const position = slice.find(p => getCountry(p))
320
320
  let url
@@ -360,7 +360,7 @@ async function invokeValhalla (route, i, chunk, country, threshold, results, ret
360
360
  })
361
361
  } catch (e) {
362
362
  if (--retry) {
363
- console.log(e.message, 'retry:', retry)
363
+ console.error(e.message, 'retry:', retry)
364
364
  return invokeValhalla(route, i, chunk, country, threshold, results, retry)
365
365
  } else {
366
366
  console.error(e.message, (e.response && e.response.data) || url, 'deviceId',
@@ -12,7 +12,9 @@ const axios = require('axios').create({ ...traccarConfig.baseOptions, baseURL: t
12
12
 
13
13
  const getReports = async (email, password) => {
14
14
  try {
15
- console.log('email / pass', process.env.email || email, process.env.password || password)
15
+ email = email || process.env.email
16
+ password = password || process.env.password
17
+ console.log('email / pass', email, password)
16
18
  const formData = `email=${encodeURIComponent(email)}&password=${encodeURIComponent(password)}`
17
19
  const [cookie] = (await axios.post('/session', formData)).headers['set-cookie']
18
20
  axios.defaults.headers.common.cookie = cookie
@@ -16,9 +16,10 @@ async function getSpeedingReport (report, userData) {
16
16
  // eslint-disable-next-line no-undef
17
17
  describe('speeding tests', function () {
18
18
  // eslint-disable-next-line no-undef
19
- it('works with road speed limits', async () => {
20
- const report = await getReports()
19
+ it('works with road speed limits in Chile', async () => {
20
+ const report = await getReports(process.env.USER_CHILE, process.env.PASS_CHILE)
21
21
  const userData = await report.getUserData()
22
+ userData.devices = [userData.devices[0]]
22
23
  userData.roadSpeedLimits = true
23
24
  const { device } = await getSpeedingReport(report, userData)
24
25
  assert.equal(device.alerts.length, 6) // Total Alerts