168 lines
3.0 KiB
C++
168 lines
3.0 KiB
C++
#include "week.h"
|
|
|
|
Week::Week()
|
|
{
|
|
mon = new Day();
|
|
tue = new Day();
|
|
wed = new Day();
|
|
thu = new Day();
|
|
fri = new Day();
|
|
time_delta = 0;
|
|
week_number = 0;
|
|
}
|
|
|
|
Week::Week(Week *old)
|
|
{
|
|
mon = new Day();
|
|
tue = new Day();
|
|
wed = new Day();
|
|
thu = new Day();
|
|
fri = new Day();
|
|
time_delta = 0;
|
|
week_number = 0;
|
|
update(old);
|
|
}
|
|
|
|
Week::~Week()
|
|
{
|
|
delete mon;
|
|
delete tue;
|
|
delete wed;
|
|
delete thu;
|
|
delete fri;
|
|
}
|
|
|
|
Week* Week::from_json(QJsonObject obj) {
|
|
Week *w = new Week();
|
|
w->mon = Day::from_json(obj[MONDAY].toObject());
|
|
w->tue = Day::from_json(obj[TUESDAY].toObject());
|
|
w->wed = Day::from_json(obj[WEDNESDAY].toObject());
|
|
w->thu = Day::from_json(obj[THURDAY].toObject());
|
|
w->fri = Day::from_json(obj[FRIDAY].toObject());
|
|
w->time_delta = obj[TIME_DELTA].toInt(0);
|
|
w->week_number = obj[WEEK_NUMBER].toInt();
|
|
return w;
|
|
}
|
|
|
|
QJsonObject Week::to_json() {
|
|
QJsonObject obj {
|
|
{MONDAY, mon->to_json()},
|
|
{TUESDAY, tue->to_json()},
|
|
{WEDNESDAY, wed->to_json()},
|
|
{THURDAY, thu->to_json()},
|
|
{FRIDAY, fri->to_json()},
|
|
{TIME_DELTA, time_delta},
|
|
{WEEK_NUMBER, week_number}
|
|
};
|
|
return obj;
|
|
}
|
|
|
|
double Week::total() {
|
|
return mon->get_total() + tue->get_total() + wed->get_total() + thu->get_total() + fri->get_total();
|
|
}
|
|
|
|
double Week::total(Week *wtemplate)
|
|
{
|
|
double t = 0.0;
|
|
if (mon->not_working()) {
|
|
t += wtemplate->mon->get_total();
|
|
} else {
|
|
t += mon->get_total();
|
|
}
|
|
if (tue->not_working()) {
|
|
t += wtemplate->tue->get_total();
|
|
} else {
|
|
t += tue->get_total();
|
|
}
|
|
if (wed->not_working()) {
|
|
t += wtemplate->wed->get_total();
|
|
} else {
|
|
t += wed->get_total();
|
|
}
|
|
if (thu->not_working()) {
|
|
t += wtemplate->thu->get_total();
|
|
} else {
|
|
t += thu->get_total();
|
|
}
|
|
if (fri->not_working()) {
|
|
t += wtemplate->fri->get_total();
|
|
} else {
|
|
t += fri->get_total();
|
|
}
|
|
return t;
|
|
}
|
|
|
|
Day* Week::getMon() {
|
|
return mon;
|
|
}
|
|
|
|
Day* Week::getTue() {
|
|
return tue;
|
|
}
|
|
|
|
Day* Week::getWed() {
|
|
return wed;
|
|
}
|
|
|
|
Day* Week::getThu() {
|
|
return thu;
|
|
}
|
|
|
|
Day* Week::getFri() {
|
|
return fri;
|
|
}
|
|
|
|
void Week::update(Week *old)
|
|
{
|
|
mon = new Day(old->mon);
|
|
tue = new Day(old->tue);
|
|
wed = new Day(old->wed);
|
|
thu = new Day(old->thu);
|
|
fri = new Day(old->fri);
|
|
time_delta = old->time_delta;
|
|
week_number = old->week_number;
|
|
}
|
|
|
|
int Week::getWeekNumber() {
|
|
return week_number;
|
|
}
|
|
|
|
int Week::getTimeDelta()
|
|
{
|
|
return time_delta;
|
|
}
|
|
|
|
float Week::getTimeDeltaInHours()
|
|
{
|
|
return time_delta/60.0;
|
|
}
|
|
|
|
void Week::setMon(Day* value) {
|
|
mon = value;
|
|
}
|
|
|
|
void Week::setTue(Day* value) {
|
|
tue = value;
|
|
}
|
|
|
|
void Week::setWed(Day* value) {
|
|
wed = value;
|
|
}
|
|
|
|
void Week::setThu(Day* value) {
|
|
thu = value;
|
|
}
|
|
|
|
void Week::setFri(Day* value) {
|
|
fri = value;
|
|
}
|
|
|
|
void Week::setWeekNumber(int value) {
|
|
week_number = value;
|
|
}
|
|
|
|
void Week::setTimeDelta(int value)
|
|
{
|
|
time_delta = value;
|
|
}
|