Implement SpecialDaysWorkTimeFrom() and SpecialDaysWorkTimeUntil().
Extend getBusinessHours() to include new enum-values. Implement isDayIncluded() as switch-case on dayOfWeek. Implement dumpBusinessHours().
This commit is contained in:
parent
b0e7bd91b4
commit
e20eb93abf
@ -1,5 +1,6 @@
|
|||||||
#include "utilities.h"
|
#include "utilities.h"
|
||||||
#include "tariff_log.h"
|
#include "tariff_log.h"
|
||||||
|
#include "tariff_business_hours.h"
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
@ -333,6 +334,14 @@ QTime Utilities::SpecialDaysWorkTimeFrom(Configuration const *cfg, int specialDa
|
|||||||
return QTime::fromString(cfg->SpecialDaysWorktime.find(specialDayId)->second.pedwt_time_from.c_str(), Qt::ISODate);
|
return QTime::fromString(cfg->SpecialDaysWorktime.find(specialDayId)->second.pedwt_time_from.c_str(), Qt::ISODate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QTime Utilities::SpecialDaysWorkTimeFrom(Configuration::SpecialDaysWorktimeType::const_iterator it) {
|
||||||
|
return QTime::fromString(it->second.pedwt_time_from.c_str(), Qt::ISODate);
|
||||||
|
}
|
||||||
|
|
||||||
|
QTime Utilities::SpecialDaysWorkTimeUntil(Configuration::SpecialDaysWorktimeType::const_iterator it) {
|
||||||
|
return QTime::fromString(it->second.pedwt_time_to.c_str(), Qt::ISODate);
|
||||||
|
}
|
||||||
|
|
||||||
QTime Utilities::SpecialDaysWorkTimeUntil(Configuration const *cfg, int specialDayId) {
|
QTime Utilities::SpecialDaysWorkTimeUntil(Configuration const *cfg, int specialDayId) {
|
||||||
return QTime::fromString(cfg->SpecialDaysWorktime.find(specialDayId)->second.pedwt_time_to.c_str(), Qt::ISODate);
|
return QTime::fromString(cfg->SpecialDaysWorktime.find(specialDayId)->second.pedwt_time_to.c_str(), Qt::ISODate);
|
||||||
}
|
}
|
||||||
@ -420,10 +429,10 @@ uint32_t Utilities::getFirstDurationStep(Configuration const *cfg, PaymentMethod
|
|||||||
}
|
}
|
||||||
|
|
||||||
BusinessHours Utilities::getBusinessHours(Configuration const *cfg, PaymentMethod methodId) {
|
BusinessHours Utilities::getBusinessHours(Configuration const *cfg, PaymentMethod methodId) {
|
||||||
int businessHours = cfg->PaymentOption.find(methodId)->second.pop_business_hours;
|
uint64_t businessHours = cfg->PaymentOption.find(methodId)->second.pop_business_hours;
|
||||||
|
|
||||||
switch (businessHours) {
|
switch (businessHours) {
|
||||||
case NoRestriction_24_7: return BusinessHours::NoRestriction_24_7;
|
//case NoRestriction_24_7: return BusinessHours::NoRestriction_24_7;
|
||||||
case OnlyWorkingDays: return BusinessHours::OnlyWorkingDays;
|
case OnlyWorkingDays: return BusinessHours::OnlyWorkingDays;
|
||||||
case OnlyWeekDays: return BusinessHours::OnlyWeekDays;
|
case OnlyWeekDays: return BusinessHours::OnlyWeekDays;
|
||||||
case OnlyWeekEnd: return BusinessHours::OnlyWeekEnd;
|
case OnlyWeekEnd: return BusinessHours::OnlyWeekEnd;
|
||||||
@ -433,6 +442,21 @@ BusinessHours Utilities::getBusinessHours(Configuration const *cfg, PaymentMetho
|
|||||||
case SpecialAndSchoolHolidays: return BusinessHours::SpecialAndSchoolHolidays;
|
case SpecialAndSchoolHolidays: return BusinessHours::SpecialAndSchoolHolidays;
|
||||||
case OnlyOpenForBusinessDays: return BusinessHours::OnlyOpenForBusinessDays;
|
case OnlyOpenForBusinessDays: return BusinessHours::OnlyOpenForBusinessDays;
|
||||||
case AllDaysWithRestrictedHours: return BusinessHours::AllDaysWithRestrictedHours;
|
case AllDaysWithRestrictedHours: return BusinessHours::AllDaysWithRestrictedHours;
|
||||||
|
case _NO_RESTRICTION_24_7_: return BusinessHours::NO_RESTRICTION_24_7;
|
||||||
|
case _MON_: return BusinessHours::MON;
|
||||||
|
case _TUE_: return BusinessHours::TUE;
|
||||||
|
case _WED_: return BusinessHours::WED;
|
||||||
|
case _THU_: return BusinessHours::THU;
|
||||||
|
case _FRI_: return BusinessHours::FRI;
|
||||||
|
case _SAT_: return BusinessHours::SAT;
|
||||||
|
case _SUN_: return BusinessHours::SUN;
|
||||||
|
case _WEEK_DAYS_: return BusinessHours::WEEK_DAYS;
|
||||||
|
case _WORKING_DAYS_: return BusinessHours::WORKING_DAYS;
|
||||||
|
case _ALL_DAYS_: return BusinessHours::ALL_DAYS;
|
||||||
|
case _OFFICIAL_HOLIDAY_: return BusinessHours::OFFICIAL_HOLIDAY;
|
||||||
|
case _ONLY_WEEKEND_: return BusinessHours::ONLY_WEEKEND;
|
||||||
|
case _ONLY_OPEN_FOR_BUSINESS_DAYS_: return BusinessHours::ONLY_OPEN_FOR_BUSINESS_DAYS;
|
||||||
|
case _NOT_DEFINED_: return BusinessHours::NOT_DEFINED;
|
||||||
}
|
}
|
||||||
return BusinessHours::NoBusinessHoursDefined;
|
return BusinessHours::NoBusinessHoursDefined;
|
||||||
}
|
}
|
||||||
@ -447,3 +471,82 @@ double Utilities::computeWeekDaysDurationUnit(Configuration const *cfg, PaymentM
|
|||||||
int durationId = cfg->PaymentRate.find(pop_id)->second.pra_payment_unit_id;
|
int durationId = cfg->PaymentRate.find(pop_id)->second.pra_payment_unit_id;
|
||||||
return (double)(cfg->Duration.find(durationId)->second.pun_duration);
|
return (double)(cfg->Duration.find(durationId)->second.pun_duration);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Utilities::isDayIncluded(uint64_t businessHours, QDateTime const &dt) {
|
||||||
|
int dayOfWeek = dt.date().dayOfWeek();
|
||||||
|
switch (dayOfWeek) {
|
||||||
|
case Qt::Monday:
|
||||||
|
return ((businessHours & BusinessHours::MON) == BusinessHours::MON);
|
||||||
|
case Qt::Tuesday:
|
||||||
|
return ((businessHours & BusinessHours::TUE) == BusinessHours::TUE);
|
||||||
|
case Qt::Wednesday:
|
||||||
|
return ((businessHours & BusinessHours::WED) == BusinessHours::WED);
|
||||||
|
case Qt::Thursday:
|
||||||
|
return ((businessHours & BusinessHours::THU) == BusinessHours::THU);
|
||||||
|
case Qt::Friday:
|
||||||
|
return ((businessHours & BusinessHours::FRI) == BusinessHours::FRI);
|
||||||
|
case Qt::Saturday:
|
||||||
|
return ((businessHours & BusinessHours::SAT) == BusinessHours::SAT);
|
||||||
|
case Qt::Sunday:
|
||||||
|
return ((businessHours & BusinessHours::SUN) == BusinessHours::SUN);
|
||||||
|
default:;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList Utilities::dumpBusinessHours(uint64_t businessHours) {
|
||||||
|
QStringList s;
|
||||||
|
|
||||||
|
if ((businessHours & BusinessHours::MON) == BusinessHours::MON) {
|
||||||
|
if ((businessHours & BusinessHours::OFFICIAL_HOLIDAY) == BusinessHours::OFFICIAL_HOLIDAY) {
|
||||||
|
s << "MON (Holiday)";
|
||||||
|
} else {
|
||||||
|
s << "MON";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((businessHours & BusinessHours::TUE) == BusinessHours::TUE) {
|
||||||
|
if ((businessHours & BusinessHours::OFFICIAL_HOLIDAY) == BusinessHours::OFFICIAL_HOLIDAY) {
|
||||||
|
s << "TUE (Holiday)";
|
||||||
|
} else {
|
||||||
|
s << "TUE";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((businessHours & BusinessHours::WED) == BusinessHours::WED) {
|
||||||
|
if ((businessHours & BusinessHours::OFFICIAL_HOLIDAY) == BusinessHours::OFFICIAL_HOLIDAY) {
|
||||||
|
s << "WED (Holiday)";
|
||||||
|
} else {
|
||||||
|
s << "WED";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((businessHours & BusinessHours::THU) == BusinessHours::THU) {
|
||||||
|
if ((businessHours & BusinessHours::OFFICIAL_HOLIDAY) == BusinessHours::OFFICIAL_HOLIDAY) {
|
||||||
|
s << "THU (Holiday)";
|
||||||
|
} else {
|
||||||
|
s << "THU";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((businessHours & BusinessHours::FRI) == BusinessHours::FRI) {
|
||||||
|
if ((businessHours & BusinessHours::OFFICIAL_HOLIDAY) == BusinessHours::OFFICIAL_HOLIDAY) {
|
||||||
|
s << "FRI (Holiday)";
|
||||||
|
} else {
|
||||||
|
s << "FRI";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((businessHours & BusinessHours::SAT) == BusinessHours::SAT) {
|
||||||
|
if ((businessHours & BusinessHours::OFFICIAL_HOLIDAY) == BusinessHours::OFFICIAL_HOLIDAY) {
|
||||||
|
s << "SAT (Holiday)";
|
||||||
|
} else {
|
||||||
|
s << "SAT";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((businessHours & BusinessHours::SUN) == BusinessHours::SUN) {
|
||||||
|
if ((businessHours & BusinessHours::OFFICIAL_HOLIDAY) == BusinessHours::OFFICIAL_HOLIDAY) {
|
||||||
|
s << "SUN (Holiday)";
|
||||||
|
} else {
|
||||||
|
s << "SUN";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user