fleetmap-reports 2.0.102 → 2.0.103
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/lang/frFR.json
CHANGED
|
@@ -192,6 +192,7 @@
|
|
|
192
192
|
"titleIdleReport": "Rapports d'inactivité",
|
|
193
193
|
"titleMachinesReport": "Rapport machine",
|
|
194
194
|
"titleStopReport": "Arrêter le rapport",
|
|
195
|
+
"titleDelayedStartReport": "Rapport de Departs Tardifs",
|
|
195
196
|
"from": "Dans",
|
|
196
197
|
"to": "Le",
|
|
197
198
|
"headerStartAddress": "lieu de départ",
|
|
@@ -263,6 +264,11 @@
|
|
|
263
264
|
"saturday": "Samedi",
|
|
264
265
|
"sunday": "Dimanche",
|
|
265
266
|
"weekDay": "Jour de la semaine",
|
|
267
|
+
"day": "Jour",
|
|
268
|
+
"startDate": "Date de trajet",
|
|
269
|
+
"startTime": "Début de la conduite",
|
|
270
|
+
"delayDescription": "Catégorie de gravitá",
|
|
271
|
+
"endTime": "Heure d'arrêt",
|
|
266
272
|
"unsubscribeTripReport": "Si vous ne souhaitez pas recevoir ces e-mails, veuillez accéder à %url% et supprimer le \"Rapport de voyage\" paramètres dans la section \"Rapports\".",
|
|
267
273
|
"unsubscribeLocationsReport": "Si vous ne souhaitez pas recevoir ces e-mails, veuillez accéder à %url% et supprimer le \"Rapport de position\" paramètres dans la section \"Rapports\".",
|
|
268
274
|
"unsubscribeSpeedingReport": "Si vous ne souhaitez pas recevoir ces e-mails, rendez-vous sur %url% et supprimez le \"rapport d'excès de vitesse\" paramètres dans la section \"Rapports\".",
|
package/package.json
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
const automaticReports = require('../automaticReports')
|
|
2
2
|
const traccarHelper = require('../util/traccar')
|
|
3
|
-
const {
|
|
3
|
+
const {
|
|
4
|
+
getDates, getTranslations, convertMS, isClientSide, convertToLocaleString, convertToLocaleDateString,
|
|
5
|
+
convertToLocaleTimeString
|
|
6
|
+
} = require('../util/utils')
|
|
4
7
|
const { getUserPartner } = require('fleetmap-partners')
|
|
5
8
|
const { getDataByDay } = require('../util/trips')
|
|
9
|
+
const jsPDF = require('jspdf')
|
|
10
|
+
const { headerFromUser, addTable } = require('../util/pdfDocument')
|
|
11
|
+
const { getStyle } = require('../reportStyle')
|
|
6
12
|
|
|
7
13
|
async function createDelayedStartReport (from, to, userData, traccar) {
|
|
8
14
|
const reportData = {
|
|
@@ -95,11 +101,107 @@ async function processDeviceData (from, to, allInOne, d, userData, traccar) {
|
|
|
95
101
|
}
|
|
96
102
|
|
|
97
103
|
async function exportDelayedStartReportToPDF (userData, reportData) {
|
|
104
|
+
console.log('exportDelayedStartReportToPDF')
|
|
98
105
|
|
|
106
|
+
const timezone = userData.user.attributes.timezone
|
|
107
|
+
const translations = getTranslations(userData)
|
|
108
|
+
const lang = userData.user.attributes.lang || (isClientSide() && navigator.language)
|
|
109
|
+
const reportDataRows = userData.byDriver ? reportData.drivers : reportData.devices
|
|
110
|
+
|
|
111
|
+
const headers = [
|
|
112
|
+
translations.report.group,
|
|
113
|
+
translations.report.name,
|
|
114
|
+
translations.report.driver,
|
|
115
|
+
translations.report.day,
|
|
116
|
+
translations.report.startDate,
|
|
117
|
+
translations.report.startTime,
|
|
118
|
+
translations.report.delayDescription,
|
|
119
|
+
translations.report.endTime
|
|
120
|
+
]
|
|
121
|
+
|
|
122
|
+
if (reportDataRows) {
|
|
123
|
+
// eslint-disable-next-line new-cap
|
|
124
|
+
const doc = new jsPDF.jsPDF('l')
|
|
125
|
+
await headerFromUser(doc, translations.report.titleDelayedStartReport, userData.user)
|
|
126
|
+
|
|
127
|
+
doc.setFontSize(13)
|
|
128
|
+
doc.text(convertToLocaleString(reportData.from, lang, timezone, userData.user) + ' - ' + convertToLocaleString(reportData.to, lang, timezone, userData.user), 20, 25)
|
|
129
|
+
|
|
130
|
+
const data = []
|
|
131
|
+
reportDataRows.forEach(function (row) {
|
|
132
|
+
const group = userData.groups.find(g => row.groupId === g.id)
|
|
133
|
+
|
|
134
|
+
const temp = [
|
|
135
|
+
group,
|
|
136
|
+
row.device,
|
|
137
|
+
row.driver,
|
|
138
|
+
row.weekDay,
|
|
139
|
+
convertToLocaleDateString(row.startTime, lang, timezone, userData.user),
|
|
140
|
+
convertToLocaleTimeString(row.startTime, lang, timezone, userData.user),
|
|
141
|
+
row.delayDescription,
|
|
142
|
+
convertToLocaleTimeString(row.endTime, lang, timezone, userData.user)
|
|
143
|
+
]
|
|
144
|
+
data.push(temp)
|
|
145
|
+
})
|
|
146
|
+
const footValues = []
|
|
147
|
+
|
|
148
|
+
const style = getStyle(getUserPartner(userData.user))
|
|
149
|
+
|
|
150
|
+
addTable(doc, headers, data, footValues, style, 20)
|
|
151
|
+
return doc
|
|
152
|
+
}
|
|
99
153
|
}
|
|
100
154
|
|
|
155
|
+
const fileName = 'DelayedStartReport'
|
|
101
156
|
async function exportDelayedStartReportToExcel (userData, reportData) {
|
|
157
|
+
console.log('Export to Excel')
|
|
158
|
+
|
|
159
|
+
const translations = getTranslations(userData)
|
|
160
|
+
const timezone = userData.user.attributes.timezone
|
|
161
|
+
const lang = userData.user.attributes.lang
|
|
162
|
+
|
|
163
|
+
const reportDataRows = reportData.devices
|
|
102
164
|
|
|
165
|
+
const settings = {
|
|
166
|
+
sheetName: translations.report.titleTripReport, // The name of the sheet
|
|
167
|
+
fileName // The name of the spreadsheet
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
const headers = [
|
|
171
|
+
{ label: translations.report.group, value: 'group' },
|
|
172
|
+
{ label: translations.report.name, value: 'name' },
|
|
173
|
+
{ label: translations.report.driver, value: 'driver' },
|
|
174
|
+
{ label: translations.report.day, value: 'day' },
|
|
175
|
+
{ label: translations.report.startDate, value: 'startDate' },
|
|
176
|
+
{ label: translations.report.startTime, value: 'startTime' },
|
|
177
|
+
{ label: translations.report.delayDescription, value: 'delayDescription' },
|
|
178
|
+
{ label: translations.report.endTime, value: 'endTime' }
|
|
179
|
+
]
|
|
180
|
+
|
|
181
|
+
let data = []
|
|
182
|
+
if (reportDataRows) {
|
|
183
|
+
reportDataRows.forEach(row => {
|
|
184
|
+
const group = userData.groups.find(g => row.groupId === g.id)
|
|
185
|
+
|
|
186
|
+
data = data.concat([{}])
|
|
187
|
+
data = data.concat({
|
|
188
|
+
group,
|
|
189
|
+
name: row.device,
|
|
190
|
+
driver: row.driver,
|
|
191
|
+
day: row.weekDay,
|
|
192
|
+
startDate: convertToLocaleDateString(row.startTime, lang, timezone, userData.user),
|
|
193
|
+
startTime: convertToLocaleTimeString(row.startTime, lang, timezone, userData.user),
|
|
194
|
+
delayDescription: row.delayDescription,
|
|
195
|
+
endTime: convertToLocaleTimeString(row.endTime, lang, timezone, userData.user)
|
|
196
|
+
})
|
|
197
|
+
})
|
|
198
|
+
console.log(data)
|
|
199
|
+
return {
|
|
200
|
+
headers,
|
|
201
|
+
data,
|
|
202
|
+
settings
|
|
203
|
+
}
|
|
204
|
+
}
|
|
103
205
|
}
|
|
104
206
|
|
|
105
207
|
exports.create = createDelayedStartReport
|