Timesheets-Server
Timesheets server
Načítám...
Vyhledávám...
Nebylo nic nalezeno
dbt.h
Zobrazit dokumentaci tohoto souboru.
1
6#ifndef _DBT_H_
7#define _DBT_H_
8
9#include <QString>
10#include <QDateTime>
11#include <QCoreApplication>
12#include <QVariantList>
13#include <QVariant>
14#include "version.h"
15
16
17template<typename T>
18QVariantList toList(const QList<T>& input) {
19 QVariantList list;
20 QListIterator<T> iterator(input);
21 while (iterator.hasNext()) {
22 list << iterator.next().toMap();
23 }
24 return list;
25}
26
27
28namespace Dbt {
29
30struct Users {
31 int user;
32 QString login;
33 QString name;
34 QString lang;
35 bool enabled;
36 bool admin;
37 //
38 Users() { user = 0; enabled = false; admin = false; }
39 Users(int id) { user = id; enabled = false; admin = false; }
40 QVariantMap toMap() const;
41 static Users fromMap(const QVariantMap&);
42};
43
44
46 bool multiple_timesheets;
47 bool show_price;
48 bool can_change_category;
49 bool edit_categories;
50 bool show_multiple_timesheets;
51 bool show_show_price;
52 bool show_can_change_category;
53 bool show_edit_categories;
55 multiple_timesheets = true;
56 show_price = true;
57 can_change_category = true;
58 edit_categories = true;
59 show_multiple_timesheets = true;
60 show_show_price = true;
61 show_can_change_category = true;
62 show_edit_categories = true;
63 }
64 QVariantMap toMap() const;
65 static ClientSettings fromMap(const QVariantMap&);
66};
67
68
69struct ServerInfo {
70 QString name;
71 QString description;
72
73 static ServerInfo fromMap(const QVariantMap&);
74};
75
76
77struct Categories {
78 QString category; // primary key
79 QString parent_category;
80 QString description;
81 QString description_tree;
82 double price;
83 QVariantList users;
84
85 QVariantMap toMap() const;
86 static Categories fromMap(const QVariantMap&);
87 Categories() { price = 0; }
88 Categories(const QString& id) { price = 0; category = id; }
89};
90
91
93 int id;
94 QString category;
95 int user;
96
97 QVariantMap toMap() const;
98 static UsersCategories fromMap(const QVariantMap&);
99 UsersCategories() { id = -1; user = -1; }
100 UsersCategories(int i) { id = i; }
101};
102
103
105 QVariant id;
106 QVariant category;
107 QVariant previous_status;
108 QVariant next_status;
109
110 QVariantMap toMap() const;
111 static StatusOrder fromMap(const QVariantMap&);
112 StatusOrder(const QString& pid) { id = pid; }
113 StatusOrder() {}
114};
115
116
117struct Statuses {
118 QString status;
119 QString description;
120 QString abbreviation;
121 QString color;
122 bool closed;
123 bool can_be_run;
124 bool ignored;
125 bool can_have_next; // Není součástí tabulky, flag pro generování next
126 QList<Statuses> next;
127
128 QVariantMap toMap() const;
129 static Statuses fromMap(const QVariantMap&);
130 Statuses(const QString& id) { clear(); status = id; }
131 Statuses() { clear(); }
132 void clear() {
133 closed = false;
134 can_be_run = false;
135 ignored = false;
136 can_have_next = false;
137 status = QString();
138 description = QString();
139 abbreviation = QString();
140 color = QString();
141 next.clear();
142 }
143};
144
145
147 int id;
148 QString status;
149 QString category;
150 QString code;
151 QString title;
152 QString description;
153
154 QVariantMap toMap() const;
155 StatusTemplates() { id = -1; }
156};
157
158
159// Tabulky modifikovatelné
160struct Mutable {
161 int id;
162 QVariant user;
163 QVariant ticket;
164 bool modified;
165 bool created;
166 //
167 virtual ~Mutable() {}
168 virtual QVariantMap toMap() const;
169 static Mutable fromMap(const QVariantMap&);
170 Mutable() { id = 0; modified = false; created = false; }
171 Mutable(const QVariant& x) { id = x.toInt(); modified = false; created = false; }
172 Mutable(const Mutable& x) { operator=(x); }
173 Mutable& operator=(const Mutable& x) {
174 id = x.id;
175 user = x.user;
176 ticket = x.ticket;
177 modified = x.modified;
178 created = x.created;
179 return *this;
180 }
181};
182
183
185 QDateTime date;
186 QString status;
187 QString description;
188 QVariantMap description2;
189 QString status_description;
190 QString status_color;
191 bool status_closed;
192 bool status_can_be_run;
193 bool status_ignored;
194 //
195 virtual ~TicketStatus() {}
196 QVariantMap toMap() const Q_DECL_OVERRIDE;
197 static TicketStatus fromMap(const QVariantMap&);
198 static QList<TicketStatus> fromList(const QVariantList&);
199 TicketStatus() : Mutable() { status_closed = false; status_can_be_run = true; status_ignored = false; }
200 TicketStatus(const QVariant& x) : Mutable(x) { status_closed = false; status_can_be_run = true; status_ignored = false; }
201 TicketStatus(const Mutable& x) : Mutable(x) { status_closed = false; status_can_be_run = true; status_ignored = false; }
202 TicketStatus(const TicketStatus& x) : Mutable() { operator=(x); }
203 TicketStatus& operator=(const TicketStatus& x) {
204 Mutable::operator=(x);
205 date = x.date;
206 status = x.status;
207 description = x.description;
208 description2 = x.description2;
209 status_description = x.status_description;
210 status_color = x.status_color;
211 status_closed = x.status_closed;
212 status_can_be_run = x.status_can_be_run;
213 status_ignored = x.status_ignored;
214 return *this;
215 }
216};
217
218
220 QDateTime date_from;
221 QDateTime date_to;
222 //
223 virtual ~TicketTimesheets() {}
224 QVariantMap toMap() const Q_DECL_OVERRIDE;
225 static TicketTimesheets fromMap(const QVariantMap&);
226 static QList<TicketTimesheets> fromList(const QVariantList&);
228 TicketTimesheets(const QVariant& x) : Mutable(x) {}
229 TicketTimesheets(const Mutable& x) : Mutable(x) {}
230 TicketTimesheets(const TicketTimesheets& x) : Mutable() { operator=(x); }
231 TicketTimesheets& operator=(const TicketTimesheets& x) {
232 Mutable::operator=(x);
233 date_from = x.date_from;
234 date_to = x.date_to;
235 return *this;
236 }
237
238};
239
240
242 QDateTime date;
243 QString name;
244 QString type;
245 QByteArray content;
246
247 virtual ~TicketFiles() {}
248 QVariantMap toMap() const Q_DECL_OVERRIDE;
249 static TicketFiles fromMap(const QVariantMap&);
250 static QList<TicketFiles> fromList(const QVariantList&);
251 TicketFiles() : Mutable() {}
252 TicketFiles(const QVariant& x) : Mutable(x) {}
253 TicketFiles(const Mutable& x) : Mutable(x) {}
254 TicketFiles(const TicketFiles& x) : Mutable() { operator=(x); }
255 TicketFiles& operator=(const TicketFiles& x) {
256 Mutable::operator=(x);
257 date = x.date;
258 name = x.name;
259 type = x.type;
260 content = x.content;
261 return *this;
262 }
263};
264
265
267 QDateTime date;
268 QString name;
269 QVariant value;
270
271 virtual ~TicketValues() {}
272 QVariantMap toMap() const Q_DECL_OVERRIDE;
273 static TicketValues fromMap(const QVariantMap&);
274 static QList<TicketValues> fromList(const QVariantList&);
275 TicketValues() : Mutable() {}
276 TicketValues(const QVariant& x) : Mutable(x) {}
277 TicketValues(const Mutable& x) : Mutable(x) {}
278 TicketValues(const TicketValues& x) : Mutable() { operator=(x); }
279 TicketValues& operator=(const TicketValues& x) {
280 Mutable::operator=(x);
281 date = x.date;
282 name = x.name;
283 value = x.value;
284 return *this;
285 }
286
287};
288
289
290struct Tickets {
291 QVariant ticket;
292 QVariant category;
293 QDateTime date;
294 double price;
295 QString description;
296 int user;
297 bool created;
298 bool modified;
299
300 virtual ~Tickets() {}
301 virtual QVariantMap toMap() const;
302 static Tickets fromMap(const QVariantMap&);
303 Tickets() { user = 0; price = 0; created = false; modified = false; }
304 Tickets(const QVariant& x) { ticket = x; price = 0; created = false; modified = false; }
305 Tickets(const Tickets& x) { operator=(x); }
306 Tickets& operator=(const Tickets& x) {
307 ticket = x.ticket;
308 category = x.category;
309 date = x.date;
310 price = x.price;
311 description = x.description ;
312 user = x.user;
313 created = x.created;
314 modified = x.modified;
315 return *this;
316 }
317
318};
319
320
322 QList<Dbt::TicketTimesheets> timesheets;
323 QList<Dbt::TicketStatus> statuses;
324 QList<Dbt::TicketFiles> files;
325 QList<Dbt::TicketValues> values;
326
327 virtual ~TicketsVw() {}
328 QVariantMap toMap() const Q_DECL_OVERRIDE;
329 static TicketsVw fromMap(const QVariantMap&);
330 TicketsVw() : Tickets() {}
331 TicketsVw(const QVariant& x) : Tickets(x) { }
332 TicketsVw(const Tickets& x) : Tickets(x) {}
333 TicketsVw(const TicketsVw& x) : Tickets() { operator=(x); }
334 TicketsVw& operator=(const TicketsVw& x) {
335 Tickets::operator=(x);
336 timesheets = x.timesheets;
337 statuses = x.statuses;
338 files = x.files;
339 values = x.values;
340 return *this;
341 }
342
343};
344
345
347 QString type;
348 int depth;
349 QString category;
350 QString description;
351 int tickets_count;
352 double price;
353 double time;
354 QString ordering;
355
356 CategoriesOverview() { depth = 0; price = 0; time = 0; }
357 QVariantMap toMap() const;
358};
359
360
362 QVariantList categories;
363 QVariantList recent_status;
364 QString status;
365 QString description;
366 static AppendStatuses fromMap(const QVariantMap&);
367 QVariantMap toMap() const;
368};
369
370
372 QString key;
373 Dbt::Categories category;
374 QList<Dbt::Statuses> statuses;
375
376 OverviewList() {}
377 OverviewList(const QString& x) { key = x; }
378 QVariantMap toMap() const;
379};
380
381
382struct Overview {
383 struct Days {
384 int ticket;
385 QString description;
386 int user;
387 QString user_name;
388 QDateTime date;
389 double hour_price;
390 double duration;
391 double price;
392 QVariantMap toMap() const;
393 Days() { ticket = 0; user = 0; hour_price = 0; duration = 0; price = 0; }
394 };
395 struct Sum {
396 double duration;
397 double price;
398 QVariantMap toMap() const;
399 Sum() { duration = 0; price = 0; }
400 };
401 struct Tickets {
402 int ticket;
403 QString description;
404 int user;
405 QString user_name;
406 double hour_price;
407 double duration;
408 double price;
409 QString status;
410 QVariantMap toMap() const;
411 Tickets() { ticket = 0; user = 0; hour_price = 0; duration = 0; price = 0; }
412 };
413 struct TicketsSum {
414 int ticket;
415 QString description;
416 double duration;
417 double price;
418 QString status;
419 QVariantMap toMap() const;
420 TicketsSum() { ticket = 0; duration = 0; price = 0; }
421 };
422 struct StatusSum {
423 double duration;
424 double price;
425 QString status;
426 QVariantMap toMap() const;
427 StatusSum() { duration = 0; price = 0; }
428 };
429 struct UserSum {
430 double duration;
431 double price;
432 QString user_name;
433 QVariantMap toMap() const;
434 UserSum() { duration = 0; price = 0; }
435 };
436
437 Categories category;
438 QList<Tickets> tickets; // group by ticket, user
439 QList<TicketsSum> ticketsSum; // group by ticket
440 QList<StatusSum> statusSum; // group by status
441 QList<UserSum> userSum; // group by users
442 QList<Days> days; // group by date, user
443 Sum sum; // group by category
444 QVariantMap toMap() const;
445 QString id;
446};
447
448//---------------------------------------------------------------------------------------
449// Docházka
450
452 int department;
453 QString abbr;
454 QString description;
455
456 Departments() { department = 0; }
457 static Departments fromMap(const QVariantMap&);
458 QVariantMap toMap() const;
459};
460
461struct Doors {
462 int door;
463 QString description;
464
465 Doors() { door = 0; }
466 static Doors fromMap(const QVariantMap&);
467 QVariantMap toMap() const;
468};
469
470struct Rfids {
471 int rfid;
472 QString rfid_id;
473 bool valid;
474 QString note;
475
476 static Rfids fromMap(const QVariantMap&);
477 QVariantMap toMap() const;
478};
479
480struct Employees {
481 int employee;
482 QString firstname;
483 QString surname;
484 bool active;
485
486 static Employees fromMap(const QVariantMap&);
487 QVariantMap toMap() const;
488};
489
491 QString event_type;
492 QString description;
493 bool end_state; // odchod, ukončení předchozího stavu
494 bool passage; // pruchod
495 bool arrival; // příchod do práce
496 bool vacation; // Dovolená
497 bool sick_leave; // nemoc
498 bool compensatory_leave; // náhradní volno
499 bool business_trip; // Služební cesta
500 bool break_time; // Přestávka
501 bool unpaid_leave; // Neplacené volno
502 bool sick_care; // Ošetřování člena rodiny
503
504 EventTypes() {
505 end_state = false;
506 passage = false;
507 arrival = false;
508 vacation = false;
509 sick_leave = false;
510 compensatory_leave = false;
511 business_trip = false;
512 break_time = false;
513 unpaid_leave = false;
514 sick_care = false;
515 }
516
517 static EventTypes fromMap(const QVariantMap&);
518 QVariantMap toMap() const;
519};
520
521struct Events {
522 int event;
523 QDateTime date;
524 QString event_type;
525 int employee;
526 bool valid;
527 QVariant user_edited;
528
529 Events() { event = 0; employee = 0; valid = false; }
530 static Events fromMap(const QVariantMap&);
531 QVariantMap toMap() const;
532};
533
535 int department;
536 int user;
537
538 DepartmentHasManager() { department = 0; user = 0; }
539 static DepartmentHasManager fromMap(const QVariantMap&);
540 QVariantMap toMap() const;
541};
542
544 int department;
545 int employee;
546
547 DepartmentHasMember() { department = 0; employee = 0; }
548 static DepartmentHasMember fromMap(const QVariantMap&);
549 QVariantMap toMap() const;
550};
551
553 int employee;
554 int door;
555
556 EmployeeCanOpenDoor() { employee = 0; door = 0; }
557 static EmployeeCanOpenDoor fromMap(const QVariantMap&);
558 QVariantMap toMap() const;
559};
560
562 int employee;
563 int rfid;
564
565 EmployeeHasRfid() { employee = 0; rfid = 0; }
566 static EmployeeHasRfid fromMap(const QVariantMap&);
567 QVariantMap toMap() const;
568};
569
570
571
572}
573
574#endif
575
Konvertuje null variant na invalid variant - QJsonDocument jinak konvertuje int null hodnoty špatně n...
Definition dbt.cpp:17
QVariantList categories
categories which are appended with new statuse
Definition dbt.h:362
QString description
new status description
Definition dbt.h:365
QString status
new status
Definition dbt.h:364
QVariantList recent_status
recent statuses
Definition dbt.h:363