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,6 +1,6 @@
1
1
  {
2
2
  "name": "fleetmap-reports",
3
- "version": "2.0.102",
3
+ "version": "2.0.103",
4
4
  "description": "",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -1,8 +1,14 @@
1
1
  const automaticReports = require('../automaticReports')
2
2
  const traccarHelper = require('../util/traccar')
3
- const { getDates, getTranslations, convertMS } = require('../util/utils')
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