From 0856f10ca9bf28fb79f52be983d048573a2c8384 Mon Sep 17 00:00:00 2001 From: Gerhard Hoffmann Date: Fri, 2 Aug 2024 14:34:44 +0200 Subject: [PATCH] GetDurationFromCost(): Fix computation of end-time when pop_accumulate_durations is set in tariff-file. --- library/src/calculator_functions.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/library/src/calculator_functions.cpp b/library/src/calculator_functions.cpp index 9c908de..afe43fa 100644 --- a/library/src/calculator_functions.cpp +++ b/library/src/calculator_functions.cpp @@ -181,8 +181,8 @@ std::string Calculator::GetDurationFromCost(Configuration* cfg, price = pra_price; } - //qCritical() << DBG_HEADER << " PRICE" << price << "COST" << cost; - //qCritical() << DBG_HEADER << " duration id" << durationId; + // qCritical() << DBG_HEADER << " PRICE" << price << "COST" << cost; + // qCritical() << DBG_HEADER << " duration id" << durationId; auto search = cfg->Duration.find(durationId); if (search != cfg->Duration.end()) { @@ -207,11 +207,16 @@ std::string Calculator::GetDurationFromCost(Configuration* cfg, //found = true; //qCritical() << "(" << __func__ << ":" << __LINE__ << ") duration_previous" << duration_previous; //qCritical() << "(" << __func__ << ":" << __LINE__ << ") duration in minutes" << durationInMinutes; - QDateTime d(inputDate.addSecs(duration_previous * 60)); + QDateTime d; + if (pop_accumulate_durations) { + d = inputDate.addSecs(durationInMinutes * 60); + } else { + d = inputDate.addSecs(duration_previous * 60); + } qCritical() << DBG_HEADER << " provided price (cost):" << cost; qCritical() << DBG_HEADER << " computed time for price (minutes):" << duration_previous; - qCritical() << DBG_HEADER << "configured minimal parking time (minutes):" << cfg->getPaymentOptions(paymentOptionIndex).pop_min_time; + qCritical() << DBG_HEADER << " minimal parking time (minutes):" << cfg->getPaymentOptions(paymentOptionIndex).pop_min_time; if (duration_previous < cfg->getPaymentOptions(paymentOptionIndex).pop_min_time) { return CalcState::BELOW_MIN_PARKING_TIME.toStdString(); // minimal parking time is set by GetTimeSteps()