diff --git a/server/app_cfg.js b/server/app_cfg.js index 93abd27..d9779ed 100644 --- a/server/app_cfg.js +++ b/server/app_cfg.js @@ -9,7 +9,7 @@ app_cfg.global = { database: './database.sqlite3', soundpath: '/public/media/', mediapath: '/media/', - time_to_delete_waip: 25, + time_to_delete_waip: 1, default_time_for_standby: 10, circumcircle: 5, defaultuser: 'me', diff --git a/server/waip.js b/server/waip.js index 8d0158e..9e82419 100755 --- a/server/waip.js +++ b/server/waip.js @@ -1,7 +1,7 @@ module.exports = function (io, sql, fs, brk, async, app_cfg) { // Module laden - const json2csv = require('json2csv'); + const { parse } = require('json2csv'); const sendmail = require('sendmail')({ silent: true }); @@ -25,6 +25,7 @@ module.exports = function (io, sql, fs, brk, async, app_cfg) { }; }); } else { + // FIXME löschen klappt nicht // wenn kein Raum (keine Wache) in der DB hinterlegt ist, dann Einsatz direkt wieder loeschen sql.db_log('Fehler-WAIP', 'Fehler: Keine Wache für den Einsatz mit der ID ' + waip_id + ' vorhanden! Einsatz wird gelöscht!'); sql.db_einsatz_loeschen(waip_id); @@ -343,60 +344,56 @@ module.exports = function (io, sql, fs, brk, async, app_cfg) { sql.db_export_get_for_rmld(arry_wachen, function (export_data) { // SQL gibt ist eine Schliefe (db.each), fuer jedes Ergebnis wird eine CSV/Mail erstellt if (export_data) { - var part_rmld = full_rmld.filter(obj => obj.wache_id.startsWith(export_data.export_filter)); + var part_rmld = full_rmld; + // FIXME full_rmld.filter(obj => obj.wache_id.startsWith(export_data.export_filter)); // CSV-Spalten definieren var csv_col = ['id', 'einsatznummer', 'waip_uuid', 'rmld_uuid', 'alias', 'einsatzkraft', 'maschinist', 'fuehrungskraft', 'agt', 'set_time', 'arrival_time', 'wache_id', 'wache_nr', 'wache_name']; - json2csv({ - data: part_rmld, - fields: csv_col - }, function (err, csv) { - // FIXME TEST: CSV und Mail - if (err) { - sql.db_log('EXPORT', 'Fehler beim erstellen der Export-CSV: ' + err); - } else { - // CSV Dateiname und Pfad festlegen - var csv_filename = part_rmld[0].einsatznummer + '_export_rmld_' + export_data.export_name + '.csv'; - csv_filename = process.cwd() + app_cfg.rmld.backup_path + csv_filename; - // CSV in Backup-Ordner speichern, falls aktiviert - if (app_cfg.rmld.backup_to_file) { - - // CSV speichern - fs.writeFile(csv_filename, csv, function (err) { - if (err) { - sql.db_log('EXPORT', 'Fehler beim speichern der Export-CSV: ' + err); - }; - }); - }; - // CSV per Mail versenden, falls aktiviert - if (app_cfg.rmld.backup_to_mail) { - // pruefen ob Mail plausibel ist - var validmail = /\S+@\S+\.\S+/; - if (validmail.test(export_data.export_recipient)) { - var mail_from = 'keineantwort@' + app_cfg.global.url.replace(/(^\w+:|^)\/\//, ''); - var mail_subject = 'Automatischer Export Rückmeldungen Wachalarm-IP - ' + export_data.export_name + ' - Einsatz ' + part_rmld[0].einsatznummer; - var mail_html = 'Hallo,

anbei der automatische Export aller Einsatz-Rückmeldungen für den Einsatz ' + part_rmld[0].einsatznummer + '

Mit freundlichen Grüßen

' + app_cfg.global.company; - sendmail({ - from: mail_from, - to: export_data.export_recipient, - subject: mail_subject, - html: mail_html, - attachments: [{ - filename: csv_filename, - content: csv - }] - }, function (err, reply) { - if (!err) { - sql.db_log('EXPORT', 'Mail an ' + export_data.mail_subject + ' gesendet - ' + reply); - } else { - sql.db_log('EXPORT', 'Fehler beim senden der Export-Mail an ' + export_data.mail_subject + ' - ' + err + '; ' + err.stack); - }; - }) - } else { - sql.db_log('EXPORT', 'Fehler beim versenden der Export-Mail an ' + export_data.mail_subject + ' - keine richtige Mail-Adresse!'); + var opts = { csv_col }; + try { + var csv = parse(part_rmld, opts); + // CSV Dateiname und Pfad festlegen + var csv_filename = part_rmld[0].einsatznummer + '_export_rmld_' + export_data.export_name + '.csv'; + csv_filename = process.cwd() + app_cfg.rmld.backup_path + csv_filename; + // CSV in Backup-Ordner speichern, falls aktiviert + if (app_cfg.rmld.backup_to_file) { + // CSV speichern + fs.writeFile(csv_filename, csv, function (err) { + if (err) { + sql.db_log('EXPORT', 'Fehler beim speichern der Export-CSV: ' + err); }; + }); + }; + // CSV per Mail versenden, falls aktiviert + if (app_cfg.rmld.backup_to_mail) { + // pruefen ob Mail plausibel ist + var validmail = /\S+@\S+\.\S+/; + if (validmail.test(export_data.export_recipient)) { + var mail_from = 'keineantwort@' + app_cfg.global.url.replace(/(^\w+:|^)\/\//, ''); + var mail_subject = 'Automatischer Export Rückmeldungen Wachalarm-IP - ' + export_data.export_name + ' - Einsatz ' + part_rmld[0].einsatznummer; + var mail_html = 'Hallo,

anbei der automatische Export aller Einsatz-Rückmeldungen für den Einsatz ' + part_rmld[0].einsatznummer + '

Mit freundlichen Grüßen

' + app_cfg.global.company; + sendmail({ + from: mail_from, + to: export_data.export_recipient, + subject: mail_subject, + html: mail_html, + attachments: [{ + filename: csv_filename, + content: csv + }] + }, function (err, reply) { + if (!err) { + sql.db_log('EXPORT', 'Mail an ' + export_data.mail_subject + ' gesendet - ' + reply); + } else { + sql.db_log('EXPORT', 'Fehler beim senden der Export-Mail an ' + export_data.mail_subject + ' - ' + err + '; ' + err.stack); + }; + }) + } else { + sql.db_log('EXPORT', 'Fehler beim versenden der Export-Mail an ' + export_data.mail_subject + ' - keine richtige Mail-Adresse!'); }; }; - }); + } catch (err) { + sql.db_log('EXPORT', 'Fehler beim erstellen der Export-CSV: ' + err); + }; }; }); // alte Rueckmeldungen loeschen @@ -404,6 +401,7 @@ module.exports = function (io, sql, fs, brk, async, app_cfg) { }); // alten Einsatz loeschen sql.db_einsatz_loeschen(waip.id); + // FIXME gelöschter einsatz wird noch als Wachalarm angezeigt sql.db_log('WAIP', 'Einsatz-Daten zu Einsatz ' + waip.id + ' gelöscht.'); }; });