Commit Graph

525 Commits

Author SHA1 Message Date
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
4d7e5263ee Added parsing of pop_product_id and pop_product_name. 2024-07-24 17:34:28 +02:00
7d452c82b7 Added pop_product_id and pop_product_name 2024-07-24 17:33:53 +02:00
0a08221381 Added conversion from QString to PermitType 2024-07-24 17:33:06 +02:00
b4b2e27fe3 Removed some debug output for testing 2024-07-24 12:37:29 +02:00
b19cfd693c Minor: add some debug output. 2024-07-24 12:34:05 +02:00
78921c8870 IMPORTANT: isParkingAllowedForWeekDay(): deactivated for testing !!! 2024-07-24 12:30:46 +02:00
e891bfc5de Only check for prepaid == never. 2024-07-24 12:23:15 +02:00
a6922976bf Minor: remove some debug output. 2024-07-24 12:22:47 +02:00
7f25c46d30 Set pun_duration_saved 2024-07-23 12:51:51 +02:00
2b30e9562f Recompute time step list (previously is was saved as an optimization) 2024-07-23 12:51:08 +02:00
eb4ef0c3b5 Allow adjustment of the step list by a tolerance of 5 minutes per step 2024-07-23 12:48:50 +02:00
da05d004dd Introduced 'pun_duration_saved': to be used when time steps have to be re-calculated. 2024-07-23 12:46:44 +02:00
abf4ef0b00 GetPriceForTimeStep():
Use special flag 'pop_accumulate_prices' to add up prices given in the
tariff json file.
2024-07-23 11:53:22 +02:00
49fb860129 Minor: fixed printing of 'cost'. 2024-07-23 11:47:48 +02:00
69edc8e898 compute_product_price(): add new Products (CAR, BUS, CAMPER). 2024-07-23 11:45:34 +02:00
40440e28d3 Read pop_accumulate_prices and pop_accumulate_durations. 2024-07-22 15:56:04 +02:00
ba8e2786fc GetTimeSteps():
updated as well for Schnals (505). Still to  be tested.
2024-07-22 15:54:36 +02:00
b5804408f4 GetDurationFromCost():
expanded. still to be tested.
2024-07-22 15:53:27 +02:00
f7be0e471a getDurationFromCost():
call
		Calculator::GetInstance().GetTimeSteps(cfg, 0, inputDate);
	for its side-effects.
	Timesteps will be used in the following calculation.
2024-07-22 15:50:36 +02:00
45694106a7 GetTimeSteps():
added default parameter 'start'; was set inside the funtion.
2024-07-22 15:48:21 +02:00
6d125c65fe Added flags
pop_accumulate_prices
	pop_accumulate_durations
