From 3097819c0182fc861a051537a4467b1b1085a7f0 Mon Sep 17 00:00:00 2001 From: Siegfried Siegert Date: Tue, 16 May 2023 11:07:21 +0200 Subject: [PATCH] Update interface for 'compute_duration_for_daily_ticket() --- library/include/mobilisis/calculate_price.h | 4 +-- library/src/calculate_price.cpp | 29 ++++++++++++++++++--- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/library/include/mobilisis/calculate_price.h b/library/include/mobilisis/calculate_price.h index fabd009..0c6a733 100644 --- a/library/include/mobilisis/calculate_price.h +++ b/library/include/mobilisis/calculate_price.h @@ -135,8 +135,8 @@ CalcState CALCULATE_LIBRARY_API compute_duration_for_parking_ticket( CalcState CALCULATE_LIBRARY_API compute_duration_for_daily_ticket( parking_tariff_t *tariff, - QString const &start_parking_time, - uint8_t paymentMethod); + QDateTime const &start_parking_time, + QDateTime &ticketEndTime); //#ifdef __cplusplus //} // extern "C" //#endif diff --git a/library/src/calculate_price.cpp b/library/src/calculate_price.cpp index 5945b9f..42a75cb 100644 --- a/library/src/calculate_price.cpp +++ b/library/src/calculate_price.cpp @@ -249,7 +249,8 @@ CalcState CALCULATE_LIBRARY_API compute_duration_for_parking_ticket( parking_tariff_t *tariff, QDateTime const &start_parking_time, double price, - QDateTime &ticketEndTime) { + QDateTime &ticketEndTime) +{ CalcState calcState; if (start_parking_time.isValid()) { QString cs = start_parking_time.toString(Qt::ISODate); @@ -275,11 +276,31 @@ CalcState CALCULATE_LIBRARY_API compute_duration_for_parking_ticket( return calcState.set(CalcState::State::SUCCESS); } -CalcState CALCULATE_LIBRARY_API compute_duration_for_daily_ticket(parking_tariff_t *tariff, QString const &start_parking_time,uint8_t paymentMethod) +CalcState CALCULATE_LIBRARY_API compute_duration_for_daily_ticket(parking_tariff_t *tariff, QDateTime const &start_parking_time, QDateTime &ticketEndTime) { CalcState calcState; - QString result = calculator.GetDailyTicketDuration(tariff, start_parking_time, PaymentOption::Option1,false); - qDebug() << "DailyTicket() => " + result; + if (start_parking_time.isValid()) { + QString cs = start_parking_time.toString(Qt::ISODate); + + QString endTime = calculator.GetDailyTicketDuration(tariff, + cs.toLocal8Bit().constData(), + PaymentOption::Option1, + false); // carry over + ticketEndTime = QDateTime::fromString(endTime,Qt::ISODate); + + // DEBUG + qCritical() << "compute_duration_for_daily_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); + } return calcState.set(CalcState::State::SUCCESS); }