#include "badgedata.h"
#include <QFile>
#include <QDir>
+#include <QDebug>
BadgeData::BadgeData()
{
- // se il file non esiste crealo per tutto l'anno
- // se esiste, ma non c'e' nulla per questo anno, crea tutto l'anno
+
}
-bool BadgeData::setTimetable(TimeTable in)
+bool BadgeData::setTimetable(TimeTable tt)
{
QFile data;
+ TimeTable dum;
+ qint64 pos = 0;
+
data.setFileName(QDir::homePath() + QDir::separator() + "badge.data");
data.open(QIODevice::ReadWrite);
QDataStream out(&data);
while (!data.atEnd()) {
+ out >> dum;
+ if (dum.day == tt.day) {
+ data.seek(pos);
+ out << tt;
+ data.close();
+ return true;
+ }
+ pos = data.pos();
}
+ out << tt;
data.close();
return true;
}
-bool BadgeData::getTimetable(TimeTable &out)
+bool BadgeData::getTimetable(TimeTable &tt)
{
QFile data;
+ TimeTable dum;
data.setFileName(QDir::homePath() + QDir::separator() + "badge.data");
data.open(QIODevice::ReadOnly);
+ QDataStream out(&data);
+
+
+
+ while (!data.atEnd()) {
+ out >> dum;
+ if (dum.day == tt.day) {
+ tt = dum;
+ data.close();
+ return true;
+ }
+ }
data.close();
- return true;
+ return false;
+}
+
+QTime BadgeData::totalTime(QDate begin, QDate end)
+{
+ QFile data;
+ TimeTable dum;
+ QTime total(0, 0, 0, 0);
+
+ int totalInSeconds = 0;
+
+ data.setFileName(QDir::homePath() + QDir::separator() + "badge.data");
+ data.open(QIODevice::ReadOnly);
+ QDataStream out(&data);
+ while (!data.atEnd()) {
+ out >> dum;
+ if (dum.day >= begin && dum.day <= end) {
+ totalInSeconds += dum.entrance.secsTo(dum.exit);
+ if (dum.firstPause != dum.endFirstPause) {
+ totalInSeconds -= dum.firstPause.secsTo(dum.endFirstPause);
+ }
+
+ if (dum.secondPause != dum.endSecondPause) {
+ totalInSeconds -= dum.secondPause.secsTo(dum.endSecondPause);
+ }
+
+
+
+ }
+
+ }
+ data.close();
+ total.setHMS((int)(totalInSeconds / 3600), (int) ((totalInSeconds % 3600) / 60), 0);
+ return total;
}