Timesheets-Server
Timesheets server
Načítám...
Vyhledávám...
Nebylo nic nalezeno
database.h
Zobrazit dokumentaci tohoto souboru.
1
6#ifndef _Database_H_
7#define _Database_H_
8
9#include <QObject>
10#include <QVariant>
11#include <QStringList>
12#include <QDate>
13#include "authenticateduser.h"
14#include "dbt.h"
15#include "database_plugin.h"
16
17
18namespace Db {
19
20struct PluginDescription {
21 QString name;
22 QString description;
23 PluginDescription(const QString& n, const QString& d) { name=n; description=d; }
24};
25
29class Database : public QObject {
30 Q_OBJECT
32
33 public:
34
35 ~Database();
36 static Database *instance(QObject *parent = nullptr);
37 static Database *create(QObject *parent);
38 static Database *create(QObject *parent, const AuthenticatedUser *u);
39 bool isOpen() const { return m_isOpen; }
40 QString connectionName() const;
41
42 void changePassword(const QString& login, const QString& oldpassword, const QString& newpassword);
43 QList<Dbt::Users> authenticate(const QString& user, const QString& password);
44 QList<Dbt::Users> users(int id = -1);
45 QList<Dbt::Categories> categories(const QString& id = QString());
46 QList<Dbt::Categories> categoriesToRoot(const QString& id);
47 QList<Dbt::Categories> subcategories(const QString& parent = QString());
48 QList<Dbt::Categories> siblingcategories(const QString& parent = QString());
49 QList<Dbt::UsersCategories> usersCategories(int id = -1, int user = -1, const QString& category = QString());
50 QList<Dbt::CategoriesOverview> categoriesOverview(const QStringList& statuses);
51 QList<Dbt::StatusOrder> statusOrder(const QString& id = QString());
52 QList<Dbt::Statuses> statuses(const QString& id = QString());
53 QList<Dbt::Statuses> statuses(const QString& category, const QString& prevStatus);
54 QList<Dbt::Statuses> statuses(const QString& category, const QStringList& prevStatuses);
55
56 QList<Dbt::StatusTemplates> statusTemplates(int id = -1);
57
58 QList<Dbt::Tickets> tickets(bool all = false);
59 QList<Dbt::Tickets> tickets(int ticket = -1, bool all = false);
60 QList<Dbt::Tickets> tickets(const Dbt::Categories& category, bool all = false);
61
62 QList<Dbt::TicketsVw> ticketsVw(bool all = false);
63 QList<Dbt::TicketsVw> ticketsVw(int ticket = -1, bool all = false);
64 QList<Dbt::TicketsVw> ticketsVw(const Dbt::Categories& category, bool all = false);
65
66 QList<Dbt::TicketStatus> ticketStatus(int id);
67 QList<Dbt::TicketStatus> ticketStatus(bool all = false);
68 QList<Dbt::TicketStatus> ticketStatus(int ticket, bool all);
69
70 QList<Dbt::TicketValues> ticketValues(int id);
71 QList<Dbt::TicketValues> ticketValues(bool all = false);
72 QList<Dbt::TicketValues> ticketValues(int ticket, bool all);
73
74 QList<Dbt::TicketFiles> ticketFiles(int id);
75 QList<Dbt::TicketFiles> ticketFiles(bool all = false);
76 QList<Dbt::TicketFiles> ticketFiles(int ticket, bool all);
77
78 QList<Dbt::TicketTimesheets> ticketTimesheets(int id);
79 QList<Dbt::TicketTimesheets> ticketTimesheets(bool all = false);
80 QList<Dbt::TicketTimesheets> ticketTimesheets(int ticket, bool all);
81 QList<Dbt::TicketTimesheets> runningTimesheets(int ticket = -1);
82 QList<Dbt::TicketTimesheets> startTimesheet(int ticket);
83 QList<Dbt::TicketTimesheets> stopTimesheet(int ticket);
84 QList<Dbt::TicketTimesheets> toggleTimesheet(int ticket);
85
86 QList<Dbt::ClientSettings> clientSettings();
87 QList<Dbt::Overview> overview(const QString& category, const QStringList& statuses);
88 QList<Dbt::Overview> overview(const QString& overviewId);
89 QList<Dbt::OverviewList> overviewList();
90 QList<Dbt::ServerInfo> serverInfo();
91
92 QList<Dbt::Departments> departments(int department = -1);
93 QList<Dbt::Employees> employees(int employees = -1);
94 QList<Dbt::Doors> doors(int door = -1);
95 QList<Dbt::EventTypes> eventTypes(const QString& eventType = QString());
96 QList<Dbt::Events> events(int event = -1,
97 int employee = -1,
98 const QDate& month = QDate(),
99 int limit = -1,
100 int offset = -1);
101 QList<Dbt::Rfids> rfids(int rfid = -1);
102 QList<Dbt::Rfids> rfidsById(const QString& rfidId);
103 QList<Dbt::Holidays> holidays(const QDate& date = QDate());
104 QList<Dbt::WorkCalendar> workCalendar(const QDate& period = QDate());
105 void generateWorkCalendar(int year);
106 void copyHolidays(int fromYear, int toYear);
107 QList<Dbt::EmployeeCanOpenDoor> employeeCanOpenDoor(const Dbt::EmployeeCanOpenDoor&);
108 QList<Dbt::EmployeeHasRfid> employeeHasRfid(const Dbt::EmployeeHasRfid&);
109 QList<Dbt::DepartmentHasMember> departmentHasMember(const Dbt::DepartmentHasMember&);
110 QList<Dbt::DepartmentHasManager> departmentHasManager(const Dbt::DepartmentHasManager&);
111
112 QList<Dbt::AttendanceChecklist> attendanceChecklist(int employee, const QDate& month);
113 QList<Dbt::Employees> attendanceChecklist(const QDate& month);
114 QList<Dbt::AttendanceSummary> attendanceSummary(int employee, const QDate& month);
115 QList<Dbt::AttendancePresent> attendancePresent();
116 QList<Dbt::AttendanceRecent> attendanceRecent(int employee);
117
118 Dbt::UserEmployeeAccess canAccessAttendance(int employee);
119
120 QVariant save(const Dbt::AttendanceSummary& data);
121
122 template<typename T> QVariant save(const T& id) { return m_dbplugin->save(id); }
123 template<typename T> void remove(const T& id) { m_dbplugin->remove(id); }
124
125 void begin();
126 void commit();
127
128 signals:
129 void opened(bool);
130
131 public slots:
132 bool open();
133 void close();
134
135 private slots:
136
137 private:
138 static Database *m_instance;
139 Database(QObject *parent);
140 bool m_isOpen;
141
142};
143
144}
145
146#endif