NFC support
[badge] / badgedata.cpp
index 3c89c83..001d9f2 100644 (file)
@@ -1,31 +1,93 @@
 #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;
+    //qDebug() << "setTimetable TIME " << tt.entrance.toString(Qt::TextDate) << endl;
     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;
+            //qDebug() << "getTimetable TIME " << tt.entrance.toString(Qt::TextDate) << endl;
+            data.close();
+            return true;
+        }
+    }
     data.close();
-    return true;
+    return false;
+}
+
+int 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()) {
+        //qDebug() << "NEL WHILE\n";
+        out >> dum;
+        //qDebug() << "day " << dum.day.toString(Qt::TextDate) << " BEGIN " << begin.toString("yyyy-M-d") << " END " << end.toString("yyyy-M-d") << endl;
+        if (dum.day >=  begin && dum.day <= end) {
+            totalInSeconds += dum.entrance.secsTo(dum.exit);
+            //qDebug() << "FOUND " << totalInSeconds << endl;
+            if (dum.firstPause != dum.endFirstPause) {
+                totalInSeconds -= dum.firstPause.secsTo(dum.endFirstPause);
+            }
+
+            if (dum.secondPause != dum.endSecondPause) {
+                totalInSeconds -= dum.secondPause.secsTo(dum.endSecondPause);
+            }
+
+                //qDebug() << "TOT SEC = " << totalInSeconds << endl;
+
+        }
+
+    }
+    data.close();
+    //total.setHMS((int)(totalInSeconds / 3600), (int) ((totalInSeconds % 3600) / 60), 0);
+    return totalInSeconds;
 }