#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; }