932d4e8cb9
check it ticket-end-time hits carry-over-start. if configured, move to end of carry-over.
2024-09-16 16:56:48 +02:00
38abc65425
compute_price_for_parking_ticket():
...
Check if minutesUntilCarryOver is positive (usually must be).
2024-09-16 16:54:25 +02:00
205896903b
Handle SUCCESS_MAXPRICE (calc-state).
2024-09-16 16:53:44 +02:00
57b9d16abc
GetDurationFromCost():
...
Handle carry-over for direct coin insertion.
Carefully check if this might be a problem for other projects.
2024-09-16 16:50:16 +02:00
48afbc071c
Added new calc-state: SUCCESS_MAXPRICE.
...
Return whenever cost (=price) equals max-price.
2024-09-16 16:49:00 +02:00
7a7b10260a
Add untracked(!) files
2024-09-16 16:47:01 +02:00
1874b08210
Merge branch 'kleipeda-experimental-snapshot-2024-09-12' into kleipeda-experimental
2024-09-16 10:49:23 +02:00
88a0ebb688
Add atb-time.
2024-09-16 10:42:56 +02:00
a8ae9fc602
Add own Time class (similar QTime)
2024-09-16 10:42:08 +02:00
7c0514e241
save current state
2024-09-13 10:42:45 +02:00
dffc6e2a03
Minor: removed some debug output.
2024-09-11 11:56:06 +02:00
f9cc3af473
ParseJson():
...
Add parsing of "pop_apply_carry_over_to_ticket_endtime".
2024-09-11 11:55:03 +02:00
9dd0108731
ParseJson():
...
Add parsing for prepaid-options.
2024-09-11 11:54:16 +02:00
fa10ea4b89
compute_price_for_parking_ticket():
...
In case parking-time-limit is violated, return with an error.
Commented out: use another possiblity: cut max-parking-time
so that parking-time-limit is not violated.
2024-09-11 11:49:31 +02:00
05f03a623b
compute_price_for_parking_ticket():
...
If after crossing a carry-over-time range (taking several days)
check if we have to carry over again on the target day.
2024-09-11 11:47:50 +02:00
03e9076962
compute_price_for_parking_ticket():
...
Minor: add some debug output.
2024-09-11 11:46:36 +02:00
5dbd3645c6
compute_price_for_parking_ticket():
...
Fetch prepaid-option-id (possibly recalculating it depending
on year-period), and fetch associated prepaid-options.
2024-09-11 11:44:09 +02:00
d21f69cb9b
get_maximal_parkingprice():
...
Fetch maxPrice directly instead of using utility function.
2024-09-11 11:42:15 +02:00
e38a1bfe12
Add default constructor, update debug output.
2024-09-11 11:40:19 +02:00
f38a8d528c
Minor: add getters for parking-time-limit.
2024-09-11 11:39:16 +02:00
08a593eb12
Add 'pop_apply_carry_over_to_ticket_endtime':
...
If ticket-end-time exactly hits the start of a carry-over-time-range,
the move to the end of the carry-over-time-range, even if this
were not strictly necessary.
2024-09-11 11:36:57 +02:00
f322d30e36
Add default constructor, fix debug output.
2024-09-11 11:35:17 +02:00
7a53a68850
getPaymentOptionIndex(): add start-time parameter
2024-09-06 12:05:41 +02:00
275c3ec869
compute_price_for_parking_ticket():
...
Pass start-date-time to parking-time-checker.
2024-09-03 11:19:23 +02:00
6d2bde1fe9
getPaymentOptionIndex():
...
Fix: make sure only one payment option can be chosen.
2024-09-03 11:17:31 +02:00
f02521d3c2
parseWeekDay():
...
for the park-time-limit checking take into account that the
start-date-time and end-date-time are on different days.
2024-09-03 11:15:08 +02:00
75f1c1bb76
Checking parking-time-limit:
...
provide start-date-time as well, because the limit counts only
from one day to following day (e.g. Sunday to Monday or from
holiday to next day).
2024-09-03 11:10:24 +02:00
f47695de8b
Add pop_plus_steps_saved
2024-09-02 17:16:47 +02:00
cce3db301b
Minor: comment out some code to prevent compiler warnings (about some unused
...
variables).
2024-09-02 17:15:33 +02:00
5cab0de9fb
Use free function getPaymentOptionIndex() to compute index of valid
...
payment-option-section in tariff-file based on configured businessHours.
2024-09-02 17:14:20 +02:00
f92906f680
Minor: debug output.
2024-09-02 17:13:11 +02:00
8cdeef26fc
Check if computed ticket-end-time violates a carry-over-limit defined in
...
tariff-file.
2024-09-02 17:11:48 +02:00
52ebbf7bc9
Use free function getPaymentOptionIndex() in serveral places to compute valid
...
index of a payment-option-section within tariff file. If this is not possible,
then try the already available functionality.
2024-09-02 17:09:26 +02:00
349e9d8b06
Add free functions isHoliday() to check if the current day is a holiday
...
and previousDayHoliday() to check if previous day (relative to endtime) is a
holiday.
2024-09-02 17:05:32 +02:00
68a1c24861
Add free function getPaymentOptionIndex():
...
Compute payment option index base on current start-date-time and
businesshour-setiing in tariff-file.
Returns -1 to indicate error.
2024-09-02 17:03:37 +02:00
c946c106d1
Configuration::ParseJson():
...
Save the pop_plus_steps setting: sometimes it is necessary to adapt the
pop_plus_steps-variable in order to hit a time-limit-boundary exactly.
Otherwise the next computed time-step might overshoot the time-limit,
and when moving backwards (via Minus-Button) there is a better
resolution: going backwards, the user could hit the exact time-limit,
which he could not when going up.
2024-09-02 16:58:34 +02:00
f24f1fe646
Configuration::ParseJson():
...
Call parseWeekDay() to reading the week-day-settings.
2024-09-02 16:57:11 +02:00
c6b8a37263
ParseJson():
...
Minor: some reformatting of source code.
2024-09-02 16:55:48 +02:00
58d8f16681
ParseWeekDay():
...
Parsing "Monday" - "Sunday" section i a tariff-file.
Each day has a memebr named "week_day_default".
It contains the valid default tariff settings for a usual day (i.e. no
holiday etc.)
It also contains the carry-over-settings for the usual day.
In case there is some holiday on this day (for instance on "Monday"),
the the date of the holiday replaces the name "week_day_default".
Otherwise the structure is the same as for a usual day.
2024-09-02 16:49:21 +02:00
431664d8b9
IdentifyJsonMember():
...
Add "Monday" - "Sunday" as level-1 sections in a tariff-file.
2024-09-02 16:47:46 +02:00
53cf9a7341
Add description for tariff-settings.w
2024-09-02 16:46:00 +02:00
3a18ee2d7c
Add description for carry-over-settings
2024-09-02 16:45:35 +02:00
929a8a4a27
Reuse of "class ATBWeekDays":
...
Description of a weekday: Mon-Sun. For holidays contains a type-flag
to indicate such a day.
Each weekday has some tariff-settings and some carry-over-settings.
2024-09-02 16:41:26 +02:00
eca285cc25
remove obsolete print-function
2024-09-02 16:40:07 +02:00
bda8914f1a
Add free functions:
...
previousDayHoliday():
Check if previous day was a holiday. Check is done relative to
computed endtime.
isHoliday():
Check if startDateTime is on a holiday.
getPaymentOptionIndex():
Compute the index of the payment-options-section inside a tariff-file.
This is done as workaround (and backward compatibility).
parseWeekDay():
Parse new structure of tariff-file.
2024-09-02 16:35:25 +02:00
a3983ed427
check for time-step-config == STATIC
2024-08-21 17:46:35 +02:00
f8805e9e78
compute_duration_for_parking_ticket():
...
Fix: handle carry-over for coin-insertion.
2024-08-21 15:40:55 +02:00
7a6360f392
compute_duration_for_parking_ticket():
...
Fix: handle prepaid-setting for coin-insertion.
2024-08-21 15:39:44 +02:00
08a249f393
return OVERPAID in case overpay is not allowed
2024-08-21 15:39:05 +02:00
7c173ae292
parse for pop_allow_overpay
2024-08-21 15:38:06 +02:00
80637260f3
Utilities::IsYearPeriodActive():
...
Fix: take into account if start-date <= end-date or not.
Otherwise check is wrong, and no valid year period is returned.
2024-08-21 15:35:03 +02:00
9b524d63e5
Add 'pop_allow_overpay' setting: set vai tariff-file if operpay is allowed.
2024-08-21 15:33:02 +02:00
0856f10ca9
GetDurationFromCost():
...
Fix computation of end-time when pop_accumulate_durations is set
in tariff-file.
2024-08-02 14:34:44 +02:00
465b2274a1
compute_duration_for_parking_ticket():
...
Adapt end-time in case it is midnight: 00:00 -> 23:59
2024-08-02 13:15:11 +02:00
1023f6ede1
GetPriceForTimeStep():
...
Use "pop_accumulate_durations" setting to sum up the durations.
Otherwise time-step will not be found in time-step-list.
2024-08-02 11:12:07 +02:00
36b3e85d1b
GetCostFromDuration():
...
recompute timestep list to make sure that time step is found in it.
2024-08-02 11:11:20 +02:00
b394ed46cc
In case end-parking-time ends with 00:00, set it to 23:59.
2024-08-02 11:09:20 +02:00
3dda2d8355
Check if prepaid-option is set.
2024-08-02 11:08:52 +02:00
1152c3824e
Minor: add some debug output.
2024-08-02 11:08:32 +02:00
4271c0fb31
Fixed compute_next_timestep() for degressive tariff:
...
compute_next_timestep() was actually never called for such a tariff.
2024-08-02 10:50:25 +02:00
4bce854d77
GetDurationFromCost():
...
Set durationInSecs in case 'pop_accumulate_prices' is not configured
in tariff file.
2024-08-01 16:44:06 +02:00
138221759b
GetDurationFromCost():
...
Minor: removed some debug ouput
2024-08-01 16:43:19 +02:00
9cb7d4aea6
compute_price_for_parking_ticket():
...
Added handling for prepaid and carry-over.
2024-08-01 16:04:57 +02:00
cde490bab2
compute_next_time_step():
...
Added handling with pop_plus_steps/pop_minus_steps:
'+' usually takes more than one time step.
'-' is usually 1.
Changed behaviour when current time is not found in the list of time steps:
Search for the entry with the smallest distance to 'current time'.
If the distance is smaller than 3 minutes, then use 'current time' as new
entry in the list of time steps.
2024-08-01 16:00:10 +02:00
f0677374ec
Parsing of pop_plus_steps/pop_minus_steps
2024-08-01 15:46:49 +02:00
89b05ffadc
Added GetYearPeriodActive() to get active year period.
2024-08-01 15:45:50 +02:00
260973cd09
Added pop_plus_steps/pop_minus_steps to control step sizes
2024-08-01 15:44:06 +02:00
7bf7108668
GetDurationFromCost():
...
Check if computed duration is below minimal parking time.
2024-07-31 10:26:47 +02:00
e5629ba4fd
GetDurationFromCost():
...
Check if given price is below minimal parking price.
2024-07-31 10:25:03 +02:00
e4cb992aae
GetTimeSteps() for payment-method degressive. introduced for Valser Alm (location: Fane).
2024-07-30 15:39:55 +02:00
cdeb625a15
Minor: Revode debug output.
2024-07-30 15:39:35 +02:00
589d89b73a
Calculator::GetDurationFromCost():
...
Compute duration from cost for PaymentMethod::Degressive: introduced
for Valser Alm (location: Fane).
2024-07-30 15:37:28 +02:00
7536f89d75
compute_duration_for_parking_ticket():
...
read prepaid-setting from tariff-file, if possible.
2024-07-30 15:32:58 +02:00
9a6b2b195d
get_minimal_parking_price(): compute this price dynamically according to settings
...
in the tariff-file. Introduced for Fuchs (500) for Valser Alm (Location: Fane)
2024-07-30 15:29:47 +02:00
52b7c2390a
Minor: introduce using-typedef for Duration
2024-07-29 17:33:49 +02:00
894e23332f
compute option index using permit type.
2024-07-29 17:32:15 +02:00
fbc255a6f2
Fix: compute_next_time_step(): removed check for product ids.
2024-07-29 17:31:33 +02:00
24ab01695d
GetPriceForTimeStep(): remove default parameter.
2024-07-29 17:28:27 +02:00
37652d3b6a
Save computed pop_min_time.
2024-07-29 17:27:16 +02:00
14fd7ddd39
Preperationf for Zone3.
2024-07-29 17:26:53 +02:00
ca3c3921d4
Minor: change debug output
2024-07-29 17:26:26 +02:00
9f4affca5a
Minor: removed debug output
2024-07-29 11:30:00 +02:00
4f2c33cdc2
Minor: added comments and added some debug output.
2024-07-29 11:28:07 +02:00
3cd02296b0
compute_duration_for_parking_ticket():
...
Fix: pass PERMIT_TYPE explicitly to correct arity of GetDurationFromCost().
2024-07-29 11:25:12 +02:00
f1493f417f
get_maximal_parkingprice():
...
implement for SHORT_TERM_PARKING_BUS and SHORT_TERM_PARKING_PKW.
2024-07-29 11:24:05 +02:00
356e3be178
Pass PERMIT_TYPE to get_minimal_parkingtime() and get_maximal_parkingtime()
...
to override default parameter value.
2024-07-29 11:22:22 +02:00
31b1dd1690
ResetTimeSteps():
...
Check paymentOptionIndex for correct value.
2024-07-29 11:20:00 +02:00
dbf5b1f11d
remove input correction
2024-07-26 17:34:24 +02:00
29368ea850
Remove correction
2024-07-26 17:04:33 +02:00
b84f80887e
Checkin for testing
2024-07-26 17:01:44 +02:00
4a2b15d086
Add some debug output into GetDurationForPrice().
2024-07-26 13:34:18 +02:00
8dad8f00e8
GetPriceForTimeStep(): Fix: user default payment option
2024-07-26 13:11:29 +02:00
805a732c52
GetPriceForTimeStep(): add prices for computed timesteps. Return maximal
...
price which is still smaller or equal then (input-)price.
2024-07-26 12:53:42 +02:00
b7facb9d60
checkin for tariff02.json
2024-07-26 10:59:45 +02:00
8344b04b15
Use of permitType in several places
2024-07-25 09:49:16 +02:00
b0ecef0361
Use of permitType in several places
2024-07-25 09:48:12 +02:00
003b7e8e8a
getPaymentOption() functions and getPaymentOptionIndex()
2024-07-25 09:46:46 +02:00
7ef2d44fc4
Add parameter PermitType to GetCostForDuration() and GetDurationFromCost()
2024-07-25 09:45:36 +02:00
8f203184b6
Add additional parameter (PermitType) to several functions
2024-07-25 09:44:24 +02:00
0bfec6a938
Added getPaymentOptionIndex() and getPaymentOptionsForAllKeys()
2024-07-25 09:43:16 +02:00