fleetmap-reports 1.0.308 → 1.0.309

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.308",
3
+ "version": "1.0.309",
4
4
  "description": "",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -11,33 +11,28 @@ const traccar = require("./util/traccar")
11
11
  const {isInsideTimetable, isPartialInsideTimetable} = require("./util/trips");
12
12
  const trips = require("./util/trips");
13
13
 
14
- let traccarInstance
15
- let userData
16
-
17
14
  const fileName = 'ActivityReport'
18
15
 
19
- async function createActivityReport(from, to, reportUserData, traccar) {
16
+ async function createActivityReport(from, to, userData, traccarInstance) {
20
17
  console.log('Create ActivityReport')
21
- traccarInstance = traccar
22
- userData = reportUserData
23
18
  const reportData = []
24
19
 
25
20
  if(userData.byDriver){
26
- const allData = await createActivityReportByDriver(from, to)
21
+ const allData = await createActivityReportByDriver(from, to, userData, traccarInstance)
27
22
  reportData.push(allData)
28
23
  }
29
24
  else if(userData.byGroup){
30
- const allData = await createActivityReportByGroup(from, to)
25
+ const allData = await createActivityReportByGroup(from, to, userData, traccarInstance)
31
26
  reportData.push(...allData)
32
27
  } else {
33
- const allData = await createActivityReportByDevice(from, to)
28
+ const allData = await createActivityReportByDevice(from, to, userData, traccarInstance)
34
29
  reportData.push(allData)
35
30
  }
36
31
 
37
32
  return reportData
38
33
  }
39
34
 
40
- async function createActivityReportByGroup(from, to){
35
+ async function createActivityReportByGroup(from, to, userData, traccarInstance){
41
36
  console.log("ByGroup")
42
37
  const reportData = []
43
38
  for (const g of userData.groups) {
@@ -76,7 +71,7 @@ async function createActivityReportByGroup(from, to){
76
71
  return reportData
77
72
  }
78
73
 
79
- async function createActivityReportByDevice(from, to){
74
+ async function createActivityReportByDevice(from, to, userData, traccarInstance){
80
75
  const groupIds = userData.groups.map(g => g.id)
81
76
  const devicesToProcess = userData.byGroup ? userData.devices.filter(d => !groupIds.includes(d.groupId)) : userData.devices
82
77
 
@@ -127,7 +122,7 @@ async function createActivityReportByDevice(from, to){
127
122
  return allData
128
123
  }
129
124
 
130
- async function createActivityReportByDriver(from, to){
125
+ async function createActivityReportByDriver(from, to, userData, traccarInstance){
131
126
  const devices = await drivers.devicesByDriver(traccarInstance, from, to, userData.drivers, userData.devices)
132
127
 
133
128
  let tripsData = []
@@ -9,10 +9,7 @@ const {convertToLocaleString} = require("./util/utils");
9
9
 
10
10
  const fileName = 'EventReport'
11
11
 
12
- let traccar
13
-
14
- async function createEventsReport(from, to, userData, traccarInstance) {
15
- traccar = traccarInstance
12
+ async function createEventsReport(from, to, userData, traccar) {
16
13
  console.log('Create EventsReport')
17
14
  const reportData = []
18
15
 
@@ -45,7 +42,7 @@ async function createEventsReport(from, to, userData, traccarInstance) {
45
42
 
46
43
  withoutGroupDevices.sort((a, b) => (a.name > b.name) ? 1 : -1)
47
44
 
48
- const data = await getReportData(from, to, withoutGroupDevices, userData.eventTypes)
45
+ const data = await getReportData(from, to, withoutGroupDevices, userData.eventTypes, traccar)
49
46
 
50
47
  if(data.length > 0) {
51
48
  reportData.push({
@@ -57,7 +54,7 @@ async function createEventsReport(from, to, userData, traccarInstance) {
57
54
  return reportData
58
55
  }
59
56
 
60
- async function getReportData(from, to, devices, types) {
57
+ async function getReportData(from, to, devices, types, traccar) {
61
58
  let data = []
62
59
  const arrayOfArrays = automaticReports.sliceArray(devices)
63
60
  const traccarTypes = new Set(types.map(t => t.startsWith('alarm') ? 'alarm' : t))
@@ -1,10 +1,7 @@
1
1
  const automaticReports = require("./automaticReports");
2
2
  const refuelingReport = require("./refueling-report");
3
3
 
4
- let traccar
5
-
6
- async function createFuelConsumptionReport(from, to, userData, traccarInstance) {
7
- traccar = traccarInstance
4
+ async function createFuelConsumptionReport(from, to, userData, traccar) {
8
5
  console.log('Create FuelConsumption Report')
9
6
 
10
7
  const reportData = []
@@ -60,12 +57,10 @@ async function createFuelConsumptionReport(from, to, userData, traccarInstance)
60
57
  const dayTrips = groupedTrips.get(key)
61
58
  const dayRefueling = groupedRefuelings.get(key)
62
59
  const distance = dayTrips.reduce((a, b) => a + b.distance, 0)
63
- let spentFuel = 0
64
- if(d.attributes.xpert) {
65
- spentFuel = automaticReports.calculateXpertSpentFuel(key, positions)
66
- } else {
67
- spentFuel = automaticReports.calculateSpentFuel(dayTrips.reduce((a, b) => a + b.spentFuel, 0), d)
68
- }
60
+ let spentFuel = d.attributes.xpert ?
61
+ automaticReports.calculateXpertSpentFuel(key, positions)
62
+ :
63
+ automaticReports.calculateSpentFuel(dayTrips.reduce((a, b) => a + b.spentFuel, 0), d)
69
64
 
70
65
  const day = {
71
66
  date: key,
@@ -10,38 +10,33 @@ const drivers = require("./util/driver")
10
10
  const {distance, point} = require('turf')
11
11
  const here = require('./here')
12
12
  const {getUserPartner} = require("fleetmap-partners");
13
- const traccar = require("./util/traccar");
14
-
15
- let traccarInstance
16
- let userData
13
+ const traccarHelper = require("./util/traccar");
17
14
 
18
15
  const fileName = 'SpeedingReport'
19
16
  const eventTypes = ['deviceOverspeed']
20
17
 
21
- async function createSpeedingReport(from, to, reportUserData, traccar) {
22
- traccarInstance = traccar
23
- userData = reportUserData
18
+ async function createSpeedingReport(from, to, userData, traccarInstance) {
24
19
  const reportData = []
25
20
 
26
21
  if (userData.byDriver) {
27
22
  console.log("ByDriver")
28
- const allData = await createSpeedingReportByDriver(from, to)
23
+ const allData = await createSpeedingReportByDriver(from, to, userData, traccarInstance)
29
24
  reportData.push(allData)
30
25
  }
31
26
  else if (userData.byGroup) {
32
27
  console.log("ByGroup")
33
- const allData = await createSpeedingReportByGroup(from, to)
28
+ const allData = await createSpeedingReportByGroup(from, to, userData, traccarInstance)
34
29
  reportData.push(...allData)
35
30
  } else {
36
31
  console.log("createSpeedingReportByDevice")
37
- const allData = await createSpeedingReportByDevice(from, to, userData.devices)
32
+ const allData = await createSpeedingReportByDevice(from, to, userData.devices, userData, traccarInstance)
38
33
  reportData.push(allData)
39
34
  }
40
35
 
41
36
  return reportData
42
37
  }
43
38
 
44
- async function createSpeedingReportByGroup(from, to){
39
+ async function createSpeedingReportByGroup(from, to, userData, traccarInstance){
45
40
  const reportData = []
46
41
  for (const g of userData.groups) {
47
42
  const devices = userData.devices.filter(d => d.groupId === g.id)
@@ -53,8 +48,8 @@ async function createSpeedingReportByGroup(from, to){
53
48
  xpert: devices.filter(d => d.attributes.xpert).length > 0
54
49
  }
55
50
 
56
- const events = await traccar.getEvents(traccarInstance, from, to, devices, eventTypes)
57
- const routes = await traccar.getRoute(traccarInstance, from, to, devices)
51
+ const events = await traccarHelper.getEvents(traccarInstance, from, to, devices, eventTypes)
52
+ const routes = await traccarHelper.getRoute(traccarInstance, from, to, devices)
58
53
 
59
54
  devices.sort((a, b) => (a.name > b.name) ? 1 : -1)
60
55
 
@@ -74,15 +69,15 @@ async function createSpeedingReportByGroup(from, to){
74
69
  return reportData
75
70
  }
76
71
 
77
- async function createSpeedingReportByDevice(from, to, devices) {
72
+ async function createSpeedingReportByDevice(from, to, devices, userData, traccarInstance) {
78
73
  devices.sort((a, b) => (a.name > b.name) ? 1 : -1)
79
74
 
80
- const routes = await traccar.getRoute(traccarInstance, from, to, devices)
75
+ const routes = await traccarHelper.getRoute(traccarInstance, from, to, devices)
81
76
  const events = []
82
77
  if(!userData.useVehicleSpeedLimit && userData.customSpeed){
83
78
  events.push(...await getCustomSpeedLimitEvents(devices, routes))
84
79
  } else {
85
- events.push(...await traccar.getEvents(traccarInstance, from, to, devices, eventTypes))
80
+ events.push(...await traccarHelper.getEvents(traccarInstance, from, to, devices, eventTypes))
86
81
  }
87
82
 
88
83
  if(userData.roadSpeedLimits){
@@ -109,12 +104,12 @@ async function createSpeedingReportByDriver(from, to) {
109
104
  return { drivers: [] }
110
105
  }
111
106
 
112
- const routes = await traccar.getRoute(traccarInstance, from, to, devices)
107
+ const routes = await traccarHelper.getRoute(traccarInstance, from, to, devices)
113
108
  const events = []
114
109
  if(!userData.useVehicleSpeedLimit && userData.customSpeed){
115
110
  events.push(...await getCustomSpeedLimitEvents(devices, routes))
116
111
  } else {
117
- events.push(...await traccar.getEvents(traccarInstance, from, to, devices, eventTypes))
112
+ events.push(...await traccarHelper.getEvents(traccarInstance, from, to, devices, eventTypes))
118
113
  }
119
114
 
120
115
  if(userData.roadSpeedLimits){