new features
This commit is contained in:
@@ -162,7 +162,7 @@ async function getOrderById(id: number) {
|
||||
]);
|
||||
|
||||
return {
|
||||
...orderResult.rows[0],
|
||||
bestellung: orderResult.rows[0],
|
||||
positionen: positionen.rows,
|
||||
dateien: dateien.rows,
|
||||
erinnerungen: erinnerungen.rows,
|
||||
|
||||
@@ -26,6 +26,7 @@ function rowToListItem(row: any): FahrzeugBuchungListItem {
|
||||
buchungs_art: row.buchungs_art,
|
||||
beginn: new Date(row.beginn),
|
||||
ende: new Date(row.ende),
|
||||
ganztaegig: row.ganztaegig ?? false,
|
||||
abgesagt: row.abgesagt,
|
||||
gebucht_von: row.gebucht_von,
|
||||
gebucht_von_name: row.gebucht_von_name ?? null,
|
||||
@@ -41,6 +42,7 @@ function rowToBuchung(row: any): FahrzeugBuchung {
|
||||
beginn: new Date(row.beginn),
|
||||
ende: new Date(row.ende),
|
||||
buchungs_art: row.buchungs_art,
|
||||
ganztaegig: row.ganztaegig ?? false,
|
||||
gebucht_von: row.gebucht_von,
|
||||
kontakt_person: row.kontakt_person ?? null,
|
||||
kontakt_telefon: row.kontakt_telefon ?? null,
|
||||
@@ -78,7 +80,7 @@ class BookingService {
|
||||
const query = `
|
||||
SELECT
|
||||
b.id, b.fahrzeug_id, b.titel, b.buchungs_art::text AS buchungs_art,
|
||||
b.beginn, b.ende, b.abgesagt, b.gebucht_von,
|
||||
b.beginn, b.ende, b.abgesagt, b.gebucht_von, b.ganztaegig,
|
||||
f.bezeichnung AS fahrzeug_name, f.amtliches_kennzeichen AS fahrzeug_kennzeichen,
|
||||
u.name AS gebucht_von_name
|
||||
FROM fahrzeug_buchungen b
|
||||
@@ -103,7 +105,7 @@ class BookingService {
|
||||
const query = `
|
||||
SELECT
|
||||
b.id, b.fahrzeug_id, b.titel, b.buchungs_art::text AS buchungs_art,
|
||||
b.beginn, b.ende, b.abgesagt, b.gebucht_von,
|
||||
b.beginn, b.ende, b.abgesagt, b.gebucht_von, b.ganztaegig,
|
||||
f.bezeichnung AS fahrzeug_name, f.amtliches_kennzeichen AS fahrzeug_kennzeichen,
|
||||
u.name AS gebucht_von_name
|
||||
FROM fahrzeug_buchungen b
|
||||
@@ -125,7 +127,7 @@ class BookingService {
|
||||
SELECT
|
||||
b.id, b.fahrzeug_id, b.titel, b.beschreibung,
|
||||
b.buchungs_art::text AS buchungs_art,
|
||||
b.beginn, b.ende,
|
||||
b.beginn, b.ende, b.ganztaegig,
|
||||
b.gebucht_von, b.kontakt_person, b.kontakt_telefon,
|
||||
b.abgesagt, b.abgesagt_grund,
|
||||
b.erstellt_am, b.aktualisiert_am,
|
||||
@@ -300,6 +302,7 @@ class BookingService {
|
||||
if (data.buchungsArt !== undefined) addField('buchungs_art', data.buchungsArt, 'fahrzeug_buchung_art');
|
||||
if (data.kontaktPerson !== undefined) addField('kontakt_person', data.kontaktPerson);
|
||||
if (data.kontaktTelefon !== undefined) addField('kontakt_telefon', data.kontaktTelefon);
|
||||
if (data.ganztaegig !== undefined) addField('ganztaegig', data.ganztaegig);
|
||||
|
||||
if (setClauses.length === 0) {
|
||||
throw new Error('No fields to update');
|
||||
|
||||
@@ -393,7 +393,9 @@ class EventsService {
|
||||
* Capped at 100 instances and 2 years from the start date. */
|
||||
private generateRecurrenceDates(startDate: Date, _endDate: Date, config: WiederholungConfig): Date[] {
|
||||
const dates: Date[] = [];
|
||||
const limitDate = config.bis ? new Date(config.bis + 'T23:59:59Z') : new Date(0);
|
||||
const defaultLimit = new Date(startDate);
|
||||
defaultLimit.setUTCFullYear(defaultLimit.getUTCFullYear() + 2);
|
||||
const limitDate = config.bis ? new Date(config.bis + 'T23:59:59Z') : defaultLimit;
|
||||
const interval = config.intervall ?? 1;
|
||||
// Cap at 100 instances max, and 2 years
|
||||
const maxDate = new Date(startDate);
|
||||
|
||||
@@ -396,8 +396,9 @@ class VehicleService {
|
||||
|
||||
// Auto-update next service date on the vehicle when result is 'bestanden'
|
||||
if (data.ergebnis === 'bestanden' && data.naechste_faelligkeit) {
|
||||
const column = data.art === '§57a Prüfung' ? 'paragraph57a_faellig_am' : 'naechste_wartung_am';
|
||||
await pool.query(
|
||||
`UPDATE fahrzeuge SET naechste_wartung_am = $1 WHERE id = $2`,
|
||||
`UPDATE fahrzeuge SET ${column} = $1 WHERE id = $2`,
|
||||
[data.naechste_faelligkeit, fahrzeugId]
|
||||
);
|
||||
}
|
||||
@@ -443,8 +444,9 @@ class VehicleService {
|
||||
|
||||
// Auto-update next service date on the vehicle when result is 'bestanden'
|
||||
if (data.ergebnis === 'bestanden' && data.naechste_faelligkeit) {
|
||||
const column = data.art === '§57a Prüfung' ? 'paragraph57a_faellig_am' : 'naechste_wartung_am';
|
||||
await pool.query(
|
||||
`UPDATE fahrzeuge SET naechste_wartung_am = $1 WHERE id = $2`,
|
||||
`UPDATE fahrzeuge SET ${column} = $1 WHERE id = $2`,
|
||||
[data.naechste_faelligkeit, fahrzeugId]
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user