From 5ee978f14a99b6449a0c9ab0fcfbd4b4be946010 Mon Sep 17 00:00:00 2001 From: Gerhard Hoffmann Date: Thu, 15 Feb 2024 16:08:22 +0100 Subject: [PATCH] Added several members to ATBTimeRange to implement progressive tariff for Kirchdorf. --- library/include/mobilisis/time_range_header.h | 49 +++++++++++++++++-- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/library/include/mobilisis/time_range_header.h b/library/include/mobilisis/time_range_header.h index e2ca2e8..4b82784 100644 --- a/library/include/mobilisis/time_range_header.h +++ b/library/include/mobilisis/time_range_header.h @@ -10,15 +10,58 @@ struct ATBTimeRange { int time_range_id; QTime time_range_from; QTime time_range_to; + int time_range_from_in_minutes_from_start; + int time_range_to_in_minutes_from_start; + int time_range_tbase_id; + int time_range_payment_type_id; + explicit ATBTimeRange() + : time_range_id(-1) + , time_range_from(QTime()) + , time_range_to(QTime()) + , time_range_from_in_minutes_from_start(-1) + , time_range_to_in_minutes_from_start(-1) + , time_range_tbase_id(-1) + , time_range_payment_type_id(-1) { + } + + QTime const &getTimeFrom() const { return time_range_from; } + QTime const &getTimeUntil() const { return time_range_to; } + + bool computeQTimeFrom(QTime const &t) { + if (time_range_from_in_minutes_from_start != -1) { + time_range_from = t.addSecs(time_range_from_in_minutes_from_start * 60); + return time_range_from.isValid(); + } + return false; + } + + bool computeQTimeTo(QTime const &t) { + if (time_range_to_in_minutes_from_start != -1) { + time_range_to = t.addSecs(time_range_to_in_minutes_from_start * 60); + return time_range_to.isValid(); + } + return false; + } + + bool computeQTimes(QTime const &t) { + if (!t.isNull() && t.isValid()) { + return computeQTimeFrom(t) && computeQTimeTo(t); + } + return false; + } friend QDebug operator<<(QDebug debug, ATBTimeRange const &timeRange) { QDebugStateSaver saver(debug); debug.nospace() - << " time_range_id: " << timeRange.time_range_id << "\n" - << "time_range_from: " << timeRange.time_range_from.toString(Qt::ISODate) << "\n" - << " time_range_to: " << timeRange.time_range_to.toString(Qt::ISODate) << "\n"; + << " time_range_id: " << timeRange.time_range_id << "\n" + << " time_range_from: " << timeRange.time_range_from.toString(Qt::ISODate) << "\n" + << " time_range_to: " << timeRange.time_range_to.toString(Qt::ISODate) << "\n" + << " time_range_from_in_minutes_from_start: " << timeRange.time_range_from_in_minutes_from_start << "\n" + << " time_range_to_in_minutes_from_start: " << timeRange.time_range_to_in_minutes_from_start << "\n" + << " time_range_tbase_id: " << timeRange.time_range_tbase_id << "\n" + << " time_range_payment_type_id: " << timeRange.time_range_payment_type_id << "\n"; return debug; }