NFC support
[badge] / badgedata.cpp
1 #include "badgedata.h"
2 #include <QFile>
3 #include <QDir>
4 #include <QDebug>
5
6 BadgeData::BadgeData()
7 {
8
9 }
10
11 bool BadgeData::setTimetable(TimeTable tt)
12 {
13     QFile data;
14     TimeTable dum;
15     qint64 pos = 0;
16     //qDebug() << "setTimetable TIME " << tt.entrance.toString(Qt::TextDate) << endl;
17     data.setFileName(QDir::homePath() + QDir::separator() + "badge.data");
18     data.open(QIODevice::ReadWrite);
19     QDataStream out(&data);
20     while (!data.atEnd()) {
21         out >> dum;
22         if (dum.day == tt.day) {
23             data.seek(pos);
24
25             out << tt;
26             data.close();
27             return true;
28         }
29          pos = data.pos();
30     }
31     out << tt;
32     data.close();
33     return true;
34 }
35
36 bool BadgeData::getTimetable(TimeTable &tt)
37 {
38     QFile data;
39     TimeTable dum;
40     data.setFileName(QDir::homePath() + QDir::separator() + "badge.data");
41     data.open(QIODevice::ReadOnly);
42     QDataStream out(&data);
43
44
45
46     while (!data.atEnd()) {
47         out >> dum;
48         if (dum.day == tt.day) {
49             tt = dum;
50             //qDebug() << "getTimetable TIME " << tt.entrance.toString(Qt::TextDate) << endl;
51             data.close();
52             return true;
53         }
54     }
55     data.close();
56     return false;
57 }
58
59 int BadgeData::totalTime(QDate begin, QDate end)
60 {
61     QFile data;
62     TimeTable dum;
63     QTime total(0, 0, 0, 0);
64
65     int totalInSeconds = 0;
66
67     data.setFileName(QDir::homePath() + QDir::separator() + "badge.data");
68     data.open(QIODevice::ReadOnly);
69     QDataStream out(&data);
70     while (!data.atEnd()) {
71         //qDebug() << "NEL WHILE\n";
72         out >> dum;
73         //qDebug() << "day " << dum.day.toString(Qt::TextDate) << " BEGIN " << begin.toString("yyyy-M-d") << " END " << end.toString("yyyy-M-d") << endl;
74         if (dum.day >=  begin && dum.day <= end) {
75             totalInSeconds += dum.entrance.secsTo(dum.exit);
76             //qDebug() << "FOUND " << totalInSeconds << endl;
77             if (dum.firstPause != dum.endFirstPause) {
78                 totalInSeconds -= dum.firstPause.secsTo(dum.endFirstPause);
79             }
80
81             if (dum.secondPause != dum.endSecondPause) {
82                 totalInSeconds -= dum.secondPause.secsTo(dum.endSecondPause);
83             }
84
85                 //qDebug() << "TOT SEC = " << totalInSeconds << endl;
86
87         }
88
89     }
90     data.close();
91     //total.setHMS((int)(totalInSeconds / 3600), (int) ((totalInSeconds % 3600) / 60), 0);
92     return totalInSeconds;
93 }