fleetmap-reports 1.0.211 → 1.0.215
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 +2 -0
- package/package.json +1 -1
- package/src/index.js +1 -1
- package/src/index.test.js +2 -2
- package/src/kms-report.js +117 -79
package/.idea/workspace.xml
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
<list default="true" id="eb665c86-c893-4333-bd2a-721dc27980b9" name="Changes" comment="try catch on pdf addImage">
|
|
5
5
|
<change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
|
|
6
6
|
<change beforePath="$PROJECT_DIR$/src/activity-report.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/activity-report.js" afterDir="false" />
|
|
7
|
+
<change beforePath="$PROJECT_DIR$/src/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/index.js" afterDir="false" />
|
|
7
8
|
<change beforePath="$PROJECT_DIR$/src/index.test.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/index.test.js" afterDir="false" />
|
|
8
9
|
<change beforePath="$PROJECT_DIR$/src/kms-report.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/kms-report.js" afterDir="false" />
|
|
9
10
|
<change beforePath="$PROJECT_DIR$/src/util/pdfDocument.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/util/pdfDocument.js" afterDir="false" />
|
|
@@ -143,6 +144,7 @@
|
|
|
143
144
|
<workItem from="1637227826845" duration="1275000" />
|
|
144
145
|
<workItem from="1637441942952" duration="4543000" />
|
|
145
146
|
<workItem from="1637670815688" duration="2973000" />
|
|
147
|
+
<workItem from="1637674107929" duration="11518000" />
|
|
146
148
|
</task>
|
|
147
149
|
<task id="LOCAL-00001" summary="Fix getStyle">
|
|
148
150
|
<created>1636983717385</created>
|
package/package.json
CHANGED
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
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 {convertMS} = require("./util/utils");
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
let traccarInstance
|
|
@@ -111,9 +112,14 @@ async function createKmsReport(from, to, userData, traccar) {
|
|
|
111
112
|
async function exportKmsReportToPDF(userData, reportData) {
|
|
112
113
|
const lang = userData.user.attributes.lang
|
|
113
114
|
const translations = messages[lang] ? messages[lang] : messages['en-GB']
|
|
115
|
+
const kmsData = userData.byDriver ? reportData.drivers : reportData.devices
|
|
114
116
|
|
|
115
117
|
const headers = []
|
|
116
|
-
if(userData.
|
|
118
|
+
if(userData.groupByDay) {
|
|
119
|
+
headers.push(translations.report.date,
|
|
120
|
+
translations.report.distance)
|
|
121
|
+
}
|
|
122
|
+
else if(userData.byDriver) {
|
|
117
123
|
headers.push(translations.report.driver,
|
|
118
124
|
translations.report.group,
|
|
119
125
|
translations.report.distance)
|
|
@@ -123,57 +129,96 @@ async function exportKmsReportToPDF(userData, reportData) {
|
|
|
123
129
|
translations.report.group,
|
|
124
130
|
translations.report.distance)
|
|
125
131
|
}
|
|
126
|
-
if (
|
|
127
|
-
|
|
132
|
+
if (kmsData) {
|
|
133
|
+
let first = true
|
|
134
|
+
const doc = userData.groupByDay ? new jsPDF.jsPDF() : new jsPDF.jsPDF('l')
|
|
128
135
|
await headerFromUser(doc, translations.report.titleSpeedingReport, userData.user)
|
|
129
136
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
const
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
137
|
+
if (userData.groupByDay) {
|
|
138
|
+
for (const d of kmsData) {
|
|
139
|
+
const name = userData.byDriver ? d.driver.name : d.device.name
|
|
140
|
+
const group = userData.byDriver ? userData.groups.find(g => g.drivers.includes(d.id)) : userData.groups.find(g => d.device.groupId === g.id)
|
|
141
|
+
|
|
142
|
+
let space = 0
|
|
143
|
+
if (!first) {
|
|
144
|
+
doc.addPage()
|
|
145
|
+
} else {
|
|
146
|
+
first = false
|
|
147
|
+
space = 8
|
|
148
|
+
}
|
|
149
|
+
doc.setFontSize(13)
|
|
150
|
+
doc.text(name, 20, space + 20)
|
|
151
|
+
doc.setFontSize(11)
|
|
152
|
+
doc.text(group ? translations.report.group + ': ' + group.name : '', 200, space + 20)
|
|
153
|
+
doc.text(new Date(d.from).toLocaleString() + ' - ' + new Date(d.to).toLocaleString(), 20, space + 25)
|
|
154
|
+
|
|
155
|
+
const data = []
|
|
156
|
+
d.days.forEach(day => {
|
|
157
|
+
const temp = [
|
|
158
|
+
new Date(day).toLocaleDateString(),
|
|
159
|
+
(day.kms/1000).toFixed(0)
|
|
160
|
+
]
|
|
161
|
+
})
|
|
162
|
+
|
|
154
163
|
data.push(temp)
|
|
155
|
-
})
|
|
156
|
-
}
|
|
157
164
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
+
const footValues = []
|
|
166
|
+
footValues.push(
|
|
167
|
+
'',
|
|
168
|
+
(d.days.reduce((a, b) => a + b.kms, 0)/1000).toFixed(0)
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
const style = getStyle(getUserPartner(userData.user))
|
|
172
|
+
|
|
173
|
+
addTable(doc, headers, data, footValues, style, 35)
|
|
174
|
+
}
|
|
165
175
|
} else {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
176
|
+
if (userData.byDriver) {
|
|
177
|
+
reportData.drivers.forEach(d => {
|
|
178
|
+
const group = userData.groups.find(g => g.drivers.includes(d.driver.id))
|
|
179
|
+
|
|
180
|
+
const temp = [
|
|
181
|
+
d.driver.name,
|
|
182
|
+
group ? group.name : '',
|
|
183
|
+
Number((d.summary.distance / 1000).toFixed(0)),
|
|
184
|
+
]
|
|
185
|
+
data.push(temp)
|
|
186
|
+
})
|
|
187
|
+
} else {
|
|
188
|
+
reportData.devices.forEach(d => {
|
|
189
|
+
const group = userData.groups.find(g => d.device.groupId === g.id)
|
|
190
|
+
|
|
191
|
+
const temp = [
|
|
192
|
+
d.summary.deviceName,
|
|
193
|
+
d.device.model,
|
|
194
|
+
group ? group.name : '',
|
|
195
|
+
Number((d.summary.distance / 1000).toFixed(0))
|
|
196
|
+
]
|
|
197
|
+
data.push(temp)
|
|
198
|
+
})
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
const footValues = []
|
|
202
|
+
if(userData.byDriver) {
|
|
203
|
+
footValues.push(
|
|
204
|
+
'Total:' + reportData.drivers.length,
|
|
205
|
+
'',
|
|
206
|
+
(reportData.drivers.reduce((a, b) => a + b.summary.distance, 0)/1000).toFixed(0)
|
|
207
|
+
)
|
|
208
|
+
} else {
|
|
209
|
+
footValues.push(
|
|
210
|
+
'Total:' + reportData.devices.length,
|
|
211
|
+
'',
|
|
212
|
+
'',
|
|
213
|
+
(reportData.devices.reduce((a, b) => a + b.summary.distance, 0)/1000).toFixed(0),
|
|
214
|
+
)
|
|
215
|
+
}
|
|
173
216
|
|
|
174
|
-
|
|
217
|
+
const style = getStyle(getUserPartner(userData.user))
|
|
175
218
|
|
|
176
|
-
|
|
219
|
+
addTable(doc, headers, data, footValues, style, 35)
|
|
220
|
+
}
|
|
221
|
+
return doc
|
|
177
222
|
}
|
|
178
223
|
}
|
|
179
224
|
|
|
@@ -190,55 +235,48 @@ function exportKmsReportToExcel(userData, reportData) {
|
|
|
190
235
|
|
|
191
236
|
const headers = []
|
|
192
237
|
|
|
193
|
-
if(userData.
|
|
238
|
+
if(userData.groupByDay){
|
|
194
239
|
headers.push(
|
|
195
|
-
{label: translations.report.
|
|
240
|
+
{label: translations.report.vehicle, value: 'name'},
|
|
196
241
|
{label: translations.report.group, value: 'group'},
|
|
242
|
+
{label: translations.report.date, value: 'date'},
|
|
197
243
|
{label: translations.report.distance, value: 'distance'})
|
|
198
|
-
} else {
|
|
244
|
+
} else if(userData.byDriver) {
|
|
199
245
|
headers.push(
|
|
200
|
-
{label: translations.report.
|
|
246
|
+
{label: translations.report.driver, value: 'name'},
|
|
201
247
|
{label: translations.report.group, value: 'group'},
|
|
202
248
|
{label: translations.report.distance, value: 'distance'})
|
|
203
249
|
}
|
|
204
250
|
|
|
205
251
|
let data = []
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
252
|
+
const info = userData.byDriver ? reportData.drivers : reportData.devices
|
|
253
|
+
info.forEach(d => {
|
|
254
|
+
const group = userData.byDriver ? userData.groups.find(g => g.drivers.includes(d.driver.id)) :
|
|
255
|
+
userData.groups.find(g => d.device.groupId === g.id)
|
|
256
|
+
|
|
257
|
+
if(userData.groupByDay) {
|
|
258
|
+
data = data.concat([{}])
|
|
259
|
+
data = data.concat(d.days.map(a => {
|
|
260
|
+
return {
|
|
261
|
+
name: userData.byDriver ? d.driver.name : d.device.name,
|
|
262
|
+
group: group ? group.name : '',
|
|
263
|
+
date: a.date,
|
|
264
|
+
distance: Number((a.kms / 1000).toFixed(0))
|
|
265
|
+
}
|
|
266
|
+
}))
|
|
267
|
+
} else {
|
|
211
268
|
data = data.concat([{
|
|
212
|
-
|
|
269
|
+
name: userData.byDriver ? d.driver.name : d.summary.deviceName,
|
|
213
270
|
group: group ? group.name : '',
|
|
214
271
|
distance: Number((d.summary.distance / 1000).toFixed(0))
|
|
215
272
|
}])
|
|
216
|
-
})
|
|
217
|
-
console.log(data)
|
|
218
|
-
return {
|
|
219
|
-
headers,
|
|
220
|
-
data,
|
|
221
|
-
settings
|
|
222
273
|
}
|
|
223
|
-
|
|
224
|
-
} else {
|
|
225
|
-
if (reportData.devices) {
|
|
226
|
-
reportData.devices.forEach(d => {
|
|
227
|
-
const group = userData.groups.find(g => d.device.groupId === g.id)
|
|
274
|
+
})
|
|
228
275
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
}])
|
|
234
|
-
})
|
|
235
|
-
console.log(data)
|
|
236
|
-
return {
|
|
237
|
-
headers,
|
|
238
|
-
data,
|
|
239
|
-
settings
|
|
240
|
-
}
|
|
241
|
-
}
|
|
276
|
+
return {
|
|
277
|
+
headers,
|
|
278
|
+
data,
|
|
279
|
+
settings
|
|
242
280
|
}
|
|
243
281
|
}
|
|
244
282
|
|