Merge branch 'neuhauser-kirchdorf' of git.mimbach49.de:GerhardHoffmann/MOBILISIS-Calculator into neuhauser-kirchdorf
This commit is contained in:
		@@ -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;
 | 
			
		||||
        }
 | 
			
		||||
@@ -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,6 +81,30 @@ struct PermitType {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    operator QString () {
 | 
			
		||||
        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;
 | 
			
		||||
        }
 | 
			
		||||
        return QString("INVALID");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    operator QString () const {
 | 
			
		||||
        switch(m_permitType) {
 | 
			
		||||
        case PERMIT_TYPE::DAY_TICKET:
 | 
			
		||||
@@ -91,6 +121,8 @@ 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;
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -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<QVector<ATBTariffProduct>> products = cfg->getTariffProductForProductId(permitType);
 | 
			
		||||
        if (products) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1736,6 +1736,9 @@ Calculator::GetDailyTicketPrice(Configuration* cfg,
 | 
			
		||||
        if (dailyTickets) {
 | 
			
		||||
            QVector<ATBDailyTicket> const tickets = dailyTickets.value();
 | 
			
		||||
            switch (permitType) {
 | 
			
		||||
                case PERMIT_TYPE::FOOD_STAMP: {
 | 
			
		||||
                    // TODO
 | 
			
		||||
                } break;
 | 
			
		||||
                case PERMIT_TYPE::DAY_TICKET_ADULT: {
 | 
			
		||||
                    std::optional<ATBCustomer> c = cfg->getCustomerForType(ATBCustomer::CustomerType::ADULT);
 | 
			
		||||
                    if (c) {
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user