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; }