/*
Copyright 2010-2012 Grégory Soutadé
This file is part of KissCount.
KissCount is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
KissCount is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with KissCount. If not, see .
*/
#ifndef ACCOUNT_H
#define ACCOUNT_H
#include
struct Account {
int id;
QString name;
QString number;
bool shared;
bool blocked;
bool _default;
bool is_owner;
bool _virtual;
bool hidden;
QDate start_date;
QDate end_date;
bool operator() (const Account& ac1, const Account& ac2) const
{
if (ac1._default) return true;
if (ac2._default) return false;
if (!ac1.blocked && ac2.blocked) return true;
if (ac1.blocked && !ac2.blocked) return false;
if (!ac1._virtual && ac2._virtual) return true;
if (ac1._virtual && !ac2._virtual) return false;
if (!ac1.hidden && ac2.hidden) return true;
if (ac1.hidden && !ac2.hidden) return false;
return ac1.name < ac2.name;
}
bool operator == (int accountId)
{
return id == accountId;
}
bool validAt(int day, int month, int year)
{
QDate targetDate = QDate(year, month+1, day+1);
return (targetDate >= start_date &&
targetDate <= end_date);
}
bool validAt(int month, int year)
{
QDate targetDateS = QDate(year, month+1, 01);
QDate targetDateE = targetDateS.addMonths(1).addDays(-1);
return !(end_date < targetDateS ||
start_date > targetDateE);
}
bool validAt(int month_start, int year_start,
int month_end, int year_end)
{
QDate targetDateS = QDate(year_start, month_start+1, 01);
QDate targetDateE = QDate(year_end, month_end+1, 01);
targetDateE = targetDateE.addMonths(1).addDays(-1);
return !(end_date < targetDateS ||
start_date > targetDateE);
}
};
#endif