From 57ccbc150a4f33f5206232e1634bae1643c00a30 Mon Sep 17 00:00:00 2001 From: Gerhard Hoffmann Date: Wed, 5 Jun 2024 17:03:33 +0200 Subject: [PATCH] compute_duration_for_parking_ticket(): set calcState according to string returned from tariff calculation. --- library/src/calculate_price.cpp | 76 +++++++++++++++++++++++++++++---- 1 file changed, 68 insertions(+), 8 deletions(-) diff --git a/library/src/calculate_price.cpp b/library/src/calculate_price.cpp index 555511f..347d6ce 100644 --- a/library/src/calculate_price.cpp +++ b/library/src/calculate_price.cpp @@ -630,16 +630,76 @@ CalcState CALCULATE_LIBRARY_API compute_duration_for_parking_ticket( tariff->getPaymentOptions().pop_payment_method_id, cs.toLocal8Bit().constData(), price, false, true).c_str(); - ticketEndTime = QDateTime::fromString(endTime,Qt::ISODate); - // DEBUG - qCritical() << "compute_duration_for_parking_ticket(): "; - qCritical() << " endTime: " << endTime; - qCritical() << " ticketEndTime: " << ticketEndTime; + if (endTime == CalcState::SUCCESS) { + calcState.setDesc(QString("SUCCESS")); + calcState.setStatus(endTime); + } else + if (endTime == CalcState::ERROR_PARSING_ZONE_NR) { + calcState.setStatus(endTime); + return calcState; + } else + if (endTime == CalcState::ERROR_LOADING_TARIFF) { + calcState.setStatus(endTime); + return calcState; + } else + if (endTime == CalcState::ERROR_PARSING_TARIFF) { + calcState.setStatus(endTime); + return calcState; + } else + if (endTime == CalcState::NEGATIVE_PARKING_TIME) { + calcState.setStatus(endTime); + return calcState; + } else + if (endTime == CalcState::INVALID_START_DATE) { + calcState.setStatus(endTime); + return calcState; + } else + if (endTime == CalcState::WRONG_PARAM_VALUES) { + calcState.setStatus(endTime); + return calcState; + } else + if (endTime == CalcState::WRONG_ISO_TIME_FORMAT) { + calcState.setStatus(endTime); + return calcState; + } else + if (endTime == CalcState::ABOVE_MAX_PARKING_TIME) { + calcState.setStatus(endTime); + return calcState; + } else + if (endTime == CalcState::BELOW_MIN_PARKING_TIME) { + calcState.setStatus(endTime); + return calcState; + } else + if (endTime == CalcState::BELOW_MIN_PARKING_PRICE) { + calcState.setStatus(endTime); + return calcState; + } else + if (endTime == CalcState::ABOVE_MAX_PARKING_PRICE) { + calcState.setDesc(CalcState::ABOVE_MAX_PARKING_PRICE); + calcState.setStatus(CalcState::ABOVE_MAX_PARKING_PRICE); + return calcState; + } else + if (endTime == CalcState::OVERPAID) { + calcState.setDesc(CalcState::OVERPAID); + calcState.setStatus(CalcState::OVERPAID); + return calcState; + } else + if (endTime == CalcState::OUTSIDE_ALLOWED_PARKING_TIME) { + calcState.setStatus(endTime); + return calcState; + } else { + ticketEndTime = QDateTime::fromString(endTime,Qt::ISODate); - if (!ticketEndTime.isValid()) { - calcState.setDesc(QString("ticketEndTime=%1").arg(endTime)); - return calcState.set(CalcState::State::WRONG_ISO_TIME_FORMAT); + // DEBUG + //qCritical() << "compute_duration_for_parking_ticket(): "; + //qCritical() << " endTime: " << endTime; + //qCritical() << " ticketEndTime: " << ticketEndTime; + + if (!ticketEndTime.isValid()) { + calcState.setDesc(QString("ticketEndTime=%1").arg(endTime)); + return calcState.set(CalcState::State::WRONG_ISO_TIME_FORMAT); + } } } else { return calcState.set(CalcState::State::INVALID_START_DATE);