fleetmap-reports 1.0.257 → 1.0.261
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/.idea/workspace.xml +35 -10
- package/package.json +1 -1
- package/src/events-report.js +4 -5
- package/src/index.test.js +11 -0
- package/src/location-report.js +4 -5
- package/src/speeding-report.js +4 -6
- package/src/trip-report.js +15 -16
- package/src/util/driver.js +1 -2
- package/src/util/utils.js +38 -0
- package/src/zone-report.js +5 -10
package/.idea/workspace.xml
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<project version="4">
|
|
3
3
|
<component name="ChangeListManager">
|
|
4
|
-
<list default="true" id="eb665c86-c893-4333-bd2a-721dc27980b9" name="Changes" comment="
|
|
5
|
-
<change beforePath="$PROJECT_DIR$/lang/enGB.js" beforeDir="false" afterPath="$PROJECT_DIR$/lang/enGB.js" afterDir="false" />
|
|
6
|
-
<change beforePath="$PROJECT_DIR$/lang/esCL.js" beforeDir="false" afterPath="$PROJECT_DIR$/lang/esCL.js" afterDir="false" />
|
|
7
|
-
<change beforePath="$PROJECT_DIR$/lang/ptBR.js" beforeDir="false" afterPath="$PROJECT_DIR$/lang/ptBR.js" afterDir="false" />
|
|
8
|
-
<change beforePath="$PROJECT_DIR$/lang/ptPT.js" beforeDir="false" afterPath="$PROJECT_DIR$/lang/ptPT.js" afterDir="false" />
|
|
4
|
+
<list default="true" id="eb665c86-c893-4333-bd2a-721dc27980b9" name="Changes" comment="timezone - check if it's running on client side">
|
|
9
5
|
<change beforePath="$PROJECT_DIR$/package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/package-lock.json" afterDir="false" />
|
|
10
6
|
<change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
|
|
11
7
|
<change beforePath="$PROJECT_DIR$/src/index.test.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/index.test.js" afterDir="false" />
|
|
12
|
-
<change beforePath="$PROJECT_DIR$/src/
|
|
13
|
-
<change beforePath="$PROJECT_DIR$/src/util/trips.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/util/trips.js" afterDir="false" />
|
|
8
|
+
<change beforePath="$PROJECT_DIR$/src/trip-report.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/trip-report.js" afterDir="false" />
|
|
14
9
|
</list>
|
|
15
10
|
<option name="SHOW_DIALOG" value="false" />
|
|
16
11
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
@@ -217,7 +212,13 @@
|
|
|
217
212
|
<workItem from="1639592539998" duration="27141000" />
|
|
218
213
|
<workItem from="1639766010908" duration="4991000" />
|
|
219
214
|
<workItem from="1639872937953" duration="1438000" />
|
|
220
|
-
<workItem from="1639954341221" duration="
|
|
215
|
+
<workItem from="1639954341221" duration="11986000" />
|
|
216
|
+
<workItem from="1640272520380" duration="2253000" />
|
|
217
|
+
<workItem from="1640789226071" duration="1935000" />
|
|
218
|
+
<workItem from="1640794844118" duration="10128000" />
|
|
219
|
+
<workItem from="1640866364417" duration="67000" />
|
|
220
|
+
<workItem from="1640866782794" duration="123000" />
|
|
221
|
+
<workItem from="1640866964393" duration="478000" />
|
|
221
222
|
</task>
|
|
222
223
|
<task id="LOCAL-00001" summary="Fix getStyle">
|
|
223
224
|
<created>1636983717385</created>
|
|
@@ -324,7 +325,28 @@
|
|
|
324
325
|
<option name="project" value="LOCAL" />
|
|
325
326
|
<updated>1640000462825</updated>
|
|
326
327
|
</task>
|
|
327
|
-
<
|
|
328
|
+
<task id="LOCAL-00016" summary="Fix reports by driver">
|
|
329
|
+
<created>1640274171902</created>
|
|
330
|
+
<option name="number" value="00016" />
|
|
331
|
+
<option name="presentableId" value="LOCAL-00016" />
|
|
332
|
+
<option name="project" value="LOCAL" />
|
|
333
|
+
<updated>1640274171902</updated>
|
|
334
|
+
</task>
|
|
335
|
+
<task id="LOCAL-00017" summary="location report - check if it's running on client side">
|
|
336
|
+
<created>1640795243287</created>
|
|
337
|
+
<option name="number" value="00017" />
|
|
338
|
+
<option name="presentableId" value="LOCAL-00017" />
|
|
339
|
+
<option name="project" value="LOCAL" />
|
|
340
|
+
<updated>1640795243288</updated>
|
|
341
|
+
</task>
|
|
342
|
+
<task id="LOCAL-00018" summary="timezone - check if it's running on client side">
|
|
343
|
+
<created>1640825795052</created>
|
|
344
|
+
<option name="number" value="00018" />
|
|
345
|
+
<option name="presentableId" value="LOCAL-00018" />
|
|
346
|
+
<option name="project" value="LOCAL" />
|
|
347
|
+
<updated>1640825795053</updated>
|
|
348
|
+
</task>
|
|
349
|
+
<option name="localTasksCounter" value="19" />
|
|
328
350
|
<servers />
|
|
329
351
|
</component>
|
|
330
352
|
<component name="TypeScriptGeneratedFilesManager">
|
|
@@ -357,6 +379,9 @@
|
|
|
357
379
|
<MESSAGE value="fix speeding report" />
|
|
358
380
|
<MESSAGE value="Trip and activity report with time period" />
|
|
359
381
|
<MESSAGE value="Fix trips distance because imported positions generate trips with 0 kms" />
|
|
360
|
-
<
|
|
382
|
+
<MESSAGE value="Fix reports by driver" />
|
|
383
|
+
<MESSAGE value="location report - check if it's running on client side" />
|
|
384
|
+
<MESSAGE value="timezone - check if it's running on client side" />
|
|
385
|
+
<option name="LAST_COMMIT_MESSAGE" value="timezone - check if it's running on client side" />
|
|
361
386
|
</component>
|
|
362
387
|
</project>
|
package/package.json
CHANGED
package/src/events-report.js
CHANGED
|
@@ -5,6 +5,7 @@ require('jspdf-autotable')
|
|
|
5
5
|
const {getStyle} = require("./reportStyle");
|
|
6
6
|
const {headerFromUser} = require("./util/pdfDocument");
|
|
7
7
|
const {getUserPartner} = require("fleetmap-partners");
|
|
8
|
+
const {convertToLocaleString} = require("./util/utils");
|
|
8
9
|
|
|
9
10
|
const fileName = 'EventReport'
|
|
10
11
|
|
|
@@ -120,6 +121,7 @@ async function exportSpeedingReportToPDF(userData, reportData) {
|
|
|
120
121
|
console.log('Export to PDF')
|
|
121
122
|
|
|
122
123
|
const lang = userData.user.attributes.lang
|
|
124
|
+
const timezone = userData.user.attributes.timezone
|
|
123
125
|
const translations = messages[lang] ? messages[lang] : messages['en-GB']
|
|
124
126
|
|
|
125
127
|
const headers = [
|
|
@@ -149,7 +151,7 @@ async function exportSpeedingReportToPDF(userData, reportData) {
|
|
|
149
151
|
doc.text(name, 20, space+20 )
|
|
150
152
|
doc.setFontSize(11)
|
|
151
153
|
doc.text(group, 200, space+20 )
|
|
152
|
-
doc.text(
|
|
154
|
+
doc.text(convertToLocaleString(d.from, lang, timezone) + ' - ' + convertToLocaleString(d.to, lang, timezone), 20, space+25 )
|
|
153
155
|
|
|
154
156
|
doc.autoTable(['','','','',''], [
|
|
155
157
|
[translations.report.event_ignitionOn,translations.report.event_ignitionOff, translations.report.event_geofenceEnter,
|
|
@@ -270,10 +272,7 @@ function getAlertInfo(drivers, alert) {
|
|
|
270
272
|
|
|
271
273
|
function getAlertDate(user, alert) {
|
|
272
274
|
if(alert.position) {
|
|
273
|
-
return
|
|
274
|
-
timeZone: user.attributes.timezone,
|
|
275
|
-
hour12: false
|
|
276
|
-
})
|
|
275
|
+
return convertToLocaleString(alert.position.fixTime, user.attributes.lang, user.attributes.timezone)
|
|
277
276
|
}
|
|
278
277
|
}
|
|
279
278
|
|
package/src/index.test.js
CHANGED
|
@@ -44,6 +44,17 @@ describe('Reports', function() {
|
|
|
44
44
|
|
|
45
45
|
console.log(reportData)
|
|
46
46
|
|
|
47
|
+
await reports.kmsReportToPDF(userData, reportData[0])
|
|
48
|
+
})
|
|
49
|
+
it('test locationReport by day', async () => {
|
|
50
|
+
const reports = await getReports()
|
|
51
|
+
const userData = await reports.getUserData()
|
|
52
|
+
userData.groupByDay = true
|
|
53
|
+
const reportData = await reports.locations(new Date(2021, 10, 1), new Date(2021, 10, 3),
|
|
54
|
+
userData)
|
|
55
|
+
|
|
56
|
+
console.log(reportData)
|
|
57
|
+
|
|
47
58
|
await reports.kmsReportToPDF(userData, reportData[0])
|
|
48
59
|
})
|
|
49
60
|
})
|
package/src/location-report.js
CHANGED
|
@@ -5,6 +5,7 @@ require('jspdf-autotable')
|
|
|
5
5
|
const {headerFromUser} = require("./util/pdfDocument");
|
|
6
6
|
const {getStyle} = require("./reportStyle")
|
|
7
7
|
const {getUserPartner} = require("fleetmap-partners");
|
|
8
|
+
const {convertToLocaleString} = require("./util/utils");
|
|
8
9
|
|
|
9
10
|
const fileName = 'LocationReport'
|
|
10
11
|
|
|
@@ -104,6 +105,7 @@ async function exportLocationReportToPDF(userData, reportData) {
|
|
|
104
105
|
console.log('Export to PDF')
|
|
105
106
|
|
|
106
107
|
const lang = userData.user.attributes.lang
|
|
108
|
+
const timezone = userData.user.attributes.timezone
|
|
107
109
|
const translations = messages[lang] ? messages[lang] : messages['en-GB']
|
|
108
110
|
|
|
109
111
|
const headers = [
|
|
@@ -136,7 +138,7 @@ async function exportLocationReportToPDF(userData, reportData) {
|
|
|
136
138
|
doc.text(name, 20, space + 20)
|
|
137
139
|
doc.setFontSize(11)
|
|
138
140
|
doc.text(group, 200, space + 20)
|
|
139
|
-
doc.text(
|
|
141
|
+
doc.text(convertToLocaleString(d.from, lang, timezone) + ' - ' + convertToLocaleString(d.to, lang, timezone), 20, space + 25)
|
|
140
142
|
d.positions.map(a => {
|
|
141
143
|
const temp = [
|
|
142
144
|
getLocationDate(a, userData.user),
|
|
@@ -251,10 +253,7 @@ function deviceName(device){
|
|
|
251
253
|
}
|
|
252
254
|
|
|
253
255
|
function getLocationDate(location, user){
|
|
254
|
-
return
|
|
255
|
-
timeZone: user.attributes.timezone,
|
|
256
|
-
hour12: false
|
|
257
|
-
})
|
|
256
|
+
return convertToLocaleString(location.fixTime, user.attributes.lang, user.attributes.timezone)
|
|
258
257
|
}
|
|
259
258
|
|
|
260
259
|
function getDriverName(location, drivers) {
|
package/src/speeding-report.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const messages = require('../lang')
|
|
2
2
|
const jsPDF = require('jspdf')
|
|
3
|
-
const {convertMS} = require("./util/utils")
|
|
3
|
+
const {convertMS, convertToLocaleString} = require("./util/utils")
|
|
4
4
|
const {headerFromUser} = require("./util/pdfDocument")
|
|
5
5
|
require('jspdf-autotable')
|
|
6
6
|
const { parse } = require('wkt')
|
|
@@ -318,6 +318,7 @@ async function exportSpeedingReportToPDF(userData, reportData) {
|
|
|
318
318
|
console.log('Export to PDF')
|
|
319
319
|
|
|
320
320
|
const lang = userData.user.attributes.lang
|
|
321
|
+
const timezone = userData.user.attributes.timezone
|
|
321
322
|
const translations = messages[lang] ? messages[lang] : messages['en-GB']
|
|
322
323
|
|
|
323
324
|
const overspeedData = userData.byDriver ? reportData.drivers : reportData.devices
|
|
@@ -364,7 +365,7 @@ async function exportSpeedingReportToPDF(userData, reportData) {
|
|
|
364
365
|
doc.text(name, 20, space+20 )
|
|
365
366
|
doc.setFontSize(11)
|
|
366
367
|
doc.text(group ? translations.report.group + ': ' + group.name : '', 150, space+20 )
|
|
367
|
-
doc.text(
|
|
368
|
+
doc.text(convertToLocaleString(d.from, lang, timezone) + ' - ' + convertToLocaleString(d.to, lang, timezone), 20, space+25 )
|
|
368
369
|
if (d.alerts[0] && !userData.byDriver) {
|
|
369
370
|
doc.text(translations.report.speedLimit + ": " + (userData.useVehicleSpeedLimit ? Math.round(d.alerts[0].attributes.speedLimit * 1.85200) : userData.customSpeed) + ' Km/h', 20, space + 30)
|
|
370
371
|
}
|
|
@@ -490,10 +491,7 @@ function deviceName(device){
|
|
|
490
491
|
}
|
|
491
492
|
|
|
492
493
|
function getAlertDate(row, user) {
|
|
493
|
-
return
|
|
494
|
-
timeZone: user.attributes.timezone,
|
|
495
|
-
hour12: false
|
|
496
|
-
})
|
|
494
|
+
return convertToLocaleString(row.position.fixTime, user.attributes.lang, user.attributes.timezone)
|
|
497
495
|
}
|
|
498
496
|
|
|
499
497
|
function getMaxSpeed(data) {
|
package/src/trip-report.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const automaticReports = require("./automaticReports")
|
|
2
2
|
const messages = require('../lang')
|
|
3
3
|
const jsPDF = require('jspdf')
|
|
4
|
-
const {convertMS} = require("./util/utils")
|
|
4
|
+
const {convertMS, convertToLocaleString, convertToLocaleDateString, convertToLocaleTimeString} = require("./util/utils")
|
|
5
5
|
require('jspdf-autotable')
|
|
6
6
|
const {coordsDistance} = require("./util/utils")
|
|
7
7
|
const drivers = require("./util/driver")
|
|
@@ -217,6 +217,7 @@ async function exportTripReportToPDF(userData, reportData) {
|
|
|
217
217
|
console.log('Export to PDF')
|
|
218
218
|
|
|
219
219
|
const lang = userData.user.attributes.lang
|
|
220
|
+
const timezone = userData.user.attributes.timezone
|
|
220
221
|
const translations = messages[lang] ? messages[lang] : messages['en-GB']
|
|
221
222
|
const tripsData = userData.byDriver ? reportData.drivers : reportData.devices
|
|
222
223
|
|
|
@@ -260,7 +261,7 @@ async function exportTripReportToPDF(userData, reportData) {
|
|
|
260
261
|
doc.text(name, 20, space+20 )
|
|
261
262
|
doc.setFontSize(11)
|
|
262
263
|
doc.text(group ? translations.report.group + ': ' + group.name : '', 200, space+20 )
|
|
263
|
-
doc.text(
|
|
264
|
+
doc.text(convertToLocaleString(d.from, lang, timezone) + ' - ' + convertToLocaleString(d.to, lang, timezone), 20, space+25 )
|
|
264
265
|
if(!userData.allWeek) {
|
|
265
266
|
doc.text((userData.weekDays.monday ? ' ' + translations.report.monday + ',' : '')
|
|
266
267
|
+ (userData.weekDays.tuesday ? ' ' + translations.report.tuesday + ',' : '')
|
|
@@ -398,23 +399,17 @@ function deviceName(device){
|
|
|
398
399
|
}
|
|
399
400
|
|
|
400
401
|
function getTripDate(user, trip){
|
|
401
|
-
return
|
|
402
|
-
timeZone: user.attributes.timezone,
|
|
403
|
-
hour12: false
|
|
404
|
-
})
|
|
402
|
+
return convertToLocaleDateString(trip.startTime, user.attributes.lang, user.attributes.timezone)
|
|
405
403
|
}
|
|
404
|
+
|
|
406
405
|
function getTripStart(user, trip){
|
|
407
|
-
return
|
|
408
|
-
timeZone: user.attributes.timezone,
|
|
409
|
-
hour12: false
|
|
410
|
-
})
|
|
406
|
+
return convertToLocaleTimeString(trip.startTime, user.attributes.lang, user.attributes.timezone)
|
|
411
407
|
}
|
|
408
|
+
|
|
412
409
|
function getTripEnd(user, trip){
|
|
413
|
-
return
|
|
414
|
-
timeZone: user.attributes.timezone,
|
|
415
|
-
hour12: false
|
|
416
|
-
})
|
|
410
|
+
return convertToLocaleTimeString(trip.endTime, user.attributes.lang, user.attributes.timezone)
|
|
417
411
|
}
|
|
412
|
+
|
|
418
413
|
function getDriverName(drivers, driverUniqueId) {
|
|
419
414
|
if(driverUniqueId) {
|
|
420
415
|
const driver = drivers.find(d => d.uniqueId === driverUniqueId)
|
|
@@ -423,18 +418,22 @@ function getDriverName(drivers, driverUniqueId) {
|
|
|
423
418
|
|
|
424
419
|
return ''
|
|
425
420
|
}
|
|
421
|
+
|
|
426
422
|
function getSumTotalKms(user, data) {
|
|
427
423
|
const values = data.map(item => {
|
|
428
424
|
return item.totalKms ? parseFloat(item.totalKms) : 0
|
|
429
425
|
})
|
|
430
426
|
return Intl.NumberFormat(user.attributes.lang, {maximumFractionDigits: 2}).format(values.reduce((a, b) => a + b, 0))
|
|
431
427
|
}
|
|
428
|
+
|
|
432
429
|
function getSumAvgSpeed(data) {
|
|
433
430
|
const values = data.map(item => {
|
|
434
|
-
return Math.round(item.averageSpeed * 1.85200)
|
|
431
|
+
return Math.round(item.averageSpeed * 1.85200) * item.totalKms
|
|
435
432
|
})
|
|
436
|
-
|
|
433
|
+
const totalKms = data.reduce((a, b) => a + b.totalKms, 0)
|
|
434
|
+
return totalKms > 0 ? Math.round((values.reduce((a, b) => a + b, 0)) / totalKms) : 0
|
|
437
435
|
}
|
|
436
|
+
|
|
438
437
|
function getMaxSpeed(data) {
|
|
439
438
|
const values = data.map(item => {
|
|
440
439
|
return item.maxSpeed
|
package/src/util/driver.js
CHANGED
|
@@ -2,8 +2,7 @@ const traccar = require("./traccar");
|
|
|
2
2
|
|
|
3
3
|
//get devices used by each driver between two dates
|
|
4
4
|
async function devicesByDriver(traccarInstance, from, to, drivers, devices){
|
|
5
|
-
const eventsData = traccar.getEvents(traccarInstance, from, to , devices, ['driverChanged'])
|
|
6
|
-
|
|
5
|
+
const eventsData = await traccar.getEvents(traccarInstance, from, to , devices, ['driverChanged'])
|
|
7
6
|
const deviceIds = []
|
|
8
7
|
for(const d of drivers) {
|
|
9
8
|
const events = eventsData.filter(e => {
|
package/src/util/utils.js
CHANGED
|
@@ -55,8 +55,46 @@ async function getImgFromUrl(hostname) {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
function isClientSide() { typeof window !== "undefined" }
|
|
59
|
+
|
|
60
|
+
function convertToLocaleString(value, lang, timezone){
|
|
61
|
+
if(isClientSide){
|
|
62
|
+
return new Date(value).toLocaleString()
|
|
63
|
+
} else {
|
|
64
|
+
return new Date(value).toLocaleString(lang, {
|
|
65
|
+
timeZone: timezone,
|
|
66
|
+
hour12: false
|
|
67
|
+
})
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function convertToLocaleDateString(value, lang, timezone){
|
|
72
|
+
if(isClientSide){
|
|
73
|
+
return new Date(value).toLocaleDateString()
|
|
74
|
+
} else {
|
|
75
|
+
return new Date(value).toLocaleDateString(lang, {
|
|
76
|
+
timeZone: timezone,
|
|
77
|
+
hour12: false
|
|
78
|
+
})
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function convertToLocaleTimeString(value, lang, timezone){
|
|
83
|
+
if(isClientSide){
|
|
84
|
+
return new Date(value).toLocaleTimeString()
|
|
85
|
+
} else {
|
|
86
|
+
return new Date(value).toLocaleTimeString(lang, {
|
|
87
|
+
timeZone: timezone,
|
|
88
|
+
hour12: false
|
|
89
|
+
})
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
58
93
|
exports.getImgFromUrl = getImgFromUrl
|
|
59
94
|
exports.convertMS = convertMS
|
|
60
95
|
exports.coordsDistance = coordsDistance
|
|
61
96
|
exports.getDates = getDates
|
|
97
|
+
exports.convertToLocaleString = convertToLocaleString
|
|
98
|
+
exports.convertToLocaleDateString = convertToLocaleDateString
|
|
99
|
+
exports.convertToLocaleTimeString = convertToLocaleTimeString
|
|
62
100
|
|
package/src/zone-report.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const moment = require('moment')
|
|
2
2
|
const messages = require('../lang')
|
|
3
3
|
const automaticReports = require("./automaticReports");
|
|
4
|
-
const {convertMS} = require("./util/utils")
|
|
4
|
+
const {convertMS, convertToLocaleString} = require("./util/utils")
|
|
5
5
|
const jsPDF = require('jspdf')
|
|
6
6
|
require('jspdf-autotable')
|
|
7
7
|
const {headerFromUser} = require("./util/pdfDocument");
|
|
@@ -150,6 +150,7 @@ async function exportZoneReportToPDF(userData, reportData) {
|
|
|
150
150
|
console.log('Export to PDF')
|
|
151
151
|
|
|
152
152
|
const lang = userData.user.attributes.lang
|
|
153
|
+
const timezone = userData.user.attributes.timezone
|
|
153
154
|
const translations = messages[lang] ? messages[lang] : messages['en-GB']
|
|
154
155
|
|
|
155
156
|
const headers = [
|
|
@@ -180,7 +181,7 @@ async function exportZoneReportToPDF(userData, reportData) {
|
|
|
180
181
|
doc.text(name, 20, space+20 )
|
|
181
182
|
doc.setFontSize(11)
|
|
182
183
|
doc.text(group ? translations.report.group + ': ' + group.name : '', 200, space+20 )
|
|
183
|
-
doc.text(
|
|
184
|
+
doc.text(convertToLocaleString(d.from, lang, timezone) + ' - ' + convertToLocaleString(d.to, lang, timezone), 20, space+25 )
|
|
184
185
|
d.geofences.map(a => {
|
|
185
186
|
const temp = [
|
|
186
187
|
geofenceEnter(userData.user, a),
|
|
@@ -271,16 +272,10 @@ function deviceName(device){
|
|
|
271
272
|
}
|
|
272
273
|
|
|
273
274
|
function geofenceEnter(user, row){
|
|
274
|
-
return row.inTime ?
|
|
275
|
-
timeZone: user.attributes.timezone,
|
|
276
|
-
hour12: false
|
|
277
|
-
}) : ''
|
|
275
|
+
return row.inTime ? convertToLocaleString(row.inTime.fixTime, user.attributes.lang, user.attributes.timezone) : ''
|
|
278
276
|
}
|
|
279
277
|
function geofenceExit(user, row){
|
|
280
|
-
return row.outTime ?
|
|
281
|
-
timeZone: user.attributes.timezone,
|
|
282
|
-
hour12: false
|
|
283
|
-
}) : ''
|
|
278
|
+
return row.outTime ? convertToLocaleString(row.outTime.fixTime, user.attributes.lang, user.attributes.timezone) : ''
|
|
284
279
|
}
|
|
285
280
|
|
|
286
281
|
exports.createZoneReport = createZoneReport
|