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.

87 lines
1.3 KiB
C++

#include "cvacation.h"
#include <QSqlQuery>
#include <QSqlError>
#include <QDebug>
cVacation::cVacation(const QDate& date, QObject *parent) :
QObject(parent),
m_date(date),
m_days(0)
{
}
QDate cVacation::date()
{
return(m_date);
}
void cVacation::setDays(qint16 days)
{
m_days = days;
}
qint16 cVacation::days()
{
return(m_days);
}
bool cVacationList::load()
{
QSqlQuery query;
query.prepare("SELECT ab, "
" days "
"FROM vacation "
"ORDER BY ab;");
if(!query.exec())
{
qDebug() << "SELECT FROM vacation: " << query.lastError().text();
return(false);
}
while(query.next())
{
cVacation* lpVacation = add(query.value("ab").toDate());
if(lpVacation)
{
lpVacation->setDays(static_cast<qint16>(query.value("days").toInt()));
}
}
return(true);
}
cVacation* cVacationList::add(const QDate& date)
{
if(find(date))
return(nullptr);
cVacation* lpVacation = new cVacation(date);
append(lpVacation);
return(lpVacation);
}
cVacation* cVacationList::find(const QDate& date)
{
for(cVacationList::iterator i = begin();i != end(); i++)
{
if((*i)->date() == date)
return(*i);
}
return(nullptr);
}
cVacation* cVacationList::get(const QDate& date)
{
for(cVacationList::iterator i = begin();i != end(); i++)
{
if((*i)->date() <= date)
return(*i);
}
return(nullptr);
}