fleetmap-reports 1.0.912 → 1.0.916

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.912",
3
+ "version": "1.0.916",
4
4
  "description": "",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -45,18 +45,19 @@ describe('zones', function () {
45
45
 
46
46
  // eslint-disable-next-line no-undef
47
47
  it('works with casais zones in columns', async () => {
48
- const report = await getReports(process.env.USER_CASAIS, process.env.PASS_CASAIS)
48
+ const report = await getReports('fleetmap.joao.penas2@gmail.com', 'penas46881')
49
49
  const userData = await report.getUserData()
50
50
  userData.zonesByColumn = true
51
- userData.devices = userData.devices.filter(d => d.name === 'G-1101-E Clio')
52
- userData.geofences = userData.geofences.filter(g => g.name === 'baliza 1 - raio verde ')
53
- userData.onlyWithKmsOut = true
51
+ userData.devices = userData.devices.filter(d => d.id === 81202)
52
+ userData.geofences = userData.geofences.filter(g => g.name === 'baliza 1 - raio verde ' ||
53
+ g.name === 'baliza 2 - raio amarelo')
54
+ userData.onlyWithKmsOut = false
54
55
  const result = await report.zoneReport(
55
- new Date(Date.UTC(2023, 0, 1, 0, 0, 0, 0)),
56
- new Date(Date.UTC(2023, 0, 31, 23, 59, 59, 0)),
56
+ new Date(Date.UTC(2023, 6, 13, 0, 0, 0, 0)),
57
+ new Date(Date.UTC(2023, 6, 13, 23, 59, 59, 0)),
57
58
  userData)
58
- const first = result[0].devices[0].days[0]
59
+ const first = result[0].devices[0]
59
60
  console.log(first)
60
- assert.equal(first.distanceOut, 35.52274536571346)
61
+ assert.equal(first.days[0].distanceOut, 28)
61
62
  }, 4000000)
62
63
  })
@@ -261,8 +261,13 @@ function getAnyNextIn (outDate, alerts, deviceRoute) {
261
261
  const next = alerts
262
262
  .filter(a => a.type === 'geofenceEnter')
263
263
  .find(a => new Date(a.position.fixTime).getTime() > outDate)
264
- return (next && next.position && new Date(next.position.fixTime).getTime()) ||
265
- new Date(deviceRoute.slice(-1)[0].fixTime).getTime()
264
+
265
+ if (!alerts.filter(a => a.type === 'geofenceExit' &&
266
+ new Date(a.position.fixTime).getTime() > outDate &&
267
+ new Date(a.position.fixTime).getTime() < new Date(next.position.fixTime).getTime()).length) {
268
+ return (next && next.position && new Date(next.position.fixTime).getTime()) ||
269
+ new Date(deviceRoute.slice(-1)[0].fixTime).getTime()
270
+ }
266
271
  }
267
272
 
268
273
  function calculateDistanceIn (zoneInOutDayData, deviceRoute, dayRoute, fromByDay, toByDay, to, device) {
@@ -289,8 +294,8 @@ function calculateDistanceIn (zoneInOutDayData, deviceRoute, dayRoute, fromByDay
289
294
 
290
295
  function calculateDistanceOut (zoneInOutDayData, dayRoute, fromByDay, toByDay, field, device) {
291
296
  if (zoneInOutDayData.length) {
292
- let distanceOut = zoneInOutDayData.reduce((a, b) => a + (b[field] || 0), 0) -
293
- (zoneInOutDayData[zoneInOutDayData.length - 1][field] || 0)
297
+ const dataInsideDay = zoneInOutDayData.filter(z => z.outTime && new Date(z.outTime.fixTime) < toByDay)
298
+ let distanceOut = dataInsideDay.reduce((a, b) => a + (b[field] || 0), 0)
294
299
 
295
300
  if (zoneInOutDayData[0].inTime && new Date(zoneInOutDayData[0].inTime.fixTime) > fromByDay) {
296
301
  // Add distanceOut before the first entry
@@ -302,6 +307,7 @@ function calculateDistanceOut (zoneInOutDayData, dayRoute, fromByDay, toByDay, f
302
307
  }
303
308
 
304
309
  if (zoneInOutDayData[zoneInOutDayData.length - 1].outTime && new Date(zoneInOutDayData[zoneInOutDayData.length - 1].outTime.fixTime) < toByDay) {
310
+ distanceOut = distanceOut - zoneInOutDayData[zoneInOutDayData.length - 1][field]
305
311
  const routeOut = dayRoute.filter(p =>
306
312
  new Date(p.fixTime) >= new Date(zoneInOutDayData[zoneInOutDayData.length - 1].outTime.fixTime).getTime() &&
307
313
  new Date(p.fixTime) < toByDay.getTime())