fleetmap-reports 1.0.234 → 1.0.238
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/runConfigurations.xml +10 -0
- package/.idea/shelf/Uncommitted_changes_before_Update_at_25_11_2021,_13_06_[Changes]/shelved.patch +302 -0
- package/.idea/shelf/Uncommitted_changes_before_Update_at_25_11_2021,_13_10_[Changes]/shelved.patch +233 -0
- package/.idea/shelf/Uncommitted_changes_before_Update_at_25_11_2021__13_06__Changes_.xml +4 -0
- package/.idea/shelf/Uncommitted_changes_before_Update_at_25_11_2021__13_10__Changes_.xml +4 -0
- package/.idea/workspace.xml +233 -0
- package/lang/enGB.js +1 -0
- package/lang/ptBR.js +1 -0
- package/lang/ptPT.js +1 -0
- package/package.json +1 -1
- package/src/index.js +1 -1
- package/src/index.test.js +3 -1
- package/src/kms-report.js +23 -30
- package/src/util/pdfDocument.js +4 -4
- package/src/util/traccar.js +17 -0
- package/.idea/codeStyles/Project.xml +0 -7
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/jsLibraryMappings.xml +0 -6
package/src/index.js
CHANGED
|
@@ -23,7 +23,7 @@ function Reports(config, axios) {
|
|
|
23
23
|
return require('./speeding-report').createSpeedingReport(from, to, userData, this.traccar, roadSpeedLimits)
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
this.speedingReportToPDF = (userData, reportData) => {
|
|
26
|
+
this.speedingReportToPDF = async (userData, reportData) => {
|
|
27
27
|
return require('./speeding-report').exportSpeedingReportToPDF(userData, reportData)
|
|
28
28
|
}
|
|
29
29
|
|
package/src/index.test.js
CHANGED
|
@@ -14,7 +14,9 @@ describe('speedingReport', function() {
|
|
|
14
14
|
const reports = await getReports()
|
|
15
15
|
const userData = await reports.getUserData()
|
|
16
16
|
userData.groupByDay = true
|
|
17
|
-
await reports.kmsReport(new Date(2021,
|
|
17
|
+
const reportData = await reports.kmsReport(new Date(2021, 10, 1), new Date(2021, 10, 3),
|
|
18
18
|
userData)
|
|
19
|
+
|
|
20
|
+
await reports.kmsReportToPDF(userData, reportData[0])
|
|
19
21
|
})
|
|
20
22
|
})
|
package/src/kms-report.js
CHANGED
|
@@ -6,6 +6,7 @@ const {getStyle} = require("./reportStyle");
|
|
|
6
6
|
const {headerFromUser,addTable} = require("./util/pdfDocument");
|
|
7
7
|
const {getUserPartner} = require("fleetmap-partners");
|
|
8
8
|
const automaticReports = require("./automaticReports");
|
|
9
|
+
const traccar = require("./util/traccar");
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
let traccarInstance
|
|
@@ -23,16 +24,7 @@ async function createKmsReportByDevice(from, to, userData) {
|
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
devicesToProcess.sort((a, b) => (a.name > b.name) ? 1 : -1)
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
const arrayOfArrays = automaticReports.sliceArray(devicesToSlice)
|
|
29
|
-
let data = []
|
|
30
|
-
for (const a of arrayOfArrays) {
|
|
31
|
-
console.log('getting',from,to,a.map(a => a.id))
|
|
32
|
-
const response = await traccarInstance.reports.reportsRouteGet(from, to, a.map(d => d.id))
|
|
33
|
-
console.log('concat', response.data.length)
|
|
34
|
-
data = data.concat(response.data)
|
|
35
|
-
}
|
|
27
|
+
const data = await traccar.getRoute(traccarInstance, from, to, devicesToProcess)
|
|
36
28
|
|
|
37
29
|
console.log('locations:' + data.length)
|
|
38
30
|
|
|
@@ -134,8 +126,8 @@ async function exportKmsReportToPDF(userData, reportData) {
|
|
|
134
126
|
}
|
|
135
127
|
if (kmsData) {
|
|
136
128
|
let first = true
|
|
137
|
-
const doc = userData.groupByDay ? new jsPDF.jsPDF() : new jsPDF.jsPDF('l')
|
|
138
|
-
await headerFromUser(doc, translations.report.titleKmsReport, userData.user)
|
|
129
|
+
const doc = userData.groupByDay ? new jsPDF.jsPDF('p') : new jsPDF.jsPDF('l')
|
|
130
|
+
await headerFromUser(doc, translations.report.titleKmsReport, userData.user, 'p')
|
|
139
131
|
|
|
140
132
|
if (userData.groupByDay) {
|
|
141
133
|
for (const d of kmsData) {
|
|
@@ -242,6 +234,7 @@ function exportKmsReportToExcel(userData, reportData) {
|
|
|
242
234
|
if(userData.groupByDay) {
|
|
243
235
|
headers.push(
|
|
244
236
|
{label: translations.report.vehicle, value: 'name'},
|
|
237
|
+
{label: translations.report.licensePlate, value: 'licenseplate'},
|
|
245
238
|
{label: translations.report.group, value: 'group'},
|
|
246
239
|
{label: translations.report.date, value: 'date'},
|
|
247
240
|
{label: translations.report.distance, value: 'distance'})
|
|
@@ -252,7 +245,7 @@ function exportKmsReportToExcel(userData, reportData) {
|
|
|
252
245
|
{label: translations.report.distance, value: 'distance'})
|
|
253
246
|
} else {
|
|
254
247
|
headers.push(
|
|
255
|
-
{label: translations.report.
|
|
248
|
+
{label: translations.report.vehicle, value: 'name'},
|
|
256
249
|
{label: translations.settings.vehicle_licenseplate, value: 'licenseplate'},
|
|
257
250
|
{label: translations.report.group, value: 'group'},
|
|
258
251
|
{label: translations.report.distance, value: 'distance'})
|
|
@@ -264,25 +257,25 @@ function exportKmsReportToExcel(userData, reportData) {
|
|
|
264
257
|
const group = userData.byDriver ? userData.groups.find(g => g.drivers.includes(d.driver.id)) :
|
|
265
258
|
userData.groups.find(g => d.device.groupId === g.id)
|
|
266
259
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
group: group ? group.name : '',
|
|
273
|
-
licenseplate: d.device.attributes.license_plate,
|
|
274
|
-
date: a.date,
|
|
275
|
-
distance: Number((a.kms / 1000).toFixed(0))
|
|
276
|
-
}
|
|
277
|
-
}))
|
|
278
|
-
} else {
|
|
279
|
-
data = data.concat([{
|
|
280
|
-
name: userData.byDriver ? d.driver.name : d.summary.deviceName,
|
|
260
|
+
if (userData.groupByDay) {
|
|
261
|
+
data = data.concat([{}])
|
|
262
|
+
data = data.concat(d.days.map(a => {
|
|
263
|
+
return {
|
|
264
|
+
name: d.device.name,
|
|
281
265
|
group: group ? group.name : '',
|
|
282
266
|
licenseplate: d.device.attributes.license_plate,
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
267
|
+
date: a.date,
|
|
268
|
+
distance: Number((a.kms / 1000).toFixed(0))
|
|
269
|
+
}
|
|
270
|
+
}))
|
|
271
|
+
} else {
|
|
272
|
+
data = data.concat([{
|
|
273
|
+
name: userData.byDriver ? d.driver.name : d.summary.deviceName,
|
|
274
|
+
group: group ? group.name : '',
|
|
275
|
+
licenseplate: userData.byDriver ? '' : d.device.attributes.license_plate,
|
|
276
|
+
distance: Number((d.summary.distance / 1000).toFixed(0))
|
|
277
|
+
}])
|
|
278
|
+
}
|
|
286
279
|
})
|
|
287
280
|
|
|
288
281
|
return {
|
package/src/util/pdfDocument.js
CHANGED
|
@@ -3,7 +3,7 @@ const {getStyle} = require("../reportStyle");
|
|
|
3
3
|
const {getUserPartner} = require("fleetmap-partners");
|
|
4
4
|
const {getImgFromUrl} = require("./utils")
|
|
5
5
|
|
|
6
|
-
async function header(doc, title, hostname, style) {
|
|
6
|
+
async function header(doc, title, hostname, style, orientation) {
|
|
7
7
|
doc.setFontSize(16)
|
|
8
8
|
doc.setFont('helvetica', 'bold')
|
|
9
9
|
doc.text(title, 15, 15 )
|
|
@@ -12,7 +12,7 @@ async function header(doc, title, hostname, style) {
|
|
|
12
12
|
try{
|
|
13
13
|
const image = await getImgFromUrl(hostname)
|
|
14
14
|
if(image){
|
|
15
|
-
doc.addImage(image, 'PNG', 220 + (style.imgWidth < 50 ? 25 : 0), 5, style.imgWidth, style.imgHeight)
|
|
15
|
+
doc.addImage(image, 'PNG', (orientation === 'l' ? 220 : 135) + (style.imgWidth < 50 ? 25 : 0), 5, style.imgWidth, style.imgHeight)
|
|
16
16
|
}
|
|
17
17
|
} catch (e) {
|
|
18
18
|
}
|
|
@@ -20,9 +20,9 @@ async function header(doc, title, hostname, style) {
|
|
|
20
20
|
doc.setFont('helvetica', 'normal')
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
async function headerFromUser(doc, title, user) {
|
|
23
|
+
async function headerFromUser(doc, title, user, orientation='l') {
|
|
24
24
|
const partner = getUserPartner(user)
|
|
25
|
-
return header(doc, title, partner.host, getStyle(partner))
|
|
25
|
+
return header(doc, title, partner.host, getStyle(partner), orientation)
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
function addTable(doc, headers, data, footValues, style, startY){
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const automaticReports = require("../automaticReports");
|
|
2
|
+
|
|
3
|
+
async function getRoute(traccar, from, to, devices){
|
|
4
|
+
const devicesToSlice = devices.slice()
|
|
5
|
+
|
|
6
|
+
const arrayOfArrays = automaticReports.sliceArray(devicesToSlice)
|
|
7
|
+
let requests = []
|
|
8
|
+
for (const a of arrayOfArrays) {
|
|
9
|
+
const promise = traccar.reports.reportsRouteGet(from, to, a.map(d => d.id))
|
|
10
|
+
requests = requests.concat(promise)
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const result = await Promise.all(requests)
|
|
14
|
+
return result.map(r => r.data).flat()
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
exports.getRoute = getRoute
|