Commit Graph

200 Commits

Author SHA1 Message Date
92c3b7c97c Add helper WorkDayId() for future use. 2024-02-15 16:11:41 +01:00
5ee978f14a Added several members to ATBTimeRange to implement
progressive tariff for Kirchdorf.
2024-02-15 16:08:22 +01:00
db0a2c0d01 Minor: replaced 'pragma once' with include guards. 2024-02-15 16:07:04 +01:00
003644f04d Minor: changed type of parameter 'start_datetime' to non-const to return value. 2024-02-15 16:05:49 +01:00
d30061915e Minor: changed type of parameter 'start_parking_time' to non-const to be able to return value. 2024-02-15 16:02:48 +01:00
24c6788427 Add utility isParkingAllowed() 2024-01-31 15:14:44 +01:00
f848baec83 Add defualt-constructor to struct price_t. 2024-01-31 15:13:24 +01:00
1467a69487 Add TariffTimeRange member to CalcState. Use in isParkingAllowed(). 2024-01-31 15:12:41 +01:00
e6399d477b CalcState: add OUTSIDE_ALLOED_PARKING_TIME status (future use). 2024-01-31 11:37:49 +01:00
9899fe76fe Add GetDailyTicketPrice() and GetPriceSteps(). 2024-01-30 10:37:30 +01:00
7bb2cbf01e Add m_priceSteps, ResetPriceSteps() and priceSteps(). 2024-01-30 10:37:10 +01:00
689bf9b3ba Added compute_price_for_daily_ticket(). 2024-01-30 10:33:11 +01:00
4c07d9fdb9 get_minimal_parking_time() -> new PERMIT_TYPE parameter
Added:
  get_maximal_parking_time()
  get_minimal_parkingprice()
  get_maximal_parkingprice().
2024-01-30 10:31:03 +01:00
1e866c74e2 Minot: fix alignment. 2024-01-30 10:30:11 +01:00
c39b3527e1 Add enum PERMIT_TYPE. 2024-01-30 10:29:25 +01:00
0af858daea Added multimap for Customer.
Using std::optional.

Added member functions:
  QVector<ATBPaymentOption> &getAllPaymentOptions()
  QVector<ATBPaymentOption> const &getAllPaymentOptions() const
  std::optional<QVector<ATBPaymentRate>> getPaymentRateForAllKeys() const
  std::optional<QVector<ATBPaymentRate>> getPaymentRateForKey(int key) const
  std::optional<QVector<ATBDailyTicket>> getDailyTicketsForAllKeys() const
  std::optional<QVector<ATBDailyTicket>> getDailyTicketsForKey(int key) const
  std::optional<ATBCustomer> getCustomerForType(ATBCustomer::CustomerType customerType)
  std::optional<ATBWeekDaysWorktime> getWeekDayWorkTime(QTime const &time, Qt::DayOfWeek dayOfWeek)

