You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
189 lines
3.2 KiB
C++
189 lines
3.2 KiB
C++
#include "cdailyworking.h"
|
|
|
|
#include <QSqlQuery>
|
|
#include <QSqlError>
|
|
|
|
#include <QDebug>
|
|
|
|
|
|
cDailyWorking::cDailyWorking(const QDate& date, QObject *parent) :
|
|
QObject(parent),
|
|
m_date(date),
|
|
m_montag(QTime(7, 42, 0)),
|
|
m_dienstag(QTime(7, 42, 0)),
|
|
m_mittwoch(QTime(7, 42, 0)),
|
|
m_donnerstag(QTime(7, 42, 0)),
|
|
m_freitag(QTime(7, 42, 0)),
|
|
m_samstag(QTime(0, 0, 0)),
|
|
m_sonntag(QTime(0, 0, 0))
|
|
{
|
|
}
|
|
|
|
QDate cDailyWorking::date()
|
|
{
|
|
return(m_date);
|
|
}
|
|
|
|
void cDailyWorking::setMontag(const QTime& time)
|
|
{
|
|
m_montag = time;
|
|
}
|
|
|
|
QTime cDailyWorking::montag()
|
|
{
|
|
return(m_montag);
|
|
}
|
|
|
|
void cDailyWorking::setDienstag(const QTime& time)
|
|
{
|
|
m_dienstag = time;
|
|
}
|
|
|
|
QTime cDailyWorking::dienstag()
|
|
{
|
|
return(m_dienstag);
|
|
}
|
|
|
|
void cDailyWorking::setMittwoch(const QTime& time)
|
|
{
|
|
m_mittwoch = time;
|
|
}
|
|
|
|
QTime cDailyWorking::mittwoch()
|
|
{
|
|
return(m_mittwoch);
|
|
}
|
|
|
|
void cDailyWorking::setDonnerstag(const QTime& time)
|
|
{
|
|
m_donnerstag = time;
|
|
}
|
|
|
|
QTime cDailyWorking::donnerstag()
|
|
{
|
|
return(m_donnerstag);
|
|
}
|
|
|
|
void cDailyWorking::setFreitag(const QTime& time)
|
|
{
|
|
m_freitag = time;
|
|
}
|
|
|
|
QTime cDailyWorking::freitag()
|
|
{
|
|
return(m_freitag);
|
|
}
|
|
|
|
void cDailyWorking::setSamstag(const QTime& time)
|
|
{
|
|
m_samstag = time;
|
|
}
|
|
|
|
QTime cDailyWorking::samstag()
|
|
{
|
|
return(m_samstag);
|
|
}
|
|
|
|
void cDailyWorking::setSonntag(const QTime& time)
|
|
{
|
|
m_sonntag = time;
|
|
}
|
|
|
|
QTime cDailyWorking::sonntag()
|
|
{
|
|
return(m_sonntag);
|
|
}
|
|
|
|
QTime cDailyWorking::soll(qint16 day)
|
|
{
|
|
switch(day)
|
|
{
|
|
case 1:
|
|
return(montag());
|
|
case 2:
|
|
return(dienstag());
|
|
case 3:
|
|
return(mittwoch());
|
|
case 4:
|
|
return(donnerstag());
|
|
case 5:
|
|
return(freitag());
|
|
case 6:
|
|
return(samstag());
|
|
case 7:
|
|
return(sonntag());
|
|
default:
|
|
return(QTime(0, 0, 0));
|
|
}
|
|
}
|
|
|
|
bool cDailyWorkingList::load()
|
|
{
|
|
QSqlQuery query;
|
|
|
|
query.prepare("SELECT ab, "
|
|
" montag, "
|
|
" dienstag, "
|
|
" mittwoch, "
|
|
" donnerstag, "
|
|
" freitag, "
|
|
" samstag, "
|
|
" sonntag "
|
|
"FROM dailyWorking "
|
|
"ORDER BY ab;");
|
|
|
|
if(!query.exec())
|
|
{
|
|
qDebug() << "SELECT FROM dailyWorking: " << query.lastError().text();
|
|
return(false);
|
|
}
|
|
|
|
while(query.next())
|
|
{
|
|
cDailyWorking* lpWorking = add(query.value("ab").toDate());
|
|
|
|
if(lpWorking)
|
|
{
|
|
lpWorking->setMontag(query.value("montag").toTime());
|
|
lpWorking->setDienstag(query.value("dienstag").toTime());
|
|
lpWorking->setMittwoch(query.value("mittwoch").toTime());
|
|
lpWorking->setDonnerstag(query.value("donnerstag").toTime());
|
|
lpWorking->setFreitag(query.value("freitag").toTime());
|
|
lpWorking->setSamstag(query.value("samstag").toTime());
|
|
lpWorking->setSonntag(query.value("sonntag").toTime());
|
|
}
|
|
}
|
|
|
|
return(true);
|
|
}
|
|
|
|
cDailyWorking* cDailyWorkingList::add(const QDate& date)
|
|
{
|
|
if(find(date))
|
|
return(nullptr);
|
|
|
|
cDailyWorking* lpWorking = new cDailyWorking(date);
|
|
append(lpWorking);
|
|
return(lpWorking);
|
|
}
|
|
|
|
cDailyWorking* cDailyWorkingList::find(const QDate& date)
|
|
{
|
|
for(cDailyWorkingList::iterator i = begin();i != end(); i++)
|
|
{
|
|
if((*i)->date() == date)
|
|
return(*i);
|
|
}
|
|
return(nullptr);
|
|
}
|
|
|
|
cDailyWorking* cDailyWorkingList::get(const QDate& date)
|
|
{
|
|
for(cDailyWorkingList::iterator i = begin();i != end(); i++)
|
|
{
|
|
if((*i)->date() <= date)
|
|
return(*i);
|
|
}
|
|
return(nullptr);
|
|
}
|