diff --git a/library/include/mobilisis/configuration.h b/library/include/mobilisis/configuration.h index 44de256..610ac58 100644 --- a/library/include/mobilisis/configuration.h +++ b/library/include/mobilisis/configuration.h @@ -36,6 +36,9 @@ class Calculator; class Configuration { public: + using SpecialDaysType = std::multimap; + using SpecialDaysWorktimeType = std::multimap; + ATBProject project; ATBCurrency Currency; ATBDuration duration; @@ -43,8 +46,8 @@ public: multimap Duration; multimap PaymentMethod; multimap PaymentRate; - multimap SpecialDaysWorktime; - multimap SpecialDays; + SpecialDaysWorktimeType SpecialDaysWorktime; + SpecialDaysType SpecialDays; multimap WeekDays; multimap YearPeriod; multimap WeekDaysWorktime; @@ -67,8 +70,14 @@ public: ATBPaymentOption const &getPaymentOptions(int paymentOptionsIndex=0) const; QVector &getAllPaymentOptions(); QVector const &getAllPaymentOptions() const; - int getCurrentPaymentOptionIndex(QDateTime const &dt) const; - bool isHoliday(QDateTime const &dt) const; + int getPaymentOptionIndex(QDateTime const &dt) const; + int getPaymentOptionIndexIfSpecialDay(QDateTime const &dt) const; + bool isSpecialDay(QDateTime const &dt) const; + int specialDayId(QDateTime const &dt) const; + ATBSpecialDays specialDay(QDateTime const &dt) const; + bool isDayIncluded(uint64_t businessHours, QDateTime const &dt) const; + bool isDayIncludedAsSpecialDay(uint64_t businessHours, QDateTime const &dt) const; + bool isDayIncludedAsSpecialDay(uint64_t businessHours, int specialDayId) const; std::optional> getPaymentRateForAllKeys() const; std::optional> getPaymentRateForKey(int key) const; std::optional> getDailyTicketsForAllKeys() const;