to decide if values in json files should be accumulated or not.
2024-07-22 15:46:45 +02:00
3503306637 save experimental 2024-07-21 20:58:12 +02:00
977356040c Added changes for Schnals 2024-07-19 14:10:07 +02:00
2a89f90745 Added parsing for Interpolation, CarryOver and Prepaid-options. Has to be formatted.w 2024-07-19 14:09:04 +02:00
f2356bec55 Added new products 2024-07-19 14:04:20 +02:00
2d6ef2d158 Add prepaid and carry over option 2024-07-19 14:03:46 +02:00
02927be9c9 Added interpolation, carryover and prepaid types 2024-07-19 14:02:41 +02:00
c6d396f34b Added handling for interpolation, carry over and prepaid. 2024-07-19 14:01:27 +02:00
026c791c79 Add interpolation and operator<< 2024-07-19 14:01:00 +02:00
927164e23e Added headers for interpolation, prepaid and carryover 2024-07-19 13:59:56 +02:00
507b5d1b9c Add Interpolation, Prepaid and CarryOver structures to streamline Json-File layout. 2024-07-19 13:58:22 +02:00
c153652b3d compute_next_timestep(): allow some tolerance for first time-step 2024-07-16 16:50:11 +02:00
d7e185006f GetTimeSteps(): add sanity check 2024-07-16 16:47:26 +02:00
c3c888dc04 GetTimeSteps(): remove list as reference so compute_next_timestep)_ can change it 2024-07-16 16:46:43 +02:00
34fbefc138 save for the weekend 2024-06-07 13:33:04 +02:00
48fccafe76 Fix: GetDurationFromCost() -> set inputDate if next valid working time-range
in on another day and break the loop iterating through next days.
2024-06-06 14:04:04 +02:00
9394625d35 Minor: show debug output only when compiled in. 2024-06-06 14:02:43 +02:00
57ccbc150a compute_duration_for_parking_ticket(): set calcState according to string
returned from tariff calculation.
2024-06-05 17:03:33 +02:00
8fa4335669 Minor: fixed typo. 2024-06-05 17:03:10 +02:00
49298a1821 Extend Calculator::GetDurationFromCost() (needed for Neuhauser/Stockerau/748). 2024-06-05 17:00:27 +02:00
6fb4d245cb Added CalcState &setStatus(QString const &desc); 2024-06-05 16:58:12 +02:00
2dc93271fd Added WORKING_DAYS_WITH_RESTRICTED_HOURS (introduced for Neuhauder/Stockerau/748) 2024-06-05 16:52:54 +02:00
5be5798681 Declared iterator-arguments as const-references to get rid of compiler
warning: parameter passing for argument multi_map changed in gcc7.1
2024-06-04 11:48:50 +02:00
1a24bc4572 Add comment about main-change(s). 2024-06-04 11:39:30 +02:00
e121cef17e Added: uint32_t getDailyTicketCardPrice(Configuration const *cfg, PaymentMethod methodId); 2024-06-04 11:26:36 +02:00
bdaea1106c Fix: read price for daily ticket directly from entry PaymentOptions
in tariff-file if it is not given as part of a Json-Product-Array in tariff-file.
2024-06-04 11:24:15 +02:00
bc17213597 Minor: Add/change some debug putput. 2024-06-04 11:23:35 +02:00
64b2b4bd85 Fix: Handle case if "pop_carry_over_start_time_range" and "pop_carry_over_end_time_range"
is not given in tariff file.
2024-06-04 11:19:39 +02:00
8737508839 Minor: add case for PERMIT_TYPE::TWENTY_FOUR_HOURS_TICKET (TODO). 2024-06-04 11:18:47 +02:00
02f0500eac Minor: Add some (commented-out) debug messages. 2024-06-04 11:18:00 +02:00
2d53224feb Minor: add some (commented out) debug output -> used for debugging. 2024-05-15 15:23:12 +02:00
38964ad9a8 get_minimal_parkingprice(): for PERMIT_TYPE::DAY_TICKET
call compute_product_price(cfg, permitType, start) to get
minimal price dependent on 'start' datetime.
2024-05-15 15:21:38 +02:00
d3f18f3b82 get_minimal_parkingprice(): add default parameter 'start', set to
value of QDateTime::currentDateTime();
2024-05-15 15:19:47 +02:00
eb20410849 Use paymentOptionIndex in getPaymentOptions() 2024-05-08 16:34:07 +02:00
6a5272da7a Fix: Check if endTime is still on the same day. 2024-05-07 15:01:16 +02:00
4d5583df2d Handling for pop_carry_over_traget. 2024-05-07 14:59:00 +02:00
de6f263817 Add FRI/SAT/SUN with restricted hours. 2024-05-07 14:57:41 +02:00
b71c979a91 Fix: getPaymentOptionIndex() -> return 0 instead of -1
Removed exit(0)-call which was used for testing.
2024-05-06 11:36:12 +02:00
33f43fb83d Start parsing of pop_min_date_time and pop_max_date_time 2024-05-03 13:50:10 +02:00
1606a784a4 Add macro _WEEKEND_WITH_RESTRICTED_HOURS_. 2024-05-03 13:49:15 +02:00
9f2cf613e1 Add struct ATBMaxDateTime. 2024-05-03 13:48:27 +02:00
dbd9644047 Add ATBPaymentOptionType = std::multimap<int, ATBPaymentOption> 2024-05-03 13:47:28 +02:00
1dd81d4a56 get_minimal_parkingtime(): const Configuration parameter.
Cast of const pointer necessary.

