diff --git a/library/include/mobilisis/tariff_permit_type.h b/library/include/mobilisis/tariff_permit_type.h index d87879b..e266afd 100644 --- a/library/include/mobilisis/tariff_permit_type.h +++ b/library/include/mobilisis/tariff_permit_type.h @@ -11,6 +11,7 @@ enum class PERMIT_TYPE : quint8 { DAY_TICKET_ADULT, DAY_TICKET_TEEN, DAY_TICKET_CHILD, + FOOD_STAMP, INVALID }; @@ -41,6 +42,9 @@ struct PermitType { case 6: m_permitType = PERMIT_TYPE::DAY_TICKET_CHILD; break; + case 7: + m_permitType = PERMIT_TYPE::FOOD_STAMP; + break; default: m_permitType = PERMIT_TYPE::INVALID; } @@ -52,7 +56,7 @@ struct PermitType { operator PERMIT_TYPE() const { return m_permitType; } - operator int() const { + operator int () const { switch(m_permitType) { case PERMIT_TYPE::SHORT_TERM_PARKING: return 0; @@ -68,6 +72,8 @@ struct PermitType { return 5; case PERMIT_TYPE::DAY_TICKET_TEEN: return 6; + case PERMIT_TYPE::FOOD_STAMP: + return 7; default: break; } @@ -75,7 +81,7 @@ struct PermitType { } - operator QString() const { + operator QString () { switch(m_permitType) { case PERMIT_TYPE::DAY_TICKET: return QString("DAY_TICKET"); @@ -91,6 +97,32 @@ struct PermitType { return QString("SZEGED_START"); case PERMIT_TYPE::SZEGED_STOP: return QString("SZEGED_STOP"); + case PERMIT_TYPE::FOOD_STAMP: + return QString("FOOD_STAMP"); + default: + break; + } + return QString("INVALID"); + } + + operator QString () const { + switch(m_permitType) { + case PERMIT_TYPE::DAY_TICKET: + return QString("DAY_TICKET"); + case PERMIT_TYPE::DAY_TICKET_ADULT: + return QString("DAY_TICKET_ADULT"); + case PERMIT_TYPE::DAY_TICKET_CHILD: + return QString("DAY_TICKET_CHILD"); + case PERMIT_TYPE::DAY_TICKET_TEEN: + return QString("DAY_TICKET_TEEN"); + case PERMIT_TYPE::SHORT_TERM_PARKING: + return QString("SHORT_TERM_PARKING"); + case PERMIT_TYPE::SZEGED_START: + return QString("SZEGED_START"); + case PERMIT_TYPE::SZEGED_STOP: + return QString("SZEGED_STOP"); + case PERMIT_TYPE::FOOD_STAMP: + return QString("FOOD_STAMP"); default: break; } diff --git a/library/src/calculate_price.cpp b/library/src/calculate_price.cpp index fab44b3..90f67d7 100644 --- a/library/src/calculate_price.cpp +++ b/library/src/calculate_price.cpp @@ -85,6 +85,8 @@ int CALCULATE_LIBRARY_API compute_product_price(Configuration const *cfg, PERMIT // [[fallthrough]]; case PERMIT_TYPE::DAY_TICKET_TEEN: // [[fallthrough]]; + case PERMIT_TYPE::FOOD_STAMP: + // [[fallthrough]]; case PERMIT_TYPE::DAY_TICKET_ADULT: { std::optional> products = cfg->getTariffProductForProductId(permitType); if (products) { diff --git a/library/src/calculator_functions.cpp b/library/src/calculator_functions.cpp index b9bfe59..e7149be 100644 --- a/library/src/calculator_functions.cpp +++ b/library/src/calculator_functions.cpp @@ -1736,6 +1736,9 @@ Calculator::GetDailyTicketPrice(Configuration* cfg, if (dailyTickets) { QVector const tickets = dailyTickets.value(); switch (permitType) { + case PERMIT_TYPE::FOOD_STAMP: { + // TODO + } break; case PERMIT_TYPE::DAY_TICKET_ADULT: { std::optional c = cfg->getCustomerForType(ATBCustomer::CustomerType::ADULT); if (c) { diff --git a/main/main.cpp b/main/main.cpp index 1be507a..23c32c9 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -37,8 +37,8 @@ extern "C" char* strptime(const char* s, #define SZEGED (0) #define SCHOENAU_KOENIGSEE (0) #define NEUHAUSER_KORNEUBURG (0) -#define NEUHAUSER_LINSINGER_MASCHINENBAU (0) -#define NEUHAUSER_NORDISCHES_AUSBILDUNGSZENTRUM (1) +#define NEUHAUSER_LINSINGER_MASCHINENBAU (1) +#define NEUHAUSER_NORDISCHES_AUSBILDUNGSZENTRUM (0) #define NEUHAUSER_BILEXA_GALTUER (0) #define NEUHAUSER_KIRCHDORF (0) @@ -639,38 +639,8 @@ int main() { cout << endl; if (isParsed) { - bool nextDay = false; - bool prePaid = false; - - // zone 1 (lila) - QDateTime s(QDate(2023, 11, 30), QTime()); - QDateTime end; - int marken[] = { 3*60, 5*60, 10*60}; - for (int duration = 0; duration < 3; ++duration) { - for (int offset = 360; offset <= 360; ++offset) { - // for (int offset = 360; offset < 1080; ++offset) { - QDateTime start = s.addSecs(offset * 60); - //qCritical() << "start" << start.toString(Qt::ISODate); - - // note: prepaid == false (!) - // double cost = Calculator::GetInstance().GetCostFromDuration(&cfg, 4, start, end, marken[duration], nextDay, prePaid); - - struct price_t price; - if (compute_price_for_parking_ticket(&cfg, start, marken[duration], end, &price, prePaid)) { - double cost = price.netto; - - qCritical() << "start" << start.toString(Qt::ISODate) - << "end" << end.toString(Qt::ISODate) - << "duration" << marken[duration] - << "cost" << cost; - } - - //std::string d = Calculator::GetInstance().GetDurationFromCost(&cfg, 4, start.toString(Qt::ISODate).toStdString().c_str(), cost); - //qCritical() << "start" << start.toString(Qt::ISODate) - // << "cost" << cost - // << "until" << d.c_str() << start.secsTo(QDateTime::fromString(d.c_str(), Qt::ISODate)) / 60; - } - } + int const price = compute_product_price(&cfg, PERMIT_TYPE::FOOD_STAMP); + qCritical() << "price food stamp" << price; } #endif