62 lines
2.1 KiB
C++
62 lines
2.1 KiB
C++
#ifndef TARIFF_BUSINESS_HOURS_H_INCLUDED
|
|
#define TARIFF_BUSINESS_HOURS_H_INCLUDED
|
|
|
|
/// <summary>
|
|
/// Business hours (byte represents payment option id)
|
|
/// </summary>
|
|
///
|
|
|
|
#define _MON_ (1ULL << 8)
|
|
#define _TUE_ (1ULL << 9)
|
|
#define _WED_ (1ULL << 10)
|
|
#define _THU_ (1ULL << 11)
|
|
#define _FRI_ (1ULL << 12)
|
|
#define _SAT_ (1ULL << 13)
|
|
#define _SUN_ (1ULL << 14)
|
|
#define _WEEK_DAYS_ ((_MON_|_TUE_|_WED_|_THU_|_FRI_))
|
|
#define _WORKING_DAYS_ ((_MON_|_TUE_|_WED_|_THU_|_FRI_|_SAT_))
|
|
#define _ALL_DAYS_ ((_MON_|_TUE_|_WED_|_THU_|_FRI_|_SAT_|_SUN_))
|
|
#define _OFFICIAL_HOLIDAY_ (1ULL << 15)
|
|
#define _ONLY_WEEKEND ((_SAT_|_SUN_))
|
|
#define _ONLY_OPEN_FOR_BUSINESS_DAYS (1ULL << 16) /* verkaufsoffen */
|
|
#define _NOT_DEFINED (~0ULL)
|
|
|
|
enum BusinessHours : std::uint64_t
|
|
{
|
|
NoRestriction_24_7 = 0,
|
|
OnlyWorkingDays = 1, // [Monday-Friday]
|
|
OnlyWeekDays = 2, // [Monday-Saturday]
|
|
OnlyWeekEnd = 4, // [Saturday+Sunday]
|
|
OnlyOfficialHolidays = 8,
|
|
OnlySundaysAndHolidays = 12, // [Sun+Holiday]
|
|
OnlySpecialDays = 16,
|
|
OnlySchoolHolidays = 32,
|
|
SpecialAndSchoolHolidays = 48,
|
|
OnlyOpenForBusinessDays = 64, // verkaufsoffen
|
|
AllDaysWithRestrictedHours = 128, // every day, restricted to some time range
|
|
NoBusinessHoursDefined = 255,
|
|
|
|
// new 12.04.2024
|
|
NO_RESTRICTION_24_7 = 0,
|
|
MON = _MON_,
|
|
TUE = _TUE_,
|
|
WED = _WED_,
|
|
THU = _THU_,
|
|
FRI = _FRI_,
|
|
SAT = _SAT_,
|
|
SUN = _SUN_,
|
|
WEEK_DAYS = _WEEK_DAYS_,
|
|
WORKING_DAYS = _WORKING_DAYS_,
|
|
ALL_DAYS = _ALL_DAYS_,
|
|
OFFICIAL_HOLIDAY = _OFFICIAL_HOLIDAY_,
|
|
ONLY_WEEKEND = _ONLY_WEEKEND,
|
|
ONLY_OPEN_FOR_BUSINESS_DAYS = _ONLY_OPEN_FOR_BUSINESS_DAYS,
|
|
NOT_DEFINED = _NOT_DEFINED
|
|
};
|
|
|
|
struct BusinessHours_struct {
|
|
BusinessHours bh;
|
|
};
|
|
|
|
#endif // TARIFF_BUSINESS_HOURS_H_INCLUDED
|