get_maximal_parkingtime(): const Configuration parameter.
2024-04-30 14:08:08 +02:00
f93cf11d23 get_minimal_parkingtime()
get_maximal_parkingtime(): made configuration parameter const.
2024-04-30 14:06:04 +02:00
9d0ac4f8ce Add TWENTY_FOUR_HOURS_TICKET. Add toString() and implement conversion
operators in therm of toString().
2024-04-30 13:51:31 +02:00
4ec5589f30 Implement getTariffProductForProductId() in terms of
getTariffProductForProductTypeName().
2024-04-30 13:49:49 +02:00
c1d5ffcf3c Implement getTariffProductForProductTypeName().
Use the type names of PERMIT_TYPE, not real indices as they can change.
2024-04-30 13:48:03 +02:00
7aded2b7fb Explicit cast due to compiler warning. 2024-04-30 13:46:59 +02:00
ed9e60a972 Declaration for getTariffProductForProductTypeName(). 2024-04-30 13:45:22 +02:00
5d35331c83 Minor: introduced TariffProductType. 2024-04-30 13:44:53 +02:00
c7623429d9 Compute end_parking_time using "netto_parking_time", which is the
current timestep.
2024-04-25 15:41:52 +02:00
b596086245 Pass paymentOptionIndex to cfg->getPaymentOptions(), which has
a default parameter of paymentOptionIndex=0.
2024-04-24 13:20:02 +02:00
24ca857b6f Fix: init m_timeSteps-vector in case its size is 0: m_timeSteps.push_back(QList<int>()).
Detected during testing.
2024-04-24 13:18:23 +02:00
ea0bcde413 Check iterator for it != cfg->TimeRange.cend(). 2024-04-24 13:16:22 +02:00
e93b08505a Minor: introduce TimeRangeType as typedef for std::multimap<int, ATBTimeRange>. 2024-04-24 13:14:04 +02:00
e17e54b315 Minor: add define: _ALL_DAYS_WITH_RESTRICTED_HOURS_ 2024-04-19 14:10:47 +02:00
d07fdd8540 GetPriceForTimeStep(): use parameter paymentOptionIndex. 2024-04-19 13:33:54 +02:00
1fab458de3 Implement isParkingAllowedForWeekDay(), isParkingAllowedForSpecialDay()
and isParkingAllowed() (4 parameters) using the 2 functions.
2024-04-19 13:32:24 +02:00
1ac2ca91c5 GetCostFromDuration(): use new parameter paymentOptionIndex. 2024-04-19 13:31:01 +02:00
1852f552a3 compute_price_for_parking_ticket(): compute paymentOptionIndex.
(a tariff-file can conatin more than one payment options).
2024-04-19 13:28:35 +02:00
e2c02420f0 Add parsing for new values in helper-structures.
NOTE: unfortunately switched to Unix-File-Format.
2024-04-19 13:26:33 +02:00
e20eb93abf Implement SpecialDaysWorkTimeFrom() and SpecialDaysWorkTimeUntil().
Extend getBusinessHours() to include new enum-values.
Implement isDayIncluded() as switch-case on dayOfWeek.
Implement dumpBusinessHours().
2024-04-19 13:21:38 +02:00
b0e7bd91b4 Add ariff_global_defines.h. 2024-04-19 13:20:44 +02:00
0cd4424434 Add utilities
isDayIncluded(), SpecialDaysWorkTimeFrom() and specialDaysWorkTimeUntil().
2024-04-19 13:19:26 +02:00
1991853b66 Add new enum-values for business_hours. Keep the old ones for
backward-compatibility.
2024-04-19 13:18:02 +02:00
b31fcc5f4f Minor: add explicit default constructor. 2024-04-19 13:17:00 +02:00
dbe649d0e4 Add member variables
pop_carry_over_start_time_range
pop_carry_over_end_time_range:

If carry-over has been set, then provide the limits
for the carry-over: at the end of day1 (start) and
at the beginning of the next day (end).
2024-04-19 13:12:46 +02:00
dfd74a455a Add getPaymentOptionIndexIfSpecialDay().
Add isSpecialDay(), isSpecialDay((), specialDayId(),
specialDay(), isSpecialDay(), specialDayId(), specialDay(),
isDayIncluded(), isDayIncludedAsSpecialDay() and isDayIncludedAsSpecialDay().
2024-04-19 13:09:53 +02:00
10828e0708 Add private mathods isParkingAllowedForWeekDay() and isParkingAllowedForSpecialDay().
Overload isParkingAllowed().
GetCostFromDuration(): add default parameter "int paymentOptionIndex=0"
2024-04-19 13:06:37 +02:00
2dbcc7018c start header for global defines 2024-04-19 13:04:36 +02:00
18ed85430d Minor: first commit 2024-04-18 08:52:15 +02:00
b70094abb5 Extend compute_product_price() for use of PERMIT_TYPE::DAY_TICKET.
First time used for Neuhauder-Pernegg-an-der-Mur.
2024-04-16 12:10:34 +02:00
aa15d1c126 Add default-parameters to compute_product_price():
start [in]: currentDateTime(): start date-time for daily-ticket-price computation.
startProduct, endProduct: real start- and end-date/time for daily-ticket.
Used first time for Neuhauser-Pernegg-an-der-Mur (747).
2024-04-16 12:07:18 +02:00
cd159f2bbd Add case for BusinessHours::NoRestriction_24_7: used for Neuhauder-Christoph-Reisen 2024-04-16 12:05:55 +02:00
475487c2ce Minor: add utility getProductPrice() 2024-04-16 12:03:42 +02:00
b0c4ad0e2e getCurrentPaymentOptionIndex(): start implementation.
getPaymentOptions(): use new parameter paymentOptionIndex.
2024-04-12 14:31:02 +02:00
7e3347b043 GetTimeSteps(): use new parameter paymentOptionIndex 2024-04-12 14:30:04 +02:00
4e7fa83507 get_minimal_parkingtime()
get_maximal_parkingtime()
get_minimal_parkingprice()
get_maximal_parkingprice():
use new parameter paymentOptionIndex.
2024-04-12 14:27:08 +02:00
ac76f194e1 Added new constants 2024-04-12 14:26:03 +02:00
fe485b7b39 pop_business_hours as uint64_t. 2024-04-12 14:24:32 +02:00