Removed: QVector<ATBDailyTicket> const &getDailyTickets() const;
2024-01-30 10:20:42 +01:00
3311537fee Add reset(). Changed print-format. 2024-01-30 10:17:56 +01:00
5b8ac6cc59 Add AllDaysWithRestrictedHours. 2024-01-30 10:16:55 +01:00
809df53658 Add reset() 2024-01-30 10:16:16 +01:00
ea5ca54c4c Add cust_id. Changed print-format. 2024-01-30 10:15:39 +01:00
b347b6e50e Minor: add debug output 2024-01-30 10:14:21 +01:00
f40ae7200b GetCostFromDuration public for testing 2024-01-24 16:35:58 +01:00
9af39fa83f Turn Calculator into a singletome and move the list of timesteps inside calculator. 2024-01-23 10:51:25 +01:00
179d3348b9 Minor: Fixed typo 2024-01-22 15:44:13 +01:00
b43fa274bd Implement get_minimal_parkingtime() and get_time_steps(). 2024-01-22 15:41:20 +01:00
0ce630dfa3 Add get_minimum_parkingtime() 2024-01-22 15:39:47 +01:00
0671a6dde6 Add get_time_steps(). 2024-01-22 14:46:40 +01:00
99a3c34d53 forward declare class Calculator 2024-01-22 14:28:22 +01:00
6ce8a86c5f Added get_calculator(): access for Calculator instance 2024-01-22 14:26:57 +01:00
acb88efc5a re-add 'private' 2024-01-22 13:37:44 +01:00
15700a363d Remove m_start member.
Add defualt parameter start for GetTimeSteps().
2024-01-22 13:28:38 +01:00
506a665592 provide GetPaymentOptions() with two signatures. 2024-01-22 13:27:21 +01:00
ed6592c273 Add:
multimap<int, ATBTimeBase> TimeBase
2024-01-22 10:23:41 +01:00
0b901954aa Add members m_start and m_timeStepCompensation (used for Neuhauser, Galtuer (745) at the moment).
Add several setters/getters.
2024-01-18 14:49:56 +01:00
9f4b10bb9a Add and fill
multimap<int, ATBTimeRange> TimeRange;
multimap<int, ATBTimeStepConfig> TimeStepConfig;
when parsing json-file.
2024-01-18 14:43:08 +01:00
283e970be4 Add pun_duration_min and pun_duration_max 2024-01-18 14:41:12 +01:00
e14edea07f Add TimeRangeType and TimeStepConfigType. 2024-01-18 14:39:57 +01:00
e520965c6b Add pop_carry_over_time_range_id and pop_time_step_config 2024-01-18 14:38:13 +01:00
6a781f0d3b Minor: add debug output 2024-01-18 14:37:13 +01:00
c357cbbbe0 Add descrption file for tariff time step config 2024-01-18 14:36:28 +01:00
44a94b7007 Minor: add comment 2024-01-16 11:56:54 +01:00
7c13d8b88c Added pun_duration_min and pun_duration_max in case we dont have to pay for a full time range 2024-01-16 11:56:12 +01:00
f1f5ac8900 Add operator << for printing 2023-12-15 13:28:34 +01:00
ddded411aa Add operator << for printing 2023-12-15 13:28:19 +01:00
96587229e2 Add operator << for printing 2023-12-15 13:28:04 +01:00
3d3794ea4e Add multimap for dailly ticket.w 2023-12-15 13:27:02 +01:00
ea2dfa144f Add new menber types: dailly ticket, timebase, time range and customer. 2023-12-12 17:56:26 +01:00
f56979a61a Minor: rename to ATBCustomer. 2023-12-12 17:55:44 +01:00
cc07b8f20e Minor: rename to ATBTimeBase 2023-12-12 17:55:06 +01:00
81459f7ab4 Minor: remove 'pragma onc' 2023-12-12 17:50:23 +01:00
d6324f03a8 Add drafts for 3 new haeder files. 2023-12-12 12:14:14 +01:00
2b3ee3f384 Renamed again. 2023-12-12 12:11:32 +01:00
08f8f3a9fd "" 2023-12-12 12:10:55 +01:00
a80bc7294a Removed tartiff_csutomer. 2023-12-12 12:00:04 +01:00
3a0baf266b Add first draft. 2023-12-12 11:59:35 +01:00
31193336cf Define daily ticket structure. 2023-12-12 11:53:22 +01:00
4fbc2c502b Header for definition of daily ticket. 2023-12-12 11:36:58 +01:00
d4e03a51dd Moved
uint32_t computeWeekDaysPrice(Configuration const *cfg, PaymentMethod id) const;
    double computeWeekDaysDurationUnit(Configuration const *cfg, PaymentMethod id) const;
to namespace Utilities.
2023-12-12 10:41:21 +01:00
723b3530cc Added helpers GetPriceForStep() and GetStepForPrice() to make source
more readable.
2023-12-12 10:40:20 +01:00
63f508fb95 Moved
PaymentMethod getPaymentMethodId(Configuration const *cfg);
    int getMinimalParkingTime(Configuration const *cfg, PaymentMethod methodId);
    int getMaximalParkingTime(Configuration const *cfg, PaymentMethod methodId);
    uint32_t getMinimalParkingPrice(Configuration const *cfg, PaymentMethod methodId);

to namespace Utilities.
2023-12-12 10:38:31 +01:00
6e0a74c8cc Add helpers GetSteps(), noSpecialDays(), specialDays() and tariffIs24_7()
to make the source more readable.
2023-12-12 10:36:22 +01:00
52ad1c3ba8 Minor: add constructor taking some parameters.. 2023-12-12 10:31:54 +01:00
43b8a8d3bf Add member pop_business_hours. Add default constructor. 2023-12-12 10:30:55 +01:00
ceef73195d Add helper structure
enum BusinessHours
{
    NoRestriction_24_7          = 0,
    OnlyWorkingDays             = 1,    // [Monday-Friday]
    OnlyWeekDays                = 2,    // [Monday-Saturday]
    OnlyWeekEnd                 = 4,    // [Saturday+Sunday]
    OnlyOfficialHolidays        = 8,
    OnlySpecialDays             = 16,
    OnlySchoolHolidays          = 32,
    SpecialAndSchoolHolidays    = 48,
    OnlyOpenForBusinessDays     = 64,   // verkaufsoffen
    NoBusinessHoursDefined      = 255
};

to define inside of tariff-file what operating hours a PSA has.
2023-12-12 10:26:13 +01:00
4187598edf Add helpers for collecting them in Utilities namespave.
BusinessHours getBusinessHours(Configuration const *cfg, PaymentMethod methodId);
uint32_t computeWeekDaysPrice(Configuration const *cfg, PaymentMethod id);
double computeWeekDaysDurationUnit(Configuration const *cfg, PaymentMethod id);
2023-12-12 10:20:02 +01:00
5b8d9c62cc Add and implement utilities:
int getMinimalParkingTime(Configuration const *cfg, PaymentMethod methodId);
    int getMaximalParkingTime(Configuration const *cfg, PaymentMethod methodId);
    uint32_t getMinimalParkingPrice(Configuration const *cfg, PaymentMethod methodId);
    uint32_t getFirstDurationStep(Configuration const *cfg, PaymentMethod methodId);
