Compare commits
No commits in common. "648799629a80346b9502d1031dd0542963a7c44f" and "d86a688836bfdec2e0c7eacc4129651802e12b1b" have entirely different histories.
648799629a
...
d86a688836
@ -923,15 +923,12 @@ CalcState CALCULATE_LIBRARY_API compute_duration_for_parking_ticket(
|
||||
bool const nextDay = false;
|
||||
|
||||
// DEBUG
|
||||
// if (DBG_LEVEL >= DBG_DEBUG) {
|
||||
qCritical() << "\ncompute_duration_for_parking_ticket(2):";
|
||||
qCritical() << " start time:" << start_parking_time.toString(Qt::ISODate);
|
||||
qCritical() << " payment option index:" << paymentOptionIndex;
|
||||
qCritical() << " prepaid:" << prepaid;
|
||||
qCritical() << " price:" << price;
|
||||
qCritical() << " permit type:" << permitType.toString() << endl;
|
||||
|
||||
// }
|
||||
if (DBG_LEVEL >= DBG_DEBUG) {
|
||||
qCritical() << "compute_duration_for_parking_ticket(2): ";
|
||||
qCritical() << " payment option index: " << paymentOptionIndex;
|
||||
qCritical() << " prepaid: " << prepaid;
|
||||
qCritical() << " price: " << price;
|
||||
}
|
||||
|
||||
if (start_parking_time.isValid()) {
|
||||
QString cs = start_parking_time.toString(Qt::ISODate);
|
||||
@ -1012,10 +1009,9 @@ CalcState CALCULATE_LIBRARY_API compute_duration_for_parking_ticket(
|
||||
}
|
||||
|
||||
// DEBUG
|
||||
qCritical() << "\ncompute_duration_for_parking_ticket():";
|
||||
qCritical() << " start time:" << start_parking_time.toString(Qt::ISODate);
|
||||
qCritical() << " endTime:" << endTime;
|
||||
qCritical() << " ticketEndTime:" << ticketEndTime.toString(Qt::ISODate) << endl;
|
||||
qCritical() << "compute_duration_for_parking_ticket(): ";
|
||||
qCritical() << " endTime: " << endTime;
|
||||
qCritical() << " ticketEndTime: " << ticketEndTime;
|
||||
}
|
||||
} else {
|
||||
return calcState.set(CalcState::State::INVALID_START_DATE);
|
||||
|
@ -178,9 +178,6 @@ std::string Calculator::GetDurationFromCost(Configuration* cfg,
|
||||
|
||||
for (auto[itr, rangeEnd] = cfg->PaymentRate.equal_range(pop_id); itr != rangeEnd; ++itr) {
|
||||
int const pra_price = itr->second.pra_price;
|
||||
|
||||
// qCritical() << DBG_HEADER << "pra_price" << pra_price;
|
||||
|
||||
int const durationId = itr->second.pra_payment_unit_id;
|
||||
if (pop_accumulate_prices) {
|
||||
price += pra_price;
|
||||
@ -188,8 +185,8 @@ std::string Calculator::GetDurationFromCost(Configuration* cfg,
|
||||
price = pra_price;
|
||||
}
|
||||
|
||||
// qCritical() << DBG_HEADER << " PRICE" << price << "COST" << cost;
|
||||
// qCritical() << DBG_HEADER << " duration id" << durationId;
|
||||
//qCritical() << DBG_HEADER << " PRICE" << price << "COST" << cost;
|
||||
//qCritical() << DBG_HEADER << " duration id" << durationId;
|
||||
|
||||
auto search = cfg->Duration.find(durationId);
|
||||
if (search != cfg->Duration.end()) {
|
||||
@ -2857,7 +2854,7 @@ QList<int> &Calculator::GetTimeSteps(Configuration *cfg, int paymentOptionIndex,
|
||||
++it) {
|
||||
it->second.pun_duration = it->second.pun_duration_saved;
|
||||
|
||||
// if (++cnt > 2) continue;
|
||||
// if (++cnt > 4) continue;
|
||||
|
||||
if (DBG_LEVEL >= DBG_DEBUG) {
|
||||
qCritical() << "(" << __func__ << ":" << __LINE__ << ") pun_id" << it->second.pun_id;
|
||||
@ -2867,15 +2864,11 @@ QList<int> &Calculator::GetTimeSteps(Configuration *cfg, int paymentOptionIndex,
|
||||
if (it->second.pun_netto) {
|
||||
if (it->second.pun_round_to_next_24h_boundary == false) {
|
||||
//int weekDay = start.date().dayOfWeek();
|
||||
casePrepay = false;
|
||||
if (m_timeSteps[paymentOptionIndex].isEmpty()) {
|
||||
// handle possible prepay-condition, which applies only
|
||||
// for the very first step
|
||||
|
||||
if (DBG_LEVEL >= DBG_DEBUG) {
|
||||
qCritical() << "(" << __func__ << ":" << __LINE__ << ") prepay start" << prepayStart.toString(Qt::ISODate);
|
||||
qCritical() << "(" << __func__ << ":" << __LINE__ << ") prepay end" << prepayEnd.toString(Qt::ISODate);
|
||||
}
|
||||
|
||||
if (prepayStart <= start && start <= prepayEnd) {
|
||||
it->second.pun_duration = prepayDurationInMinutes;
|
||||
it->second.pun_duration += it->second.pun_duration_saved ;
|
||||
@ -2891,15 +2884,22 @@ QList<int> &Calculator::GetTimeSteps(Configuration *cfg, int paymentOptionIndex,
|
||||
if (!casePrepay) {
|
||||
// handle possible carryover-condition
|
||||
|
||||
int const durationInSecs = it->second.pun_duration_saved * 60;
|
||||
it->second.pun_duration = it->second.pun_duration_saved;
|
||||
int durationInSecs = it->second.pun_duration_saved * 60;
|
||||
|
||||
if (current >= carryOverStart && current < carryOverEnd) {
|
||||
if (DBG_LEVEL >= DBG_DEBUG) {
|
||||
qCritical() << "(" << __func__ << ":" << __LINE__ << ")" << durationInSecs;
|
||||
qCritical() << "(" << __func__ << ":" << __LINE__ << ") start" << start.toString(Qt::ISODate);
|
||||
qCritical() << "(" << __func__ << ":" << __LINE__ << ") current" << current.toString(Qt::ISODate);
|
||||
qCritical() << "(" << __func__ << ":" << __LINE__ << ") current next" << current.addSecs(durationInSecs).toString(Qt::ISODate);
|
||||
}
|
||||
|
||||
it->second.pun_duration = it->second.pun_duration_saved;
|
||||
if (current >= carryOverStart) {
|
||||
it->second.pun_duration += current.secsTo(carryOverEnd) / 60;
|
||||
} else {
|
||||
// start < carryOverStart
|
||||
QDateTime const &newCurrent = current.addSecs(durationInSecs);
|
||||
if (newCurrent > carryOverStart && newCurrent <= carryOverEnd) {
|
||||
if (newCurrent > carryOverStart) {
|
||||
// cross carry over section
|
||||
it->second.pun_next_step_correction = carryOverStart.secsTo(carryOverEnd) / 60;
|
||||
it->second.pun_duration += it->second.pun_next_step_correction;
|
||||
@ -2994,7 +2994,6 @@ QList<int> &Calculator::GetTimeSteps(Configuration *cfg, int paymentOptionIndex,
|
||||
|
||||
} else { // if (it->second.pun_netto) {
|
||||
qCritical() << "(" << __func__ << ":" << __LINE__ << ") TODO";
|
||||
qCritical() << "(" << __func__ << ":" << __LINE__ << ")\n" << it->second;
|
||||
}
|
||||
} else { // mutable == false
|
||||
if (it->second.pun_brutto) { // no handling for prepay and carry-over
|
||||
@ -3011,7 +3010,6 @@ QList<int> &Calculator::GetTimeSteps(Configuration *cfg, int paymentOptionIndex,
|
||||
|
||||
} else {
|
||||
qCritical() << "(" << __func__ << ":" << __LINE__ << ") TODO";
|
||||
qCritical() << "(" << __func__ << ":" << __LINE__ << ")\n" << it->second;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3066,7 +3064,7 @@ uint32_t Calculator::GetPriceForTimeStep(Configuration *cfg, int timeStep, int p
|
||||
uint32_t price = 0;
|
||||
int pun_duration = 0;
|
||||
|
||||
//qCritical() << "(" << __func__ << ":" << __LINE__ << ") paymentOptionIndex" << paymentOptionIndex;
|
||||
qCritical() << "(" << __func__ << ":" << __LINE__ << ") paymentOptionIndex" << paymentOptionIndex;
|
||||
//qCritical() << "(" << __func__ << ":" << __LINE__ << ") timeStep" << timeStep;
|
||||
//qCritical() << "(" << __func__ << ":" << __LINE__ << ") pop_id" << pop_id;
|
||||
|
||||
|
@ -741,14 +741,9 @@ int main() {
|
||||
input.open("/opt/ptu5/opt/customer_502/etc/psa_tariff/tariff02.json");
|
||||
}
|
||||
if (zone == 3) {
|
||||
//input.open("/opt/ptu5/opt/customer_502/etc/psa_tariff/tariff03.json");
|
||||
input.open("/opt/ptu5/opt/customer_502/etc/psa_tariff/tariff03.json");
|
||||
//input.open("/home/linux/customer_502/etc/psa_tariff/tariff01.json");
|
||||
|
||||
// schnals
|
||||
// input.open("/opt/ptu5/opt/customer_505/etc/psa_tariff/tariff01.json");
|
||||
|
||||
// muehlbach
|
||||
input.open("/opt/ptu5/opt/customer_504/etc/psa_tariff/tariff01.json");
|
||||
input.open("/home/linux/customer_502/etc/psa_tariff/tariff03.json");
|
||||
}
|
||||
|
||||
std::stringstream sstr;
|
||||
@ -922,7 +917,7 @@ int main() {
|
||||
QDateTime end;
|
||||
|
||||
QDateTime s(QDateTime::currentDateTime());
|
||||
s.setTime(QTime(10, 0, 0));
|
||||
s.setTime(QTime(13, 30, 0));
|
||||
|
||||
#if 0
|
||||
|
||||
@ -952,12 +947,12 @@ int main() {
|
||||
#if 1
|
||||
qCritical() << "start" << s.toString(Qt::ISODate);
|
||||
//for (int i = 1; i < 11; ++i) {
|
||||
for (int i = 0; i < 21; ++i) {
|
||||
for (int i = 1; i < 8; ++i) {
|
||||
calcState = compute_duration_for_parking_ticket(&cfg, s,
|
||||
(double)i*10,
|
||||
(double)i*200,
|
||||
end, PermitType(PERMIT_TYPE::SHORT_TERM_PARKING_PKW));
|
||||
qCritical() << "RUN" << i << ": start" << s.toString(Qt::ISODate)
|
||||
<< ": price" << i*10 << "->" << end.toString(Qt::ISODate) << calcState.toString();
|
||||
<< ": price" << i*200 << "->" << end.toString(Qt::ISODate) << calcState.toString();
|
||||
}
|
||||
#else
|
||||
struct price_t price;
|
||||
|
Loading…
x
Reference in New Issue
Block a user