From 1467a69487cd8e4c119664aee9e9d16726f0ae9e Mon Sep 17 00:00:00 2001 From: Gerhard Hoffmann Date: Wed, 31 Jan 2024 15:12:41 +0100 Subject: [PATCH] Add TariffTimeRange member to CalcState. Use in isParkingAllowed(). --- library/include/mobilisis/calculate_price.h | 29 ++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/library/include/mobilisis/calculate_price.h b/library/include/mobilisis/calculate_price.h index db8fe5d..c1ba701 100644 --- a/library/include/mobilisis/calculate_price.h +++ b/library/include/mobilisis/calculate_price.h @@ -3,6 +3,7 @@ #include #include +#include "tariff_time_range.h" #include #include @@ -63,8 +64,25 @@ struct CALCULATE_LIBRARY_API CalcState { State m_status; QString m_desc; + TariffTimeRange m_allowedTimeRange; - explicit CalcState() : m_status(State::SUCCESS), m_desc("") {} + explicit CalcState() + : m_status(State::SUCCESS) + , m_desc("") { + } + + explicit CalcState(State state, QString desc = "") + : m_status(state) + , m_desc(desc) { + } + + explicit CalcState(State state, QString desc = "", + QTime const &from = QTime(), + QTime const &until = QTime()) + : m_status(state) + , m_desc(desc) + , m_allowedTimeRange(from, until) { + } explicit operator bool() const noexcept { return (m_status == State::SUCCESS); @@ -108,6 +126,7 @@ struct CALCULATE_LIBRARY_API CalcState { break; case State::WRONG_ISO_TIME_FORMAT: s = "WRONG_ISO_TIME_FORMAT"; + break; case State::OUTSIDE_ALLOWED_PARKING_TIME: s = "OUTSIDE_ALLOWED_PARKING_TIME"; } @@ -116,6 +135,14 @@ struct CALCULATE_LIBRARY_API CalcState { CalcState &set(State s) { m_status = s; return *this; } CalcState &setDesc(QString s) { m_desc = s; return *this; } + + void setAllowedTimeRange(QTime const &from, QTime const &until) { + m_allowedTimeRange.setTimeRange(from, until); + } + + TariffTimeRange getAllowedTimeRange() { + return m_allowedTimeRange; + } }; CalcState CALCULATE_LIBRARY_API init_tariff(parking_tariff_t **tariff,