Set seconds of serveral date-times to 0.
Compute netto_parking_time (which includes carry-over duration).
This commit is contained in:
		@@ -885,6 +885,9 @@ CalcState CALCULATE_LIBRARY_API compute_price_for_parking_ticket(
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            effectiveStartTime.setTime(QTime(effectiveStartTime.time().hour(),
 | 
			
		||||
                                             effectiveStartTime.time().minute(), 0));
 | 
			
		||||
 | 
			
		||||
            qCritical() << __func__ << ":" << __LINE__ << "effectiveStartTime:" << effectiveStartTime.toString(Qt::ISODate);
 | 
			
		||||
 | 
			
		||||
            int const carryOver = tariff->getPaymentOptions(paymentOptionIndex).pop_carry_over;
 | 
			
		||||
@@ -950,6 +953,8 @@ CalcState CALCULATE_LIBRARY_API compute_price_for_parking_ticket(
 | 
			
		||||
                    //QTime const &tlimit = wd.getTariffCarryOverSettings().parkingTimeLimit();
 | 
			
		||||
                    //end_parking_time.setTime(tlimit);
 | 
			
		||||
 | 
			
		||||
                    // max_price neu berechnen
 | 
			
		||||
 | 
			
		||||
                    calcState.setDesc(QString("line=%1 endTime=%2: park-time-limit violated").arg(__LINE__)
 | 
			
		||||
                                        .arg(end_parking_time.time().toString(Qt::ISODate)));
 | 
			
		||||
                    return calcState.set(CalcState::State::ABOVE_MAX_PARKING_TIME);
 | 
			
		||||
@@ -1086,6 +1091,10 @@ CalcState CALCULATE_LIBRARY_API compute_duration_for_parking_ticket(
 | 
			
		||||
        if (pop_time_step_config == (int)ATBTimeStepConfig::TimeStepConfig::STATIC) {
 | 
			
		||||
            // handle prepaid option
 | 
			
		||||
            QDateTime effectiveStartTime(start_parking_time);
 | 
			
		||||
 | 
			
		||||
            effectiveStartTime.setTime(QTime(effectiveStartTime.time().hour(),
 | 
			
		||||
                                             effectiveStartTime.time().minute(), 0));
 | 
			
		||||
 | 
			
		||||
            int const prepaid_option_id = tariff->getPaymentOptions(paymentOptionIndex).pop_prepaid_option_id;
 | 
			
		||||
            std::optional<ATBPrepaid> prepaidOption = tariff->getPrepaidType(prepaid_option_id);
 | 
			
		||||
            if (prepaidOption.has_value()) {
 | 
			
		||||
@@ -1102,8 +1111,9 @@ CalcState CALCULATE_LIBRARY_API compute_duration_for_parking_ticket(
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        QString cs = start_parking_time.toString(Qt::ISODate);
 | 
			
		||||
        QDateTime start(start_parking_time);
 | 
			
		||||
        start.setTime(QTime(start.time().hour(), start.time().minute(), 0));
 | 
			
		||||
        QString cs = start.toString(Qt::ISODate);
 | 
			
		||||
 | 
			
		||||
        std::pair<std::string, QDateTime> p_endTime
 | 
			
		||||
                = Calculator::GetInstance().GetDurationFromCost(
 | 
			
		||||
@@ -1181,8 +1191,14 @@ CalcState CALCULATE_LIBRARY_API compute_duration_for_parking_ticket(
 | 
			
		||||
        } else {
 | 
			
		||||
            ticketEndTime = QDateTime::fromString(endTime,Qt::ISODate);
 | 
			
		||||
 | 
			
		||||
            ticketEndTime.setTime(QTime(ticketEndTime.time().hour(),
 | 
			
		||||
                                        ticketEndTime.time().minute(), 0));
 | 
			
		||||
 | 
			
		||||
            int netto_parking_time = start_parking_time.secsTo(ticketEndTime) / 60;
 | 
			
		||||
 | 
			
		||||
            qCritical() << __func__ << ":" << __LINE__ << "ticketEndTime:" << ticketEndTime.toString(Qt::ISODate);
 | 
			
		||||
            qCritical() << __func__ << ":" << __LINE__ << "step-config:" << pop_time_step_config;
 | 
			
		||||
            qCritical() << __func__ << ":" << __LINE__ << "netto-parking-time" << netto_parking_time;
 | 
			
		||||
 | 
			
		||||
            if (!ticketEndTime.isValid()) {
 | 
			
		||||
                calcState.setDesc(QString("ticketEndTime=%1").arg(endTime));
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user