2023-12-07 16:27:09 +01:00
56e2843ddb Add compute_next_timestep(). 2023-12-07 16:26:09 +01:00
cc5c52c1a0 Added private_getDurationFromCost() 2023-11-28 16:42:29 +01:00
602ff5f94e Added State for invalid price 2023-11-28 16:41:27 +01:00
57ec82a2fc Added helpers computeWeekDaysPrice() and computeWeekDaysDurationUnit() 2023-11-28 15:18:05 +01:00
a49236c1de Removed parameters in private_GetCostFromDuration() and checkDurationMinutes() 2023-11-28 15:17:27 +01:00
9ca45e613f Return a ticket from private_GetCostFromDuration().
Add helpers findWorkTimeRange() and findNextWorkTimeRange().
2023-11-27 16:15:18 +01:00
6a3d183129 Minor: overload constructor 2023-11-27 16:14:27 +01:00
e9047f995a Minor: format to Unix. 2023-11-27 16:09:38 +01:00
20cdb8b07f Add overload for IsYearPeriodActive().
Add helpers WeekDaysWorkTimeFrom(), WeekDaysWorkTimeUntil(), isCarryOverSet()
sCarryOverNotSet() and getPaymentMethodId().
2023-11-27 16:07:30 +01:00
b84970fd12 Add class Ticket for future use. 2023-11-26 19:56:38 +01:00
c749de2bf9 Add private_GetCostFromDuration() and helpers
getMinimalParkingTime(), getMaximalParkingTime(), checkDurationMinutes().
2023-11-26 19:53:29 +01:00
c4cec1c04b Added overload for CheckSpecialDay().
Added helpers SpecialDaysWorkTimeFrom() and SpecialDaysWorkTimeUntil().
2023-11-26 19:51:37 +01:00
a53cb37291 Add explicit include guard. 2023-11-26 19:50:23 +01:00
36478e111e start changes for neuhauser 2023-11-24 13:23:59 +01:00
b80cd5e6ef Remove parameter paymentMethod.
Add GetDurationForPrice().
2023-11-23 09:36:50 +01:00
3a2e521345
Add interface to access 'PaymentOptions' 2023-11-22 16:27:41 +01:00
aaa4348a9a
Add ATBProject to configuration 2023-11-22 11:14:48 +01:00
68c438bfe0
Add header file for project-variables 2023-11-22 11:13:37 +01:00
f7e462188f
Add methods for PaymentMethod::Steps 2023-11-22 09:53:07 +01:00
cb8cd5dead
Merge branch 'moransBranch' 2023-06-14 11:28:27 +02:00
6157861d62 Monday starts with 1 2023-06-13 12:11:09 +02:00
23748966de
Merge branch 'moransBranch' of git.mimbach49.de:GerhardHoffmann/MOBILISIS-Calculator into moransBranch 2023-05-19 15:49:38 +02:00
7bd7f66666 Fixed pra_payment_unit_id 2023-05-17 10:08:02 +02:00
268d43cdea
GetDailyTicketDuration: use QDateTime for timestamps 2023-05-16 16:43:45 +02:00
eef94a3fb3
Change interface: use QDateTime
- use QDateTime instead of char*-string
 - GetCostFromDuration: add end_datetime as a return value
2023-05-16 15:31:53 +02:00
3097819c01
Update interface for 'compute_duration_for_daily_ticket() 2023-05-16 11:07:21 +02:00
617eee39ed Daily ticket 2023-05-15 14:05:55 +02:00
219d820104 GetCostFromDuration fixed 2023-05-12 09:20:46 +02:00
e7606b6568 Added overoaded versions for compute_price_for_parking_ticket() and
compute_duration_for_parking_ticket() using QDateTime parameters.
Added new error code WRONG_ISO_TIME_FORMAT.
2023-05-10 16:16:24 +02:00
01f2dc07ce Added INVALID_START_DATE.
Added compute_duration_for_parking_ticket().
2023-05-09 11:38:39 +02:00
1c03745333 Add CalcState to be used as return type of tarif_init and compute_price_for_parking_ticket. 2023-05-08 12:32:44 +02:00
a7d7e61d9b Add macro CALCULATE_LIBRARY_API to make symbols public. 2023-05-02 09:44:14 +02:00
ce930f1931 Add declspec-macros 2023-05-02 09:09:18 +02:00
90cf509d97 start repository for mobilisis tariff-calculation 2023-04-24 15:31:46 +02:00