1.1.0-rc1
This commit is contained in:
1 parent
649dd6f028
commit
45ff46b7eb
26 files changed
+4752
-1108
No files matched your search
@@ -0,0 +1,89 @@
|
||||
# TicketTracker
|
||||
|
||||
Stand: Oktober 2026
|
||||
|
||||
TicketTracker ist ein Arbeits-, Projekt- und Abrechnungscockpit für ticketbasierte Arbeit. Das System ergänzt Zammad und Teamspace: Zammad bleibt das Ticketsystem, Teamspace bleibt die Quelle für Projektbudgets und gebuchte Projektwerte, TicketTracker führt Erfassung, Bewertung, ToDos, Projektüberwachung und Monatsabschluss zusammen.
|
||||
|
||||
Der Kernnutzen: Jeder Benutzer sieht, was er gearbeitet hat, was noch bewertet werden muss, welche Projektbudgets kritisch sind, welche Teamspace-Daten fehlen oder abweichen und wann ein Monat sauber abgeschlossen werden kann.
|
||||
|
||||
## Zielgruppe und Einsatz
|
||||
|
||||
TicketTracker ist für Teams oder Einzelpersonen gedacht, die viel mit Tickets arbeiten und ihre Zeiten zuverlässig nachvollziehen müssen.
|
||||
|
||||
Typische Einsatzfälle:
|
||||
|
||||
- Support- und Consulting-Zeiten per Timer erfassen
|
||||
- Sessions nachträglich ergänzen
|
||||
- Arbeit am Ticket dokumentieren
|
||||
- Sessions als offen, abrechenbar, abgerechnet oder nicht abrechenbar bewerten
|
||||
- Teamspace-Tageswerte für abrechnungsrelevante Projektzeiten pflegen oder Teamspace als Ist-Quelle nutzen
|
||||
- Monatsabschlüsse kontrolliert vorbereiten
|
||||
- Consulting-Projekte mit Teamspace-Budgets, Reststunden und Unterpositionen überwachen
|
||||
- ToDos und Wiedervorlagen direkt am Ticket oder Projekt organisieren
|
||||
- wiederkehrende Leistungen automatisch erzeugen lassen
|
||||
- interne Zammad-Notizen aus TicketTracker heraus erzeugen
|
||||
|
||||
## Grundprinzip
|
||||
|
||||
TicketTracker arbeitet auf drei Ebenen:
|
||||
|
||||
1. **Session-Zeit**
|
||||
Die tatsächlich gemessene oder manuell erfasste Arbeitszeit.
|
||||
2. **Teamspace-/Projekt-Ist**
|
||||
Je nach Profilmodus entweder in TicketTracker gepflegte Teamspace-Tageswerte oder direkt aus Teamspace synchronisierte Ist-Werte.
|
||||
3. **Monatsabschluss**
|
||||
Der kontrollierte Abschluss eines Monats, sobald alle Sessions final bewertet und die benötigten Prüfpunkte erledigt sind.
|
||||
|
||||
Wichtig: Tickets werden nicht abgeschlossen. Tickets dienen als Arbeits- und Auswertungsrahmen. Abgeschlossen wird der Monat.
|
||||
|
||||
## Die wichtigsten Bereiche
|
||||
|
||||
- **Timer und Sessions:** Zeiten erfassen, nachtragen, bewerten und dokumentieren.
|
||||
- **Tickets:** Sessions pro Ticket, Tag und Monat prüfen.
|
||||
- **Projekte:** Consulting-Projekte, Teamspace-Projekte, Budgets, Reststunden und Unterpositionen überwachen.
|
||||
- **Teamspace:** Projekt-IDs, Budgets, Unterpositionen, Monatszeiten und Istwerte synchronisieren.
|
||||
- **Zammad:** Organisationen, Ticketstammdaten, Status, Priorität und interne Notizen anbinden.
|
||||
- **ToDos:** Aufgaben, Termine, Wiedervorlagen und Projektfollow-ups verwalten.
|
||||
- **Dashboard:** Tagessteuerung für offene Bewertungen, ToDos, Teamspace-Nacharbeit und Projektwarnungen.
|
||||
- **Statistiken:** Monatswerte, Organisationen, Tickets, Projektbudgets und Teamspace-Abgleich auswerten.
|
||||
- **Monatsabschluss:** Einen Monat kontrolliert schließen oder wieder öffnen.
|
||||
|
||||
## Unterseiten für Confluence
|
||||
|
||||
Diese Dokumentation ist für den Import als Confluence-Seitenbaum vorbereitet:
|
||||
|
||||
1. `01-zeiterfassung-sessions-monatsabschluss.md`
|
||||
2. `02-projekte-budgets-teamspace.md`
|
||||
3. `03-zammad-sync-und-integration.md`
|
||||
4. `04-dashboard-statistiken-und-widgets.md`
|
||||
5. `05-todos-wiedervorlagen-fixe-abrechnungen.md`
|
||||
6. `06-profil-admin-und-betrieb.md`
|
||||
|
||||
## Typischer Tagesablauf
|
||||
|
||||
1. Ticketnummer eingeben und Timer starten.
|
||||
2. Tätigkeit dokumentieren.
|
||||
3. Timer beenden und Session speichern.
|
||||
4. Bei Bedarf Session nachtragen.
|
||||
5. Sessions im Ticket bewerten.
|
||||
6. Wenn Teamspace-Erfassung in TT aktiv ist: Teamspace-Tageswerte pro Projekt/Tag pflegen.
|
||||
7. ToDos und Wiedervorlagen bearbeiten.
|
||||
8. Dashboard prüfen, ob offene Bewertungen oder Teamspace-Nacharbeiten vorhanden sind.
|
||||
|
||||
## Typischer Monatsablauf
|
||||
|
||||
1. Monat in Tickets, Statistiken oder Monatsabschluss auswählen.
|
||||
2. Offene Sessions prüfen.
|
||||
3. Sessions final als **Abgerechnet** oder **Nicht abrechenbar** bewerten.
|
||||
4. **Abrechenbar**-Zwischenstände klären, weil sie den Abschluss blockieren.
|
||||
5. Bei aktivierter Teamspace-Erfassung: Teamspace-Tageswerte und Differenzen prüfen.
|
||||
6. Im Zammad-Sync bei Bedarf den Teamspace-Monatsabgleich ausführen, um echte TS-Monatszeiten pro Projekt gegen TT zu prüfen.
|
||||
7. Bei deaktivierter Teamspace-Erfassung: Teamspace-Differenzen entfallen; nur Session-Status ist relevant.
|
||||
8. ToDos, Wiedervorlagen und Projektwarnungen prüfen.
|
||||
9. Monat abschließen.
|
||||
|
||||
TicketTracker ist damit das Kontrollzentrum zwischen täglicher Ticketarbeit, Zammad-Dokumentation, Teamspace-Projekten und sauberer Abrechnung.
|
||||
|
||||
Die zentrale Frage bleibt:
|
||||
|
||||
**Ist alles vollständig, bewertet, dokumentiert und abrechnungsbereit?**
|
||||
@@ -0,0 +1,96 @@
|
||||
# Zeiterfassung, Sessions und Monatsabschluss
|
||||
|
||||
Diese Seite beschreibt die tägliche Erfassung, Bewertung und Monatsprüfung in TicketTracker.
|
||||
|
||||
## Timer
|
||||
|
||||
Benutzer starten einen Timer über eine Ticketnummer. Es können mehrere Timer vorbereitet sein, aber immer nur einer läuft aktiv. Wird ein anderer Timer gestartet, pausiert TicketTracker die übrigen Timer automatisch.
|
||||
|
||||
Beim Beenden werden Tätigkeit, Zeit, Ticket, Organisation, Art und optional Bewertung gespeichert. Wenn die Zammad-Notiz im Profil aktiv ist, kann TicketTracker beim Speichern einen internen Zammad-Article erzeugen.
|
||||
|
||||
## Sessions nachtragen
|
||||
|
||||
Vergessene Arbeit kann manuell als Session nachgetragen werden. Dabei werden erfasst:
|
||||
|
||||
- Datum
|
||||
- Start und Ende
|
||||
- Ticket
|
||||
- Organisation
|
||||
- Art, zum Beispiel Support oder Consulting
|
||||
- Tätigkeit
|
||||
- Bewertung
|
||||
- optional interne Zammad-Notiz
|
||||
|
||||
Nachgetragene Sessions laufen genauso in Statistiken, Ticketansichten und Monatsabschluss ein wie per Timer erzeugte Sessions.
|
||||
|
||||
## Session-Bewertungen
|
||||
|
||||
Jede Session kann einen dieser Zustände haben:
|
||||
|
||||
- **Offen**
|
||||
- **Abrechenbar**
|
||||
- **Abgerechnet**
|
||||
- **Nicht abrechenbar**
|
||||
|
||||
Nur **Abgerechnet** und **Nicht abrechenbar** gelten als final. **Abrechenbar** ist ein Zwischenstatus und blockiert weiterhin den Monatsabschluss.
|
||||
|
||||
Ein erneuter Klick auf den bereits gesetzten Status nimmt die Bewertung wieder zurück und macht die Session offen.
|
||||
|
||||
## Ticketdetailansicht
|
||||
|
||||
In der Ticketdetailansicht werden Sessions nach Tagen gruppiert. Dort werden Sessions bewertet, bearbeitet, gelöscht und aufgeklappt.
|
||||
|
||||
Pro Tag sieht man unter anderem:
|
||||
|
||||
- Summe abgerechneter Session-Zeit
|
||||
- Summe abrechenbarer Session-Zeit
|
||||
- Summe nicht abrechenbarer Session-Zeit
|
||||
- offene Session-Zeit
|
||||
- Teamspace-Tageswert, falls die Teamspace-Erfassung in TT aktiv ist
|
||||
|
||||
Die Tageswerte sind pro Benutzer und Projekt/Teamspace-Eintrag gespeichert. Sie sind nicht an einzelne Sessions gebunden.
|
||||
|
||||
## Teamspace-Tageswerte
|
||||
|
||||
Wenn im Profil **Teamspace-Zeiten in TT erfassen** aktiv ist, kann der Benutzer in der Ticketdetailansicht Teamspace-Tageswerte pflegen.
|
||||
|
||||
Die Eingabe erfolgt in Stunden, zum Beispiel:
|
||||
|
||||
- `1`
|
||||
- `1,5`
|
||||
- `2.25`
|
||||
- `0,75`
|
||||
|
||||
Der Wert wird nicht während der Eingabe gespeichert. Sobald sich der Wert ändert, erscheint ein Speichern-Button. Ein leeres Feld entfernt den gespeicherten Teamspace-Wert für diesen Tag.
|
||||
|
||||
Wenn mehrere Teamspace-Projekte an einem Ticket hängen, wird der Tageswert pro Teamspace-Projekt-Eintrag geführt.
|
||||
|
||||
Wenn die Teamspace-Erfassung im Profil deaktiviert ist, sind diese Eingaben ausgeblendet und auch serverseitig gesperrt.
|
||||
|
||||
## Monatsabschluss
|
||||
|
||||
Der Monatsabschluss ist die zentrale Kontrollseite für einen Benutzer und Monat.
|
||||
|
||||
Sie zeigt unter anderem:
|
||||
|
||||
- offene Bewertungen
|
||||
- Sessions mit Zwischenstatus **Abrechenbar**
|
||||
- fehlende oder abweichende Teamspace-Werte, wenn Teamspace-Erfassung in TT aktiv ist
|
||||
- Prüfpunkte vor dem Abschluss
|
||||
- Möglichkeit, den Monat zu schließen oder wieder zu öffnen
|
||||
|
||||
Ein abgeschlossener Monat ist gegen versehentliche Änderungen geschützt. Wird eine Session in einem abgeschlossenen Zeitraum geändert, muss der Zeitraum vorher wieder geöffnet werden.
|
||||
|
||||
## Regeln bei deaktivierter Teamspace-Erfassung
|
||||
|
||||
Der Profil-Schalter **Teamspace-Zeiten in TT erfassen** ist userbezogen.
|
||||
|
||||
Wenn er ausgeschaltet ist:
|
||||
|
||||
- Teamspace-Tageswerte können nicht in TicketTracker gepflegt werden.
|
||||
- Manuelle Projektstunden sind nicht editierbar.
|
||||
- Monatsprüfung und Widgets prüfen nur Session-Status.
|
||||
- Teamspace-Differenzen werden nicht angezeigt.
|
||||
- Projekt-Istwerte kommen aus Teamspace.
|
||||
|
||||
Das ist für Benutzer gedacht, die keine Teamspace-Zeiten in TicketTracker nachpflegen, sondern Teamspace als führende Ist-Quelle verwenden.
|
||||
@@ -0,0 +1,150 @@
|
||||
# Projekte, Budgets und Teamspace
|
||||
|
||||
Diese Seite beschreibt die aktuelle Projekt- und Teamspace-Logik in TicketTracker.
|
||||
|
||||
## Projekte
|
||||
|
||||
Projekte erweitern normale Tickets um Consulting-Projektinformationen.
|
||||
|
||||
Ein Projekt enthält unter anderem:
|
||||
|
||||
- Ticketnummer
|
||||
- Titel und Organisation
|
||||
- Teamspace-Projekt-Einträge
|
||||
- Beschreibung und Ziele
|
||||
- Zeitraum
|
||||
- Projektstatus offen oder geschlossen
|
||||
- ToDos
|
||||
- Teamspace-Budgets und Verbrauchswerte
|
||||
- Teamspace-Unterpositionen
|
||||
|
||||
Projekt-Tickets sind Consulting-Tickets. Wird ein Projekt gelöscht, bleiben Ticket, Sessions und ToDos erhalten. Gelöscht werden nur die Projektinformationen.
|
||||
|
||||
## Teamspace als Budgetquelle
|
||||
|
||||
Teamspace ist die fachliche Quelle für Projektbudgets.
|
||||
|
||||
Aktuelle Budgetregeln:
|
||||
|
||||
- Teamspace ist die Source of Truth für Projektbudgets.
|
||||
- Zammad-Budgets werden nicht mehr als Budgetquelle verwendet.
|
||||
- Das Gesamtbudget eines Projekts kommt aus Teamspace.
|
||||
- Wenn mehrere Teamspace-Projekte an einem Ticket hängen, wird das Gesamtbudget aus diesen Teamspace-Projekten zusammengesetzt.
|
||||
- Unterpositionen zeigen ihre eigenen Teamspace-Budgets und Teamspace-Istwerte.
|
||||
- Stückpositionen werden nicht als Stundenbudget in die Stundenbetrachtung eingerechnet.
|
||||
|
||||
## Verbrauchslogik
|
||||
|
||||
Der Projektverbrauch hängt vom Profil-Schalter **Teamspace-Zeiten in TT erfassen** ab.
|
||||
|
||||
Wenn der Schalter aktiv ist:
|
||||
|
||||
- Projekt-Ist kommt aus Teamspace-Tageswerten, die in TicketTracker gepflegt werden.
|
||||
- Zusätzlich können manuelle Projektstunden erfasst werden.
|
||||
- Progress Bars, Reststunden und Budgetwarnungen verwenden diese Werte.
|
||||
|
||||
Wenn der Schalter deaktiviert ist:
|
||||
|
||||
- Projekt-Ist kommt aus Teamspace.
|
||||
- Manuelle Projektstunden sind ausgeblendet und serverseitig gesperrt.
|
||||
- Teamspace-Tageswerte können nicht in TicketTracker erfasst werden.
|
||||
- Statistiken und Widgets zeigen keine TT/Teamspace-Differenzprüfung für diesen Benutzer.
|
||||
|
||||
## Mehrere Teamspace-Projekte pro Ticket
|
||||
|
||||
Ein Ticket kann mehrere Teamspace-Projekt-IDs haben. TicketTracker speichert dafür mehrere Teamspace-Einträge am Projekt.
|
||||
|
||||
Beispiel:
|
||||
|
||||
- `EP-2025-Comp-009`
|
||||
- `EP-2025-Comp-025`
|
||||
|
||||
Einer der Einträge ist der Standard. Sessions können einem Teamspace-Projekt-Eintrag zugeordnet werden. Diese Zuordnung erfolgt auf Ebene des Teamspace-Projekts, nicht auf Ebene einzelner Unterpositionen.
|
||||
|
||||
## Gemeinsames Teamspace-Budget über mehrere Tickets
|
||||
|
||||
Mehrere unterschiedliche Ticketnummern können dieselbe Teamspace-Projekt-ID verwenden. TicketTracker behandelt diese Teamspace-Nummer dann als gemeinsame Budgetquelle.
|
||||
|
||||
Dabei gilt:
|
||||
|
||||
- Es gibt keine automatische Aufteilung auf die Ticketnummern.
|
||||
- Teamspace-API-ID, Teamspace-API-URL, Budget, Unterpositionen und Teamspace-Monatswerte werden für dieselbe Teamspace-Nummer konsolidiert.
|
||||
- Der Teamspace-Sync zieht gleiche Teamspace-Nummern nach jedem Lauf wieder auf denselben Datenstand.
|
||||
- Die Migration konsolidiert bereits vorhandene doppelte Teamspace-Nummern beim Start.
|
||||
- Ticket-spezifische Felder wie Standard-Eintrag, Reihenfolge, Session-Zuordnung und manuelle Projektstunden bleiben am jeweiligen Ticket.
|
||||
|
||||
## Teamspace-Projekt-ID-Sync
|
||||
|
||||
Der Sync auf der Zammad-Sync-Seite löst offene Consulting-Projekte gegen die Teamspace-API auf.
|
||||
|
||||
Gespeichert werden unter anderem:
|
||||
|
||||
- Teamspace-API-ID des Projekts
|
||||
- Teamspace-API-URL
|
||||
- Teamspace-Gesamtbudget
|
||||
- Teamspace-Unterpositionen
|
||||
- Teamspace-Budgets und Istwerte der Unterpositionen
|
||||
- Stückpositionen und deren Erfüllungsstand
|
||||
- echte Teamspace-Monatszeiten aus `/api/time` für den gewählten Monat
|
||||
|
||||
Die fachliche Teamspace-ID aus Zammad oder Projektinformationen, zum Beispiel `EP-2026-A-035`, ist nicht identisch mit der API-ID für Einzelabfragen. TicketTracker speichert deshalb die interne Teamspace-API-ID, sobald sie gefunden wurde.
|
||||
|
||||
## Teamspace-Monatsabgleich
|
||||
|
||||
Der Teamspace-Projekt-ID-Sync auf der Zammad-Sync-Seite enthält zusätzlich einen Monatsabgleich. Der Benutzer wählt einen Monat aus, TicketTracker ruft für diesen Zeitraum die Teamspace-Zeitbuchungen des angemeldeten Teamspace-Benutzers ab und speichert einen Snapshot pro Teamspace-Projekt-Eintrag.
|
||||
|
||||
Technische Grundlage:
|
||||
|
||||
- API-Endpoint: `/api/time`
|
||||
- Filter: `worker={Teamspace User-ID}` und `date=YYYY-MM-01..YYYY-MM-letzterTag`
|
||||
- gezählt werden Einträge mit `draftStatus.value = NORMAL`
|
||||
- relevante Minuten sind `amountBillable`
|
||||
- `amount` wird als Gesamtzeit mitgeführt, ist aber nicht die Vergleichsgröße
|
||||
|
||||
Die Monatswerte werden pro Benutzer, Teamspace-Projekt-Eintrag und Monat gespeichert. Dadurch bleiben drei Dinge getrennt:
|
||||
|
||||
- TT-Tageswerte, die in TicketTracker gepflegt werden
|
||||
- echte Teamspace-Monatszeiten aus Teamspace
|
||||
- Teamspace-Budget- und Unterpositionswerte aus dem Projektsync
|
||||
|
||||
Im Ergebnis des Syncs sieht man pro Teamspace-Projekt:
|
||||
|
||||
- TT-Monatswert
|
||||
- TS-Monatswert
|
||||
- Differenz
|
||||
- Anzahl der gefundenen TS-Zeitbuchungen
|
||||
- betroffene Haupt- oder Unterpositionen mit TS-Minuten
|
||||
|
||||
Wenn Teamspace-Zeiten auf Unterpositionen gebucht wurden, werden diese ebenfalls dem passenden Teamspace-Projekt-Eintrag zugeordnet. TicketTracker mappt dafür nicht nur die Hauptprojekt-API-ID, sondern auch die synchronisierten Unterpositions-API-IDs. Die Positionsaufschlüsselung wird im Monats-Snapshot gespeichert und kann dadurch später in der Monatsübersicht angezeigt werden.
|
||||
|
||||
## Unterpositionen
|
||||
|
||||
Unterpositionen werden aus Teamspace synchronisiert und im Projektdetail angezeigt. Sie dienen als Teamspace-Anzeige, um Budget, Verbrauch und freie Ressourcen pro Teamspace-Position sichtbar zu machen.
|
||||
|
||||
Wichtig:
|
||||
|
||||
- Zeiten werden nicht auf Unterpositionen in TicketTracker erfasst.
|
||||
- Unterpositionen bekommen ihre Budgets und Istwerte aus Teamspace.
|
||||
- Teamspace-Descriptions werden dekodiert und formatiert ausgegeben.
|
||||
- Unterpositionen können einen Alias in TicketTracker bekommen.
|
||||
- Akkordions der Unterpositionsgruppen merken sich den letzten offenen oder geschlossenen Zustand pro Benutzer und Projekt.
|
||||
- Bei Teamspace-Strukturen mit Überpositionen werden nur echte bebuchbare Unterpositionen angezeigt, nicht reine Summenpositionen.
|
||||
- Positionsnummern werden lesbar dargestellt, zum Beispiel `1` statt `0001` oder `1.1` statt `0001.0001`.
|
||||
|
||||
## Stückpositionen
|
||||
|
||||
Teamspace-Positionen mit `billingType = INVOICEABLE_FIX` sind Stück- oder Fixpositionen.
|
||||
|
||||
Für diese Positionen gelten andere Regeln:
|
||||
|
||||
- Stundenwerte werden nicht als Stundenbudget interpretiert.
|
||||
- TicketTracker zeigt sie als Stückpositionen an.
|
||||
- Der Erfüllungsstand wird über `plannedIncome` gegen `sumIncome` geprüft.
|
||||
- Ist das Soll erreicht, wird die Position als abgerechnet beziehungsweise erfüllt markiert.
|
||||
- Überschreitungen werden mit einem Hinweis-Icon angezeigt.
|
||||
|
||||
## Projektansichten
|
||||
|
||||
Die Projektliste zeigt Gesamtbudget, Verbrauch, Reststunden und Projektwarnungen. Bei mehreren Teamspace-Projekten können Detailbalken pro Teamspace-Projekt angezeigt oder ausgeblendet werden. Der Hauptbalken zeigt weiterhin das Gesamtbudget aller Teamspace-Projekte.
|
||||
|
||||
Im Projektdetail stehen Projektinformationen und ToDos getrennt von den Teamspace-Unterpositionen. Die Unterpositionen liegen in einer eigenen breiten Card unterhalb der Projekt-/ToDo-Informationen.
|
||||
@@ -0,0 +1,82 @@
|
||||
# Zammad Sync und Integration
|
||||
|
||||
TicketTracker nutzt Zammad, ohne Zammad zu ersetzen. Zammad bleibt das führende Ticketsystem für Ticketstammdaten, Organisationen, Status und Prioritäten.
|
||||
|
||||
## Persönlicher Zammad-Token
|
||||
|
||||
Jeder Benutzer kann im Profil einen persönlichen Zammad API-Token speichern. Beim Speichern ruft TicketTracker Zammad ab, prüft den Token und speichert die Zammad User-ID.
|
||||
|
||||
Der Token wird verschlüsselt in der Datenbank gespeichert.
|
||||
|
||||
Der persönliche Token wird unter anderem für benutzerbezogene Zammad-Funktionen verwendet, zum Beispiel interne Notizen oder personenbezogene Synchronisierungen.
|
||||
|
||||
## Admin-Zammad-Zugang
|
||||
|
||||
Im Adminbereich wird der Zammad-Zugang für systemweite Synchronisierungen gepflegt.
|
||||
|
||||
Der Admin kann Organisationen aus Zammad synchronisieren. Dabei werden lokale Organisationen angelegt, aktualisiert oder entfernt beziehungsweise von alten Verknüpfungen gelöst.
|
||||
|
||||
## Ticketdaten aus Zammad
|
||||
|
||||
TicketTracker kann Ticketdaten aus Zammad übernehmen:
|
||||
|
||||
- Ticketnummer
|
||||
- Titel
|
||||
- Organisation
|
||||
- Work-Type, zum Beispiel Support oder Consulting
|
||||
- Status
|
||||
- Priorität
|
||||
- Owner
|
||||
- Teamspace-Projektinformationen
|
||||
|
||||
Zammad-verwaltete Ticketstammdaten bleiben geschützt. Ticketnummer, Titel, Art und Organisation können dann in TicketTracker nicht beliebig überschrieben werden.
|
||||
|
||||
## Consulting-Projekte aus Zammad
|
||||
|
||||
Beim Zammad-Sync oder beim Anlegen eines Projekts können Consulting-Projektinformationen übernommen werden.
|
||||
|
||||
Dazu gehören insbesondere:
|
||||
|
||||
- Teamspace-Projekt-ID oder mehrere Teamspace-Projekt-IDs
|
||||
- Zammad-Owner
|
||||
- Projektstatus-Hinweise, zum Beispiel Review bei Abschlussstatus
|
||||
|
||||
Die Teamspace-Projekt-ID aus Zammad ist die fachliche ID, zum Beispiel `EP-2026-A-035`. Für Teamspace-API-Abfragen speichert TicketTracker zusätzlich die interne Teamspace-API-ID.
|
||||
|
||||
## Teamspace-Projekt-ID-Sync auf der Zammad-Sync-Seite
|
||||
|
||||
Auf der Zammad-Sync-Seite gibt es den Sync für Teamspace-Projekt-IDs, Budgets und Positionen.
|
||||
|
||||
Voraussetzungen:
|
||||
|
||||
- Admin hat die Teamspace-Base-URL gespeichert.
|
||||
- Benutzer hat im Profil Teamspace-Geraete-ID und Geraetepasswort gespeichert.
|
||||
- Die Teamspace User-ID ist bekannt.
|
||||
- Das Projekt hat eine Teamspace-Projekt-ID.
|
||||
|
||||
Der Sync speichert:
|
||||
|
||||
- Teamspace-API-ID
|
||||
- Teamspace-API-URL
|
||||
- Gesamtbudget
|
||||
- Unterpositionen
|
||||
- Budgets und Istwerte der Unterpositionen
|
||||
- Stückpositionen
|
||||
|
||||
## Interne Zammad-Notizen
|
||||
|
||||
Beim Timerabschluss und beim manuellen Nachtragen kann TicketTracker einen internen Zammad-Article erzeugen.
|
||||
|
||||
Der Article enthält die Tätigkeit und optional den `time_unit`-Wert. Im Profil kann eingestellt werden:
|
||||
|
||||
- ob die interne Notiz standardmäßig aktiv ist
|
||||
- welcher Zammad-Zeitbuchungstyp vorausgewählt wird
|
||||
- ob `time_unit` auf 5, 10, 15 oder 30 Minuten aufgerundet wird
|
||||
|
||||
Wenn Zammad nicht erreichbar ist oder die Notiz fehlschlägt, speichert TicketTracker die Session trotzdem. Die fehlgeschlagene Notiz wird geparkt und kann später im Profil erneut gesendet werden.
|
||||
|
||||
## eMail-/Article-Import
|
||||
|
||||
TicketTracker kann Zammad-Articles prüfen und daraus Sessions vorbereiten. Das ist besonders hilfreich, wenn Arbeit per eMail-Import ins Ticket kam.
|
||||
|
||||
Solche Sessions können nachträglich geprüft, zugeordnet und bewertet werden. Wenn ein importierter Eintrag keinem Teamspace-Projekt zugeordnet ist, kann das im Projektdetail sichtbar werden.
|
||||
@@ -0,0 +1,95 @@
|
||||
# Dashboard, Statistiken und Widgets
|
||||
|
||||
Diese Seite beschreibt die Kontroll- und Auswertungsflächen in TicketTracker.
|
||||
|
||||
## Dashboard
|
||||
|
||||
Das Dashboard ist das Tagescockpit. Es zeigt, ob heute oder in der aktuellen Arbeitslage noch etwas offen ist.
|
||||
|
||||
Typische Hinweise:
|
||||
|
||||
- offene Session-Bewertungen
|
||||
- Sessions im Zwischenstatus **Abrechenbar**
|
||||
- heutige oder überfällige ToDos
|
||||
- fällige Wiedervorlagen
|
||||
- fehlende Teamspace-Tageswerte, wenn Teamspace-Erfassung in TT aktiv ist
|
||||
- Projektbudget-Hinweise
|
||||
- Nacharbeit für heutige Tickets
|
||||
|
||||
Widgets können je nach Konfiguration angeordnet und genutzt werden. Favoriten und persönliche Notizen unterstützen die tägliche Arbeit.
|
||||
|
||||
## Teamspace-Verhalten im Dashboard
|
||||
|
||||
Der Profil-Schalter **Teamspace-Zeiten in TT erfassen** beeinflusst die Dashboard-Logik.
|
||||
|
||||
Wenn aktiv:
|
||||
|
||||
- Dashboard kann fehlende Teamspace-Tageswerte anzeigen.
|
||||
- Nacharbeitslisten können Teamspace-Differenzen berücksichtigen.
|
||||
- Projektverbrauch basiert auf TT-Teamspace-Tageswerten plus manuellen Projektstunden.
|
||||
|
||||
Wenn deaktiviert:
|
||||
|
||||
- Teamspace-Erfassung wird als ausgeschaltet angezeigt.
|
||||
- Monatsprüfung läuft statusbasiert.
|
||||
- Teamspace-Differenzhinweise werden ausgeblendet.
|
||||
- Projekt-Istwerte kommen aus Teamspace.
|
||||
|
||||
## Statistiken
|
||||
|
||||
Die Statistikseite betrachtet einen Monat.
|
||||
|
||||
Sie zeigt unter anderem:
|
||||
|
||||
- abgerechnete Zeit
|
||||
- abrechenbare Zwischenstände
|
||||
- nicht abrechenbare Zeit
|
||||
- offene Sessions
|
||||
- Organisationen mit Aufwand
|
||||
- Tickets mit Aufwand
|
||||
- Projektbudget-Hinweise
|
||||
- manuelle und fixe Sessions
|
||||
- Teamspace-Abgleich, wenn Teamspace-Erfassung in TT aktiv ist
|
||||
- Teamspace als Ist-Quelle, wenn die Erfassung in TT deaktiviert ist
|
||||
|
||||
## Abgerechnet, abrechenbar und offen
|
||||
|
||||
Für statistische Auswertungen gilt:
|
||||
|
||||
- **Abgerechnet** zählt in die abgerechnete Session-Zeit.
|
||||
- **Abrechenbar** ist ein Zwischenstatus und bleibt offen für den Monatsabschluss.
|
||||
- **Nicht abrechenbar** ist final, zählt aber nicht als abgerechnete Zeit.
|
||||
- **Offen** blockiert den Monatsabschluss.
|
||||
|
||||
## Teamspace-Abgleich in Statistiken
|
||||
|
||||
Wenn Teamspace-Erfassung in TT aktiv ist, vergleicht TicketTracker:
|
||||
|
||||
`Teamspace-Zeit minus abgerechnete Session-Zeit`
|
||||
|
||||
Bedeutung:
|
||||
|
||||
- Positive Differenz: In Teamspace steht mehr Zeit als abgerechnet wurde.
|
||||
- Negative Differenz: In Teamspace steht weniger Zeit als abgerechnet wurde.
|
||||
- Null: Teamspace und abgerechnete Session-Zeit sind ausgeglichen.
|
||||
|
||||
Wenn Teamspace-Erfassung deaktiviert ist, werden Differenzspalten, Differenzbadges und Teamspace-Linien ausgeblendet oder angepasst. Die Statistik zeigt dann Teamspace als Ist-Quelle und prüft primär die Session-Status.
|
||||
|
||||
## Teamspace-Monatsabgleich aus dem Sync
|
||||
|
||||
Zusätzlich zum Tageswert-Abgleich kann der Zammad-Sync echte Teamspace-Monatszeiten abrufen. Diese Daten kommen aus Teamspace `/api/time` und verwenden `amountBillable` der Projektzeitbuchungen.
|
||||
|
||||
Der Sync speichert die Werte als Monats-Snapshot pro Benutzer und Teamspace-Projekt-Eintrag. Dadurch wird sichtbar, ob der in TicketTracker gepflegte Monatswert zu den echten Teamspace-Buchungen passt und bei welchem Projekt die Abweichung liegt.
|
||||
|
||||
Der Monatsabgleich ist besonders hilfreich, wenn mehrere Teamspace-Projekte an einem Ticket hängen oder wenn Teamspace-Zeiten direkt auf Unterpositionen gebucht wurden. Diese Unterpositionszeiten werden dem passenden Teamspace-Projekt-Eintrag zugerechnet.
|
||||
|
||||
In der Monatsübersicht wird der gespeicherte Snapshot direkt am Ticket ausgegeben: TS-Monatswert, Differenz und die betroffenen Haupt- oder Unterpositionen. So ist nicht nur sichtbar, dass eine Abweichung existiert, sondern auch, auf welcher Teamspace-Position die Zeit gebucht wurde.
|
||||
|
||||
## Projektbudget-Hinweise
|
||||
|
||||
Projektbudget-Hinweise basieren auf den aktuellen Projektregeln:
|
||||
|
||||
- Budget kommt aus Teamspace.
|
||||
- Ist kommt entweder aus TT-Teamspace-Tageswerten plus manuellen Projektstunden oder aus Teamspace, abhängig vom Profil-Schalter.
|
||||
- Überschreitungen werden als Warnung angezeigt.
|
||||
- Stückpositionen werden gesondert bewertet und nicht als Stundenbudget behandelt.
|
||||
@@ -0,0 +1,79 @@
|
||||
# ToDos, Wiedervorlagen und fixe Abrechnungen
|
||||
|
||||
Diese Seite beschreibt die Aufgabenlogik und automatisch erzeugte Sessions.
|
||||
|
||||
## ToDos
|
||||
|
||||
ToDos können direkt an Tickets oder Projekte gehängt werden.
|
||||
|
||||
Ein ToDo enthält:
|
||||
|
||||
- Aufgabe
|
||||
- Priorität
|
||||
- Status offen oder erledigt
|
||||
- optional Umsetzung von
|
||||
- optional Umsetzung bis
|
||||
- optionale Beschreibung
|
||||
|
||||
ToDos können bearbeitet, erledigt, wieder geöffnet oder gelöscht werden.
|
||||
|
||||
## ToDo-Seite
|
||||
|
||||
Die zentrale ToDo-Seite bietet:
|
||||
|
||||
- heutige ToDos
|
||||
- offene, erledigte oder alle ToDos
|
||||
- Suche nach Ticketnummer
|
||||
- Sortierung
|
||||
- Gruppierung
|
||||
- freie Reihenfolge per Drag and Drop
|
||||
- Kalenderansicht
|
||||
|
||||
Überfällige ToDos werden hervorgehoben. ToDos mit Zeitraum zählen an jedem Arbeitstag im Zeitraum. Ein-Tages-ToDos erscheinen einzeln am jeweiligen Tag.
|
||||
|
||||
## Wiedervorlagen
|
||||
|
||||
Für Consulting-Projekte können automatische Wiedervorlagen entstehen, wenn länger keine Aktivität im TicketTracker passiert ist.
|
||||
|
||||
Mögliche Regeln:
|
||||
|
||||
- erste Wiedervorlage nach einer definierten Anzahl Wochen ohne Aktivität
|
||||
- optionale zweite Wiedervorlage nach weiterem Stillstand
|
||||
- automatische Erledigung, wenn später wieder eine Session auf dem Projekt erfasst wird
|
||||
|
||||
Die Einstellungen dafür liegen im Profil.
|
||||
|
||||
## Zammad-Termine
|
||||
|
||||
Aus Zammad-Tickets im Status **Wartend** oder **Abschluss** mit Datum kann TicketTracker Termin-ToDos erzeugen.
|
||||
|
||||
So werden Zammad-Termine direkt im TicketTracker-Dashboard, in der ToDo-Seite und im Kalender sichtbar.
|
||||
|
||||
## Fixe Abrechnungen
|
||||
|
||||
Regelmäßige Leistungen können als fixe Abrechnung angelegt werden.
|
||||
|
||||
Beispiele:
|
||||
|
||||
- jeden Donnerstag 4 Stunden
|
||||
- bestimmte Wochentage mit festen Zeiten
|
||||
- alle 2 Wochen eine Leistung
|
||||
|
||||
TicketTracker erzeugt daraus automatisch Sessions.
|
||||
|
||||
## Feiertage und Ausnahmen
|
||||
|
||||
Bayerische Feiertage werden berücksichtigt. Für Feiertage werden keine fixen Sessions erzeugt.
|
||||
|
||||
Einzelne automatisch erzeugte Sessions können gelöscht werden, zum Beispiel wegen Urlaub, Krankheit oder Verschiebung. Diese Löschung wird als Ausnahme gespeichert, damit die Session beim nächsten Aufruf nicht automatisch wieder erscheint.
|
||||
|
||||
Wenn eine wiederkehrende Leistung an einem anderen Tag erbracht wurde, kann die erzeugte Session bearbeitet oder verschoben werden.
|
||||
|
||||
## Bewertung fixer Sessions
|
||||
|
||||
Fix erzeugte Sessions verhalten sich im Abschluss wie normale Sessions:
|
||||
|
||||
- Sie müssen bewertet werden.
|
||||
- **Abrechenbar** bleibt ein Zwischenstatus.
|
||||
- **Abgerechnet** und **Nicht abrechenbar** sind final.
|
||||
- Offene oder abrechenbare Sessions blockieren den Monatsabschluss.
|
||||
@@ -0,0 +1,107 @@
|
||||
# Profil, Adminbereich und Betrieb
|
||||
|
||||
Diese Seite beschreibt persönliche Einstellungen, Adminfunktionen und betriebliche Hinweise.
|
||||
|
||||
## Profil
|
||||
|
||||
Jeder Benutzer pflegt im Profil seine persönlichen Einstellungen:
|
||||
|
||||
- Benutzername und Anzeigename
|
||||
- Passwort
|
||||
- persönlicher Zammad API-Token
|
||||
- Teamspace-Geraete-ID und Geraetepasswort
|
||||
- angezeigte Zammad User-ID
|
||||
- angezeigte Teamspace User-ID
|
||||
- Bewertungsabfrage beim Timerabschluss
|
||||
- Teamspace-Zeiten in TT erfassen
|
||||
- interne Zammad-Notiz beim Timerabschluss
|
||||
- Standard-Typ für interne Zammad-Notizen
|
||||
- optionale Zammad-Zeitaufrundung für `time_unit`
|
||||
- ATOSS/eMail-Sync-Optionen, sofern aktiviert
|
||||
- Projekt-Wiedervorlagen
|
||||
|
||||
Passwortänderungen erfordern das aktuelle Passwort. Bleiben die Passwortfelder leer, werden nur die übrigen Profildaten gespeichert.
|
||||
|
||||
## Zammad-Zugang im Profil
|
||||
|
||||
Normale Benutzer können im Profil einen persönlichen Zammad API-Token hinterlegen. Beim Speichern eines neuen Tokens ruft TicketTracker Zammad ab und speichert die User-ID, die Zammad für diesen Token zurückliefert.
|
||||
|
||||
Der Token wird verschlüsselt gespeichert. Die User-ID wird danach read-only im Profil angezeigt.
|
||||
|
||||
## Teamspace-Zugang im Profil
|
||||
|
||||
Jeder Benutzer kann seine Teamspace-Geraete-ID und sein Geraetepasswort speichern.
|
||||
|
||||
Beim Speichern werden die Zugangsdaten gegen Teamspace geprüft. Wenn die Prüfung erfolgreich ist, speichert TicketTracker die Teamspace User-ID und zeigt sie im Profil an.
|
||||
|
||||
Geraete-ID und Passwort werden verschlüsselt in der Datenbank gespeichert.
|
||||
|
||||
## Teamspace-Zeiten in TT erfassen
|
||||
|
||||
Der Schalter **Teamspace-Zeiten in TT erfassen** ist userbezogen und steuert, ob ein Benutzer Teamspace-Tageswerte in TicketTracker pflegt.
|
||||
|
||||
**An:**
|
||||
|
||||
- Teamspace-Tageswerte können in TicketTracker erfasst werden.
|
||||
- Manuelle Projektstunden sind editierbar.
|
||||
- Projekt-Ist kommt aus TT-Teamspace-Tageswerten plus manuellen Projektstunden.
|
||||
- Statistiken und Monatsprüfung vergleichen TT gegen Teamspace-Werte.
|
||||
|
||||
**Aus:**
|
||||
|
||||
- Teamspace-Tageswerte können nicht erfasst werden.
|
||||
- Manuelle Projektstunden sind ausgeblendet und serverseitig gesperrt.
|
||||
- Projekt-Ist kommt aus Teamspace.
|
||||
- Monatsprüfung und Widgets prüfen nur Session-Status.
|
||||
- Teamspace-Differenzen werden ausgeblendet.
|
||||
|
||||
Der Schalter ist bewusst userbezogen. Zwei Benutzer können am gleichen Projekt arbeiten und trotzdem unterschiedliche Erfassungs- und Prüflogiken nutzen.
|
||||
|
||||
## Adminbereich
|
||||
|
||||
Der feste Admin ist für Systemverwaltung vorgesehen. Er kann:
|
||||
|
||||
- Benutzer anlegen und bearbeiten
|
||||
- Passwörter für Benutzer setzen
|
||||
- Zammad-Adminzugang für Organisationssync pflegen
|
||||
- Teamspace-Base-URL speichern
|
||||
- Organisationen aus Zammad synchronisieren
|
||||
- SQL-Backups herunterladen
|
||||
- Restore-fähige SQL-Backups wieder einspielen
|
||||
|
||||
Der Admin sieht keine Timer, keine persönlichen Auswertungen, keine Statistiken, keine fixen Abrechnungen und keinen Monatsabschluss. Diese Bereiche sind für normale Benutzer vorgesehen.
|
||||
|
||||
## Teamspace-Base-URL
|
||||
|
||||
Die Teamspace-Base-URL wird im Adminbereich gespeichert. Ohne diese URL können Benutzer ihre Teamspace-Zugangsdaten nicht sinnvoll für API-Syncs nutzen.
|
||||
|
||||
Die persönlichen Teamspace-Zugangsdaten liegen dagegen im Benutzerprofil.
|
||||
|
||||
## Backup und Restore
|
||||
|
||||
Der Adminbereich kann SQL-Backups erzeugen und wieder einspielen.
|
||||
|
||||
Der Export enthält alle Tabellen, die für den Systemstand notwendig sind, unter anderem:
|
||||
|
||||
- Benutzer
|
||||
- Einstellungen
|
||||
- Organisationen
|
||||
- Tickets
|
||||
- Sessions
|
||||
- Teamspace-Werte
|
||||
- Projektinformationen
|
||||
- Unterpositionen
|
||||
- fixe Abrechnungen
|
||||
- Ausnahmen
|
||||
- Monatsabschlüsse
|
||||
|
||||
Ein Restore ersetzt den aktuellen Datenbestand durch den Stand des Backups. Vor dem Restore wird die Struktur geprüft. Nach dem Restore ist eine neue Anmeldung mit den Zugangsdaten aus dem Backup notwendig.
|
||||
|
||||
## Technischer Stack
|
||||
|
||||
- Frontend: Next.js, React, shadcn/ui, Tailwind CSS
|
||||
- Backend: Node.js, Express, TypeScript
|
||||
- Datenbank: PostgreSQL
|
||||
- Deployment: Docker-fähig
|
||||
|
||||
Secrets wie Zammad-Token und Teamspace-Zugangsdaten werden verschlüsselt gespeichert.
|
||||
Reference in new issue
Block a user