Compare commits

..

3 Commits

4 changed files with 17 additions and 2 deletions

View File

@ -24,6 +24,7 @@ public:
pop_min_price = 0; pop_min_price = 0;
pop_max_price = 0; pop_max_price = 0;
pop_carry_over = -1; pop_carry_over = -1;
pop_carry_over_target = false;
pop_carry_over_time_range_id = -1; pop_carry_over_time_range_id = -1;
pop_carry_over_start_time_range = -1; pop_carry_over_start_time_range = -1;
pop_carry_over_end_time_range = -1; pop_carry_over_end_time_range = -1;
@ -43,6 +44,7 @@ public:
double pop_min_price; double pop_min_price;
double pop_max_price; double pop_max_price;
int pop_carry_over; int pop_carry_over;
bool pop_carry_over_target;
int pop_carry_over_time_range_id; int pop_carry_over_time_range_id;
int pop_carry_over_start_time_range; int pop_carry_over_start_time_range;
int pop_carry_over_end_time_range; int pop_carry_over_end_time_range;

View File

@ -25,6 +25,9 @@
#define _WITH_RESTRICTED_HOURS_ (uint64_t)(1ULL << 17) #define _WITH_RESTRICTED_HOURS_ (uint64_t)(1ULL << 17)
#define _ALL_DAYS_WITH_RESTRICTED_HOURS_ ((_WITH_RESTRICTED_HOURS_|_ALL_DAYS_)) #define _ALL_DAYS_WITH_RESTRICTED_HOURS_ ((_WITH_RESTRICTED_HOURS_|_ALL_DAYS_))
#define _WEEKEND_WITH_RESTRICTED_HOURS_ ((_WITH_RESTRICTED_HOURS_|_FRI_|_SAT_|_SUN_)) #define _WEEKEND_WITH_RESTRICTED_HOURS_ ((_WITH_RESTRICTED_HOURS_|_FRI_|_SAT_|_SUN_))
#define _FRI_WITH_RESTRICTED_HOURS_ ((_WITH_RESTRICTED_HOURS_|_FRI_))
#define _SAT_WITH_RESTRICTED_HOURS_ ((_WITH_RESTRICTED_HOURS_|_SAT_))
#define _SUN_WITH_RESTRICTED_HOURS_ ((_WITH_RESTRICTED_HOURS_|_SUN_))
#define _NOT_DEFINED_ (uint64_t)(~0ULL) #define _NOT_DEFINED_ (uint64_t)(~0ULL)
enum BusinessHours : std::uint64_t enum BusinessHours : std::uint64_t
@ -59,6 +62,9 @@ enum BusinessHours : std::uint64_t
ONLY_OPEN_FOR_BUSINESS_DAYS = _ONLY_OPEN_FOR_BUSINESS_DAYS_, ONLY_OPEN_FOR_BUSINESS_DAYS = _ONLY_OPEN_FOR_BUSINESS_DAYS_,
ALL_DAYS_WITH_RESTRICTED_HOURS = _ALL_DAYS_WITH_RESTRICTED_HOURS_, ALL_DAYS_WITH_RESTRICTED_HOURS = _ALL_DAYS_WITH_RESTRICTED_HOURS_,
WEEKEND_WITH_RESTRICTED_HOURS = _WEEKEND_WITH_RESTRICTED_HOURS_, WEEKEND_WITH_RESTRICTED_HOURS = _WEEKEND_WITH_RESTRICTED_HOURS_,
FRI_WITH_RESTRICTED_HOURS = _FRI_WITH_RESTRICTED_HOURS_,
SAT_WITH_RESTRICTED_HOURS = _SAT_WITH_RESTRICTED_HOURS_,
SUN_WITH_RESTRICTED_HOURS = _SUN_WITH_RESTRICTED_HOURS_,
NOT_DEFINED = _NOT_DEFINED_ NOT_DEFINED = _NOT_DEFINED_
}; };

View File

@ -649,8 +649,10 @@ CalcState Calculator::isParkingAllowedForWeekDay(Configuration const *cfg,
QTime const &startTime = start.time(); QTime const &startTime = start.time();
if (startTime >= from && startTime <= until) { if (startTime >= from && startTime <= until) {
QTime const endTime = start.addSecs(netto_parking_time*60).time(); QDateTime const end = start.addSecs(netto_parking_time*60);
if (endTime <= until) { QTime const endTime = end.time();
if (endTime <= until && start.date().dayOfWeek() == end.date().dayOfWeek()) {
qCritical() << DBG_HEADER;
return CalcState(CalcState::State::SUCCESS, "PARKING_ALLOWED", from, until); return CalcState(CalcState::State::SUCCESS, "PARKING_ALLOWED", from, until);
} else { } else {
errorStr = QString("%1 startTime not in range (%2 not in [%3, %4))") errorStr = QString("%1 startTime not in range (%2 not in [%3, %4))")

View File

@ -486,6 +486,11 @@ bool Configuration::ParseJson(Configuration* cfg, const char* json)
} }
} }
} }
} else if (strcmp(inner_obj_name, "pop_carry_over_target") == 0) {
if (k->value.IsBool()) {
bool const v = k->value.GetBool();
this->currentPaymentOptions.last().pop_carry_over_target = v;
}
} }
break; break;
case MemberType::DurationType: case MemberType::DurationType: