getPaymentOptionIndex(): add start-time parameter
This commit is contained in:
parent
275c3ec869
commit
7a53a68850
@ -130,7 +130,7 @@ private:
|
|||||||
|
|
||||||
bool previousDayHoliday(Configuration const &cfg, QDateTime const &t);
|
bool previousDayHoliday(Configuration const &cfg, QDateTime const &t);
|
||||||
bool isHoliday(Configuration const &cfg, QDateTime const &t);
|
bool isHoliday(Configuration const &cfg, QDateTime const &t);
|
||||||
int getPaymentOptionIndex(Configuration const &cfg);
|
int getPaymentOptionIndex(Configuration const &cfg, QDateTime const& dt = QDateTime::currentDateTime());
|
||||||
|
|
||||||
ATBWeekDay parseWeekDay(Configuration &cfg,
|
ATBWeekDay parseWeekDay(Configuration &cfg,
|
||||||
rapidjson::GenericMemberIterator<false,
|
rapidjson::GenericMemberIterator<false,
|
||||||
|
@ -101,7 +101,7 @@ int CALCULATE_LIBRARY_API get_minimal_parkingprice(Configuration *cfg,
|
|||||||
QDateTime const &start) {
|
QDateTime const &start) {
|
||||||
int minPrice = -1;
|
int minPrice = -1;
|
||||||
|
|
||||||
if ((paymentOptionIndex = getPaymentOptionIndex(*cfg)) == -1) {
|
if ((paymentOptionIndex = getPaymentOptionIndex(*cfg, start)) == -1) {
|
||||||
paymentOptionIndex = cfg->getPaymentOptionIndex(permitType);
|
paymentOptionIndex = cfg->getPaymentOptionIndex(permitType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -669,7 +669,13 @@ CalcState CALCULATE_LIBRARY_API compute_price_for_parking_ticket(
|
|||||||
|
|
||||||
CalcState calcState;
|
CalcState calcState;
|
||||||
|
|
||||||
int paymentOptionIndex = getPaymentOptionIndex(*tariff);
|
QDate const d(1970, 1, 1);
|
||||||
|
QTime const t(0, 0, 0);
|
||||||
|
QDateTime start(d, t, Qt::UTC);
|
||||||
|
start = start.toLocalTime().addSecs(start_parking_time * 60);
|
||||||
|
QDateTime end(start);
|
||||||
|
|
||||||
|
int paymentOptionIndex = getPaymentOptionIndex(*tariff, start);
|
||||||
if (paymentOptionIndex == -1) {
|
if (paymentOptionIndex == -1) {
|
||||||
paymentOptionIndex = tariff->getPaymentOptionIndex(permitType.get());
|
paymentOptionIndex = tariff->getPaymentOptionIndex(permitType.get());
|
||||||
}
|
}
|
||||||
@ -700,11 +706,11 @@ CalcState CALCULATE_LIBRARY_API compute_price_for_parking_ticket(
|
|||||||
return calcState.set(CalcState::State::SUCCESS);
|
return calcState.set(CalcState::State::SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
QDate const d(1970, 1, 1);
|
//QDate const d(1970, 1, 1);
|
||||||
QTime const t(0, 0, 0);
|
//QTime const t(0, 0, 0);
|
||||||
QDateTime start(d, t, Qt::UTC);
|
//QDateTime start(d, t, Qt::UTC);
|
||||||
start = start.toLocalTime().addSecs(start_parking_time * 60);
|
//start = start.toLocalTime().addSecs(start_parking_time * 60);
|
||||||
QDateTime end(start);
|
//QDateTime end(start);
|
||||||
if (start.isValid()) {
|
if (start.isValid()) {
|
||||||
double cost = Calculator::GetInstance().GetCostFromDuration(
|
double cost = Calculator::GetInstance().GetCostFromDuration(
|
||||||
tariff,
|
tariff,
|
||||||
@ -739,7 +745,7 @@ CalcState CALCULATE_LIBRARY_API compute_price_for_parking_ticket(
|
|||||||
|
|
||||||
QDateTime start_parking_time(start_parking_time_);
|
QDateTime start_parking_time(start_parking_time_);
|
||||||
|
|
||||||
int paymentOptionIndex = getPaymentOptionIndex(*tariff);
|
int paymentOptionIndex = getPaymentOptionIndex(*tariff, start_parking_time);
|
||||||
if (paymentOptionIndex == -1) {
|
if (paymentOptionIndex == -1) {
|
||||||
paymentOptionIndex = tariff->getPaymentOptionIndex(permitType);
|
paymentOptionIndex = tariff->getPaymentOptionIndex(permitType);
|
||||||
}
|
}
|
||||||
@ -914,7 +920,8 @@ CalcState CALCULATE_LIBRARY_API compute_duration_for_parking_ticket(
|
|||||||
QString cs = start.toString(Qt::ISODate);
|
QString cs = start.toString(Qt::ISODate);
|
||||||
|
|
||||||
bool prepaid = true;
|
bool prepaid = true;
|
||||||
int paymentOptionIndex = getPaymentOptionIndex(*tariff);
|
int paymentOptionIndex = getPaymentOptionIndex(*tariff, start);
|
||||||
|
qCritical() << " payment option index: " << paymentOptionIndex;
|
||||||
if (paymentOptionIndex == -1) {
|
if (paymentOptionIndex == -1) {
|
||||||
paymentOptionIndex = tariff->getPaymentOptionIndex(permitType);
|
paymentOptionIndex = tariff->getPaymentOptionIndex(permitType);
|
||||||
}
|
}
|
||||||
@ -959,7 +966,8 @@ CalcState CALCULATE_LIBRARY_API compute_duration_for_parking_ticket(
|
|||||||
|
|
||||||
bool prepaid = true;
|
bool prepaid = true;
|
||||||
|
|
||||||
int paymentOptionIndex = getPaymentOptionIndex(*tariff);
|
int paymentOptionIndex = getPaymentOptionIndex(*tariff, start_parking_time);
|
||||||
|
qCritical() << __func__ << ":" << __LINE__ << "payment option index: " << paymentOptionIndex;
|
||||||
if (paymentOptionIndex == -1) {
|
if (paymentOptionIndex == -1) {
|
||||||
paymentOptionIndex = tariff->getPaymentOptionIndex(permitType);
|
paymentOptionIndex = tariff->getPaymentOptionIndex(permitType);
|
||||||
}
|
}
|
||||||
|
@ -134,7 +134,7 @@ std::string Calculator::GetDurationFromCost(Configuration* cfg,
|
|||||||
inputDate.setTime(QTime(inputDate.time().hour(), inputDate.time().minute(), 0));
|
inputDate.setTime(QTime(inputDate.time().hour(), inputDate.time().minute(), 0));
|
||||||
static const PaymentMethod paymentMethodId = Utilities::getPaymentMethodId(cfg);
|
static const PaymentMethod paymentMethodId = Utilities::getPaymentMethodId(cfg);
|
||||||
|
|
||||||
int paymentOptionIndex = getPaymentOptionIndex(*cfg);
|
int paymentOptionIndex = getPaymentOptionIndex(*cfg, inputDate);
|
||||||
if (paymentOptionIndex == -1) {
|
if (paymentOptionIndex == -1) {
|
||||||
paymentOptionIndex = cfg->getPaymentOptionIndex(QDateTime::fromString(startDatetimePassed, Qt::ISODate));
|
paymentOptionIndex = cfg->getPaymentOptionIndex(QDateTime::fromString(startDatetimePassed, Qt::ISODate));
|
||||||
}
|
}
|
||||||
@ -1426,7 +1426,7 @@ double Calculator::GetCostFromDuration(Configuration* cfg,
|
|||||||
Q_UNUSED(payment_option);
|
Q_UNUSED(payment_option);
|
||||||
Q_UNUSED(nextDay);
|
Q_UNUSED(nextDay);
|
||||||
|
|
||||||
int paymentOptionIndex = getPaymentOptionIndex(*cfg);
|
int paymentOptionIndex = getPaymentOptionIndex(*cfg, start_datetime);
|
||||||
if (paymentOptionIndex == -1) {
|
if (paymentOptionIndex == -1) {
|
||||||
paymentOptionIndex = cfg->getPaymentOptionIndex(permitType.get());
|
paymentOptionIndex = cfg->getPaymentOptionIndex(permitType.get());
|
||||||
}
|
}
|
||||||
|
@ -1533,7 +1533,7 @@ int Configuration::getPaymentOptionIndex(PERMIT_TYPE permitType) const {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int getPaymentOptionIndex(Configuration const &cfg) {
|
int getPaymentOptionIndex(Configuration const &cfg, QDateTime const &dt) {
|
||||||
|
|
||||||
int const numOptions = cfg.getAllPaymentOptions().size();
|
int const numOptions = cfg.getAllPaymentOptions().size();
|
||||||
|
|
||||||
@ -1544,7 +1544,7 @@ int getPaymentOptionIndex(Configuration const &cfg) {
|
|||||||
return opt;
|
return opt;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDateTime const dt = QDateTime::currentDateTime();
|
// QDateTime const dt = QDateTime::currentDateTime();
|
||||||
int const dayOfWeek = dt.date().dayOfWeek();
|
int const dayOfWeek = dt.date().dayOfWeek();
|
||||||
|
|
||||||
if (isHoliday(cfg, dt)) {
|
if (isHoliday(cfg, dt)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user