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/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, 9), new Date(2021, 10),
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 devicesToSlice = devicesToProcess.slice()
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.driver, value: 'name'},
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
- if (userData.groupByDay) {
268
- data = data.concat([{}])
269
- data = data.concat(d.days.map(a => {
270
- return {
271
- name: userData.byDriver ? d.driver.name : d.device.name,
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
- distance: Number((d.summary.distance / 1000).toFixed(0))
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 {
@@ -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
@@ -1,7 +0,0 @@
1
- <component name="ProjectCodeStyleConfiguration">
2
- <code_scheme name="Project" version="173">
3
- <ScalaCodeStyleSettings>
4
- <option name="MULTILINE_STRING_CLOSING_QUOTES_ON_NEW_LINE" value="true" />
5
- </ScalaCodeStyleSettings>
6
- </code_scheme>
7
- </component>
@@ -1,5 +0,0 @@
1
- <component name="ProjectCodeStyleConfiguration">
2
- <state>
3
- <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
4
- </state>
5
- </component>
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="JavaScriptLibraryMappings">
4
- <file url="file://$PROJECT_DIR$" libraries="{Node.js Core}" />
5
- </component>
6
- </project>