16Database *Database::m_instance =
nullptr;
19Database::~Database() {
24Database::Database(QObject *parent) : QObject(parent) {
25 if (m_instance ==
nullptr) {
30 m_dbplugin =
nullptr;;
31 setObjectName(QString(
"Database %1").arg((quint64)QThread::currentThread()));
37bool Database::open() {
38 QString plugin = MSETTINGS->dbPlugin();
44 if (m_dbplugin !=
nullptr) {
45 m_dbplugin->deleteLater();
48 if (plugin ==
"fotomon") {
49 m_dbplugin =
new Db::Plugins::DatabasePluginFotomon(
this);
52 if (plugin ==
"postgres") {
53 m_dbplugin =
new Db::Plugins::DatabasePluginPostgres(
this);
56 if (m_dbplugin ==
nullptr) {
57 PDEBUG <<
"m_dbplugin == nullptr";
62 m_dbplugin->setDatabaseName ( MSETTINGS->dbName() );
63 m_dbplugin->setHostname ( MSETTINGS->dbServer() );
64 m_dbplugin->setPort ( MSETTINGS->dbPort() );
65 m_dbplugin->setUserName ( MSETTINGS->dbUser() );
66 m_dbplugin->setPassword ( MSETTINGS->dbPassword() );
67 bool rc = m_dbplugin->open();
74Database *Database::instance(QObject *parent) {
75 if (m_instance ==
nullptr) {
76 Q_ASSERT(parent !=
nullptr);
85Database *Database::create(QObject *parent) {
86 Database *db =
new Database(parent);
91Database *Database::create(QObject *parent,
const AuthenticatedUser *user) {
92 Database *db =
new Database(parent);
93 db->m_dbplugin->setAuthenticatedUser(user);
98void Database::close() {
99 if (m_dbplugin !=
nullptr) {
106QString Database::connectionName()
const {
107 return m_dbplugin->connectionName();
111void Database::begin() {
112 return m_dbplugin->begin();
116void Database::commit() {
117 return m_dbplugin->commit();
121void Database::changePassword(
const QString& login,
const QString& oldpassword,
const QString& newpassword) {
122 m_dbplugin->changePassword(login, oldpassword, newpassword);
126QList<Dbt::Users> Database::authenticate(
const QString& user,
const QString& password) {
127 return m_dbplugin->authenticate(user,password);
131QList<Dbt::Users> Database::users(
int id){
132 return m_dbplugin->users(
id);
136QList<Dbt::UsersCategories> Database::usersCategories(
int id,
int user,
const QString& category){
137 return m_dbplugin->usersCategories(
id, user, category);
141QList<Dbt::Categories> Database::categories(
const QString&
id) {
142 return m_dbplugin->categories(
id);
146QList<Dbt::Categories> Database::subcategories(
const QString&
id) {
147 return m_dbplugin->subcategories(
id);
151QList<Dbt::Categories> Database::siblingcategories(
const QString&
id) {
152 return m_dbplugin->siblingcategories(
id);
156QList<Dbt::Categories> Database::categoriesToRoot(
const QString&
id) {
157 return m_dbplugin->categoriesToRoot(
id);
161QList<Dbt::Statuses> Database::statuses(
const QString&
id) {
162 return m_dbplugin->statuses(
id);
166QList<Dbt::Statuses> Database::statuses(
const QString& category,
const QString& prevStatus) {
167 return m_dbplugin->statuses(category, prevStatus);
171QList<Dbt::Statuses> Database::statuses(
const QString& category,
const QStringList& prevStatuses) {
172 return m_dbplugin->statuses(category, prevStatuses);
176QList<Dbt::StatusTemplates> Database::statusTemplates(
int id) {
177 return m_dbplugin->statusTemplates(
id);
181QList<Dbt::StatusOrder> Database::statusOrder(
const QString&
id) {
182 return m_dbplugin->statusOrder(
id);
186QList<Dbt::Tickets> Database::tickets(
int ticket,
bool all) {
187 return m_dbplugin->tickets(ticket, all);
191QList<Dbt::Tickets> Database::tickets(
bool all) {
192 return m_dbplugin->tickets(all);
196QList<Dbt::Tickets> Database::tickets(
const Dbt::Categories& category,
bool all) {
197 return m_dbplugin->tickets(category, all);
201QList<Dbt::TicketsVw> Database::ticketsVw(
int ticket,
bool all) {
202 return m_dbplugin->ticketsVw(ticket, all);
206QList<Dbt::TicketsVw> Database::ticketsVw(
bool all) {
207 return m_dbplugin->ticketsVw(all);
211QList<Dbt::TicketsVw> Database::ticketsVw(
const Dbt::Categories& category,
bool all) {
212 return m_dbplugin->ticketsVw(category, all);
216QList<Dbt::TicketStatus> Database::ticketStatus(
int ticket,
bool all) {
217 return m_dbplugin->ticketStatus(ticket, all);
221QList<Dbt::TicketStatus> Database::ticketStatus(
int id) {
222 return m_dbplugin->ticketStatus(
id);
226QList<Dbt::TicketStatus> Database::ticketStatus(
bool all) {
227 return m_dbplugin->ticketStatus(all);
231QList<Dbt::TicketValues> Database::ticketValues(
int id) {
232 return m_dbplugin->ticketValues(
id);
236QList<Dbt::TicketValues> Database::ticketValues(
bool all) {
237 return m_dbplugin->ticketValues(all);
241QList<Dbt::TicketValues> Database::ticketValues(
int ticket,
bool all) {
242 return m_dbplugin->ticketValues(ticket, all);
246QList<Dbt::TicketFiles> Database::ticketFiles(
int id) {
247 return m_dbplugin->ticketFiles(
id);
251QList<Dbt::TicketFiles> Database::ticketFiles(
bool all) {
252 return m_dbplugin->ticketFiles(all);
256QList<Dbt::TicketFiles> Database::ticketFiles(
int ticket,
bool all) {
257 return m_dbplugin->ticketFiles(ticket, all);
261QList<Dbt::TicketTimesheets> Database::ticketTimesheets(
int id) {
262 return m_dbplugin->ticketTimesheets(
id);
266QList<Dbt::TicketTimesheets> Database::ticketTimesheets(
bool all) {
267 return m_dbplugin->ticketTimesheets(all);
271QList<Dbt::TicketTimesheets> Database::ticketTimesheets(
int ticket,
bool all) {
272 return m_dbplugin->ticketTimesheets(ticket, all);
276QList<Dbt::TicketTimesheets> Database::runningTimesheets(
int ticket) {
277 return m_dbplugin->runningTimesheets(ticket);
281QList<Dbt::TicketTimesheets> Database::startTimesheet(
int ticket) {
282 return m_dbplugin->startTimesheet(ticket);
286QList<Dbt::TicketTimesheets> Database::stopTimesheet(
int ticket) {
287 return m_dbplugin->stopTimesheet(ticket);
291QList<Dbt::TicketTimesheets> Database::toggleTimesheet(
int ticket) {
292 return m_dbplugin->toggleTimesheet(ticket);
296QList<Dbt::ClientSettings> Database::clientSettings() {
297 return m_dbplugin->clientSettings();
301QList<Dbt::ServerInfo> Database::serverInfo() {
302 return m_dbplugin->serverInfo();
306QList<Dbt::Overview> Database::overview(
const QString& category,
const QStringList& statuses) {
307 return m_dbplugin->overview(category, statuses);
311QList<Dbt::Overview> Database::overview(
const QString& overviewId) {
312 return m_dbplugin->overview(overviewId);
316QList<Dbt::OverviewList> Database::overviewList() {
317 return m_dbplugin->overviewList();
321QList<Dbt::CategoriesOverview> Database::categoriesOverview(
const QStringList& statuses) {
322 return m_dbplugin->categoriesOverview(statuses);
326QList<Dbt::Departments> Database::departments(
int department) {
327 return m_dbplugin->departments(department);
330QList<Dbt::Employees> Database::employees(
int e) {
331 return m_dbplugin->employees(e);
334QList<Dbt::Doors> Database::doors(
int d) {
335 return m_dbplugin->doors(d);
338QList<Dbt::EventTypes> Database::eventTypes(
const QString& t) {
339 return m_dbplugin->eventTypes(t);
342QList<Dbt::Events> Database::events(
int t,
int employee,
const QDate& month,
int limit,
int offset) {
343 return m_dbplugin->events(t, employee, month, limit, offset);
346QList<Dbt::Rfids> Database::rfids(
int r) {
347 return m_dbplugin->rfids(r);
350QList<Dbt::Rfids> Database::rfidsById(
const QString& rfidId) {
351 return m_dbplugin->rfidsById(rfidId);
354QList<Dbt::Holidays> Database::holidays(
const QDate& d) {
355 return m_dbplugin->holidays(d);
358QList<Dbt::WorkCalendar> Database::workCalendar(
const QDate& p) {
359 return m_dbplugin->workCalendar(p);
362void Database::generateWorkCalendar(
int year) {
363 m_dbplugin->generateWorkCalendar(year);
366void Database::copyHolidays(
int fromYear,
int toYear) {
367 m_dbplugin->copyHolidays(fromYear, toYear);
370QList<Dbt::EmployeeCanOpenDoor> Database::employeeCanOpenDoor(
const Dbt::EmployeeCanOpenDoor& p) {
371 return m_dbplugin->employeeCanOpenDoor(p);
374QList<Dbt::EmployeeHasRfid> Database::employeeHasRfid(
const Dbt::EmployeeHasRfid& p) {
375 return m_dbplugin->employeeHasRfid(p);
378QList<Dbt::DepartmentHasMember> Database::departmentHasMember(
const Dbt::DepartmentHasMember& p) {
379 return m_dbplugin->departmentHasMember(p);
382QList<Dbt::DepartmentHasManager> Database::departmentHasManager(
const Dbt::DepartmentHasManager& p) {
383 return m_dbplugin->departmentHasManager(p);
386QList<Dbt::AttendanceChecklist> Database::attendanceChecklist(
int employee,
const QDate& month) {
387 return m_dbplugin->attendanceChecklist(employee, month);
390QList<Dbt::Employees> Database::attendanceChecklist(
const QDate& month) {
391 return m_dbplugin->attendanceChecklist(month);
394QList<Dbt::AttendanceSummary> Database::attendanceSummary(
int employee,
const QDate& month) {
395 return m_dbplugin->attendanceSummary(employee, month);
398QList<Dbt::AttendancePresent> Database::attendancePresent() {
399 return m_dbplugin->attendancePresent();
402QList<Dbt::AttendanceRecent> Database::attendanceRecent(
int employee) {
403 return m_dbplugin->attendanceRecent(employee);
406QVariant Database::save(
const Dbt::AttendanceSummary& data) {
407 return m_dbplugin->save(data);
410Dbt::UserEmployeeAccess Database::canAccessAttendance(
int employee) {
411 return m_dbplugin->canAccessAttendance(employee);