export type HelpSection = { id: string; title: string; description: string; quickItems: string[]; details: string[]; workflow?: string[]; diagram?: string[]; }; export const helpSections: HelpSection[] = [ { id: "grundprinzip", title: "Grundprinzip", description: "TicketTracker ist die Arbeitszeiterfassung neben Ticketsystem und CRM. Die App misst Arbeit, bewertet Sessions und macht Monatsabschlüsse kontrollierbar.", quickItems: [ "Sessions sind die getrackten oder nachgetragenen Arbeitszeiten.", "Teamspace-Werte sind Tageswerte pro Ticket, nicht einzelne Sessions.", "Abgeschlossen wird nur der Monat." ], details: [ "TicketTracker ersetzt nicht das Ticketsystem. Ticketnummern dienen als Bezug zur Arbeit, die eigentliche Dokumentation bleibt im vorhandenen Ticketsystem.", "TicketTracker ersetzt auch nicht das CRM. Die CRM- beziehungsweise Teamspace-Zeit wird als Kontrollwert gepflegt, damit abgerechnete Zeiten und eingetragene Abrechnung gegenübergestellt werden können.", "Eine Session ist immer einem Benutzer zugeordnet. In den normalen Auswertungen sieht jeder Benutzer nur seine eigenen Sessions.", "Ticketdaten wie Organisation und Art können aus bestehenden Tickets übernommen werden, auch wenn ein anderer Benutzer das Ticket schon bearbeitet hat.", "Tickets werden nicht abgeschlossen. Sie gruppieren Sessions. Relevant für den Abschluss ist nur, ob alle Sessions eines Monats bewertet sind.", "Der Monatsabschluss sperrt den Monat gegen versehentliche Änderungen. Muss doch noch etwas korrigiert werden, kann der Monat wieder geöffnet werden." ] }, { id: "monatsworkflow", title: "Monatsworkflow", description: "Der empfohlene Ablauf vom Start einer Arbeitssession bis zum sauberen Monatsabschluss.", quickItems: [ "Während des Monats: Ticketnummer eingeben, Timer starten, Session beenden und Tätigkeit dokumentieren.", "Vergessene Zeiten: Session manuell auf dem Ticket oder als neues Ticket nachtragen.", "Am Monatsende: offene Bewertungen bearbeiten, Teamspace-Tageswerte pflegen, Kontrolle durchführen und Monat schließen." ], details: [ "Der normale Einstieg ist das Ticketfeld im Kopfbereich oder die Seite Session starten. Dort gibst du die Ticketnummer ein und startest den Timer mit Timer starten.", "Während der Arbeit läuft genau ein Timer aktiv. Wechselst du zu einem anderen Timer, pausiert TicketTracker die übrigen Timer automatisch.", "Wenn die Arbeit erledigt ist, beendest du den Timer. Die Zeit stoppt sofort beim Klick auf Beenden; das anschließende Ausfüllen der Tätigkeit zählt nicht mehr zur Sessionzeit.", "Im Beenden-Dialog trägst du die Tätigkeit ein. Wenn das Ticket bereits bekannt ist, übernimmt TicketTracker Organisation und Art automatisch. Bei neuen Tickets wählst du Organisation und Art zusätzlich aus.", "Vergessene Sessions trägst du auf der Seite Session starten im Bereich Session nachtragen nach. Wenn das Ticket bereits in der Auswertung geöffnet ist, nutzt du in der Ticketdetailansicht ebenfalls Session nachtragen; dann ist die Zuordnung zum Ticket bereits vorbelegt.", "Unter Auswertung wählst du Monat oder Tag, öffnest ein Ticket über Öffnen und siehst dort alle Sessions nach Tag gruppiert.", "Im Ticket bewertest du jede Session mit Abgerechnet oder Nicht abrechenbar. Ein erneuter Klick auf den aktiven Status nimmt die Bewertung zurück.", "Im Ticket steht pro Tag das Feld Teamspace. Dort trägst du die Stunden ein, die du für genau dieses Ticket an genau diesem Tag wirklich im CRM beziehungsweise Teamspace erfasst hast. Nach einer Änderung erscheint der Speichern-Button.", "Die Teamspace-Zeit ist ein Tageswert pro Ticket und Benutzer. Monats- und Tagesansicht zeigen denselben Wert; er muss also nur einmal gepflegt werden.", "Am Monatsende öffnest du Monatsabschluss. Dort findest du offene Bewertungen gruppiert nach Ticket, Tage ohne Teamspace-Wert und die Schaltfläche Monat abschließen.", "Offene Bewertungen sind Pflicht: Öffne das Ticket aus der Liste, bewerte die Sessions und kehre zum Monatsabschluss zurück.", "Tage ohne Teamspace-Wert sind eine Prüfliste. Wenn die Arbeit wirklich nicht in Teamspace eingetragen werden soll, nutzt du Zur Kenntnis. Mit Zur Kenntnis anzeigen blendest du solche Einträge wieder ein und kannst die Kenntnisnahme zurücknehmen.", "Kontrolliere vor dem Abschluss die Kennzahl Teamspace im Monatsabschluss. Idealerweise entspricht dieser Wert der Summe, die du im CRM beziehungsweise Teamspace für den Monat eingetragen hast.", "Wenn alle Sessions bewertet sind und die Teamspace-Kontrolle passt, schließt du den Monat mit Monat abschließen. Danach sind Bewertungen und Änderungen für den Monat geschützt, bis der Monat wieder geöffnet wird." ], workflow: [ "Ticketfeld im Kopfbereich oder Session starten öffnen.", "Ticketnummer eingeben und Timer starten.", "Arbeit erledigen; bei Bedarf zwischen vorbereiteten Timern wechseln.", "Timer beenden und Tätigkeit speichern.", "Vergessene Zeiten über Session nachtragen ergänzen.", "Auswertung öffnen, Monat wählen und Tickets prüfen.", "Ticket öffnen, Sessions pro Tag bewerten und Teamspace-Tageswerte speichern.", "Monatsabschluss öffnen, offene Bewertungen und Teamspace-Prüfpunkte abarbeiten.", "Teamspace-Summe mit dem CRM vergleichen.", "Monat abschließen." ], diagram: [ "Ticketnummer eingeben", "Timer starten", "Arbeit am Ticket erledigen", "Timer beenden", "Tätigkeit eintragen", "Session wird dem Ticket und Benutzer gespeichert", "Optional: vergessene Session nachtragen", "Auswertung öffnen und Ticket prüfen", "Sessions bewerten", "Teamspace pro Ticket-Tag eintragen", "Monatsabschluss öffnen", "Offene Bewertungen und Teamspace-Prüfpunkte klären", "Teamspace-Summe mit CRM vergleichen", "Monat abschließen" ] }, { id: "erstes-setup", title: "Erstes Setup", description: "Wenn noch kein Admin existiert, startet TicketTracker mit einer Setup-Seite.", quickItems: [ "Admin direkt im Browser anlegen.", "Alternativ ein TicketTracker-SQL-Backup prüfen und einspielen.", "Nach Restore gelten ausschließlich die Daten aus dem Backup." ], details: [ "Admin-Zugangsdaten werden nicht mehr über .env gesetzt.", "Beim ersten Start ohne Admin zeigt TicketTracker automatisch die Setup-Seite.", "Über Admin anlegen erstellst du den festen Admin und wirst direkt angemeldet.", "Über Backup einspielen lädst du ein restore-fähiges SQL-Backup aus TicketTracker hoch.", "Nach dem Hochladen prüft TicketTracker die Dump-Struktur gegen die aktuelle Datenbankstruktur.", "Der Restore-Button wird erst aktiv, wenn keine Felder fehlen und keine unbekannten Felder enthalten sind.", "Beim Restore werden zuerst alle TicketTracker-Tabellen geleert. Danach gelten Benutzer, Passwörter, Sessions, Teamspace-Werte, Settings und Abschlüsse aus dem Backup.", "Nach einem Restore meldest du dich mit einem Benutzer aus dem Backup an." ] }, { id: "timer", title: "Timer", description: "Timer erfassen laufende Arbeit an Tickets. Es können mehrere Timer vorbereitet sein, aber immer nur einer läuft aktiv.", quickItems: [ "Ticketnummer eingeben und Timer starten.", "Aktivieren eines Timers pausiert alle anderen Timer automatisch.", "Beim Beenden stoppt die Zeit sofort; Details werden danach gespeichert." ], details: [ "Neue Timer werden mit einer Ticketnummer im Format Ticket#XXXXXX gestartet.", "Alle laufenden und pausierten Timer bleiben in der Seitenleiste sichtbar, damit du auf jeder Unterseite sehen kannst, was vorbereitet oder aktiv ist.", "Wenn ein anderer Timer aktiviert wird, pausiert TicketTracker die übrigen Timer automatisch. Dadurch kann nie versehentlich auf zwei Tickets gleichzeitig Zeit laufen.", "Beim Klick auf Beenden wird die Stoppuhr sofort angehalten. Das Speichern der Tätigkeit findet danach statt und verlängert die gemessene Zeit nicht.", "Existiert das Ticket bereits, übernimmt TicketTracker Organisation und Art. Dann muss beim Beenden nur noch die Tätigkeit eingetragen werden.", "Existiert das Ticket noch nicht, müssen Organisation, Tätigkeit und Art angegeben werden.", "Pausen werden von der Gesamtdauer abgezogen. Die gespeicherte Zeit wird auf volle Minuten gerundet.", "Der Schnellstart im Kopfbereich funktioniert auf allen Unterseiten und nutzt dieselbe Timerlogik." ] }, { id: "session-nachtragen", title: "Session Nachtragen", description: "Nachtragen ist für vergessene Zeiten gedacht, wenn kein Timer gelaufen ist.", quickItems: [ "Datum, Von, Bis und Tätigkeit eintragen.", "Benutzer tragen eigene Sessions nach.", "Tätigkeiten sind mehrzeilig." ], details: [ "Beim Nachtragen wird aus Datum, Startzeit und Endzeit automatisch die Dauer berechnet.", "Das Ende muss nach dem Beginn liegen. Übernacht-Sessions sind aktuell nicht vorgesehen und sollten als getrennte Einträge gepflegt werden.", "Die Organisation muss aus der synchronisierten Organisationsliste gewählt werden. Freitext ist absichtlich gesperrt.", "Die Tätigkeit ist eine Textarea. Zeilenumbrüche bleiben erhalten und werden in der Ticketdetailansicht wieder ausgegeben.", "Nachgetragene Sessions starten immer offen. Sie müssen später als Abgerechnet oder Nicht abrechenbar bewertet werden.", "In der Ticketdetailansicht kann eine Session direkt zum geöffneten Ticket nachgetragen werden. Ticketnummer und Stammdaten sind dort schon vorbelegt beziehungsweise aus dem Ticket abgeleitet." ] }, { id: "ticketdaten", title: "Ticketdaten", description: "Ticketdaten sind Stammdaten für ein Ticket und können nachträglich korrigiert werden.", quickItems: [ "Ticketnummer, Organisation und Art sind bearbeitbar.", "Organisationen kommen aus der lokalen Zammad-Synchronisation.", "Die Art wiederkehrender Sessions kommt aus der Regel." ], details: [ "Ticketnummern können korrigiert werden, falls beim Starten oder Nachtragen ein falscher Bezug gewählt wurde.", "Die Organisation wird immer über die Suchliste gewählt. Dadurch sind spätere Auswertungen pro Organisation zuverlässig.", "Änderungen an Organisation und Art werden auf vorhandene manuelle Sessions dieses Tickets übernommen.", "Bei wiederkehrenden Sessions ist die Art nicht direkt an der Session änderbar. Sie wird ausschließlich über die fixe Abrechnungsregel gesteuert.", "Wenn ein Ticket bereits durch einen anderen Benutzer bekannt ist, können dessen Ticketdaten beim Beenden eines Timers übernommen werden. Die Session selbst bleibt trotzdem deinem Benutzer zugeordnet." ] }, { id: "organisationen", title: "Organisationen", description: "Organisationen kommen aus Zammad und bilden die Grundlage für saubere Kunden- und Monatsauswertungen.", quickItems: [ "Nur Admins synchronisieren Organisationen.", "Freitext ist danach nicht mehr möglich.", "Gespeichert werden Zammad-ID, Name und Zeitstempel." ], details: [ "Im Adminbereich werden Zammad-URL und API-Key gespeichert. Der API-Key wird danach nicht mehr im Klartext angezeigt.", "Beim Sync fragt TicketTracker die Organisationen aus Zammad ab und schreibt sie in die lokale Datenbank.", "Neue Organisationen werden angelegt, geänderte Namen werden aktualisiert.", "Organisationen, die in Zammad nicht mehr vorhanden sind, werden aus der lokalen Liste entfernt beziehungsweise von vorhandenen Tickets und Sessions gelöst.", "Alte Sessions oder Tickets mit Freitext-Organisationen müssen manuell korrigiert werden, indem eine Organisation aus der Liste gewählt wird.", "Die bewusst schlanke Organisationstabelle enthält interne ID, Zammad-ID, Name sowie Erstell- und Änderungszeitpunkte." ] }, { id: "auswertung", title: "Auswertung", description: "Die Auswertung ist die Arbeitsliste für Monat und Tag: Tickets öffnen, Sessions prüfen, sortieren und bewerten.", quickItems: [ "Monat oder Tag wählen; die Ansicht aktualisiert automatisch.", "Tickets können gefiltert, gruppiert und sortiert werden.", "Die Einstellungen bleiben nach Refresh und Browserneustart erhalten.", "Monate können als CSV exportiert werden." ], details: [ "Die Monatsansicht zeigt alle Tickets, die im gewählten Monat mindestens eine Session haben.", "Die Tagesansicht zeigt dieselben Datenlogiken auf einen einzelnen Tag gefiltert. Es gibt keinen Tagesabschluss.", "Die Pfeile neben der Zeitraum-Eingabe springen jeweils einen Monat oder einen Tag vor beziehungsweise zurück.", "Über Monat exportieren lädst du eine CSV-Datei deiner eigenen Sessions dieses Monats herunter.", "Der CSV-Export enthält Ticket, Organisation, Art, Datum, Von/Bis, Bewertung, Session-Minuten, Teamspace-Minuten und Tätigkeit.", "Der Graph zeigt abgerechnete Zeit im Zeitraum. In der Monatsansicht pro Tag, in der Tagesansicht pro Stunde.", "Die Ticketliste kann nach Typ, Organisation oder Status gruppiert werden. Gruppenüberschriften zeigen Anzahl, abgerechnete Zeit und offene Bewertungen.", "Filter und Sortierungen bleiben im Browser gespeichert und können über Zurücksetzen wieder auf Standard gestellt werden.", "Das Copy-Icon neben der Ticketnummer kopiert die Nummer direkt in die Zwischenablage." ] }, { id: "ticketdetail", title: "Ticketdetailansicht", description: "Die Ticketdetailansicht ist die Bearbeitungsfläche für Sessions, Bewertungen und Teamspace-Tageswerte eines Tickets.", quickItems: [ "Sessions sind nach Tag gruppiert.", "Teamspace wird pro Ticket und Tag gespeichert.", "Monats- und Tagesansicht verwenden denselben Teamspace-Wert." ], details: [ "Oben steht die Ticketnummer mit Copy-Icon, damit sie schnell in andere Systeme übernommen werden kann.", "Die Session-Einträge sind nach Kalendertagen gruppiert. Pro Tagesgruppe steht die Summe der abgerechneten Zeit.", "Nicht abrechenbare und offene Zeiten werden neben der abgerechneten Tageszeit separat angezeigt.", "Das Teamspace-Feld wird als Stundenwert gepflegt, zum Beispiel 1, 1,5 oder 2.25.", "Während der Eingabe wird der Teamspace-Wert nicht sofort gespeichert. Sobald eine Änderung vorliegt, erscheint ein Speichern-Button.", "Ein leeres Teamspace-Feld entfernt den gespeicherten Teamspace-Wert für diesen Ticket-Tag.", "Der Teamspace-Wert hängt am Ticket, Benutzer und Tag. Deshalb ist er in Monats- und Tagesansicht identisch.", "Geöffnete Tickets werden in der Seitenleiste unter Geöffnete Tickets abgelegt und bleiben nach Refresh oder Browserneustart erhalten.", "Die Reihenfolge bleibt beim Anklicken stabil und kann nur per Drag and Drop geändert werden.", "Der Schließen-Button in der Seitenleiste entfernt ein Ticket nur, wenn im aktuell geöffneten Ticket keine ungespeicherten Werte mehr vorhanden sind.", "Sessions können bewertet, bearbeitet oder gelöscht werden. Gelöschte letzte Sessions können dazu führen, dass ein leeres Ticket entfernt wird." ] }, { id: "sessions-bewerten", title: "Sessions Bewerten", description: "Bewertungen bestimmen, ob eine Session abgerechnet wurde oder bewusst nicht abrechenbar ist.", quickItems: [ "Jede Session braucht genau eine Bewertung.", "Abgerechnet und Nicht abrechenbar können durch erneuten Klick zurückgenommen werden.", "Offene Bewertungen blockieren den Monatsabschluss." ], details: [ "Abgerechnet bedeutet: Die Session wurde für die Abrechnung beziehungsweise im CRM berücksichtigt.", "Nicht abrechenbar bedeutet: Die Session gehört zum Arbeitsnachweis, wird aber nicht abgerechnet.", "Ein erneuter Klick auf den aktiven Bewertungsbutton entfernt die Bewertung und macht die Session wieder offen.", "Nicht abrechenbare Sessions zählen als bewertet. Sie blockieren den Monatsabschluss nicht.", "Wenn ein Monat abgeschlossen ist, sind Bewertungen gesperrt. Öffne den Monat zuerst wieder, wenn du etwas korrigieren musst.", "Die offenen Bewertungen findest du gebündelt im Monatsabschluss." ] }, { id: "sessions-bearbeiten", title: "Sessions Bearbeiten und Löschen", description: "Sessions können korrigiert, gelöscht und bei wiederkehrenden Einträgen als Ausnahme behandelt werden.", quickItems: [ "Bearbeiten läuft über das Stift-Icon.", "Löschen läuft über das Papierkorb-Icon.", "Wiederkehrende gelöschte Sessions werden nicht neu erzeugt." ], details: [ "Beim Bearbeiten sind Datum, Von-Uhrzeit, Bis-Uhrzeit, Organisation und Tätigkeit änderbar.", "Die Art ist bei manuellen Sessions änderbar. Bei wiederkehrenden Sessions ist sie gesperrt und kommt aus der Regel.", "Die Dauer wird aus Von und Bis neu berechnet und wieder auf Minuten gerundet.", "Beim Löschen wird geprüft, ob dadurch ein Ticket für dich oder komplett leer wird. Leere Tickets werden entfernt.", "Wenn die letzte Session eines Tickets gelöscht wird, springt die Ansicht zurück zur Auswertung.", "Wiederkehrend erzeugte Sessions werden beim Löschen als Ausnahme gespeichert. Dadurch erscheinen sie beim nächsten Öffnen des Monats nicht wieder automatisch.", "Wenn eine wiederkehrende Leistung nur an einem anderen Tag erledigt wurde, wird die erzeugte Session bearbeitet beziehungsweise verschoben." ] }, { id: "monatsabschluss", title: "Monatsabschluss", description: "Der Monatsabschluss ist die Kontrollseite für offene Bewertungen und Teamspace-Punkte vor dem Abschluss.", quickItems: [ "Bewertungen sind Pflicht für den Abschluss.", "Tage ohne Teamspace-Wert können zur Kenntnis genommen werden.", "Der Monat kann wieder geöffnet werden." ], details: [ "Ein Monat kann abgeschlossen werden, sobald alle Sessions dieses Monats bewertet sind.", "Tage ohne Teamspace-Wert blockieren den Abschluss nicht automatisch. Sie sind eine Prüfliste für CRM-Abgleich und Nacharbeit.", "Wenn eine Session bewusst nicht in Teamspace eingetragen wird, kann der fehlende Tageswert zur Kenntnis genommen werden.", "Zur Kenntnis genommene Einträge können über die Checkbox Zur Kenntnis anzeigen wieder eingeblendet werden.", "Die Kenntnisnahme kann pro Eintrag über Zurücknehmen rückgängig gemacht werden.", "Die Einstellung, ob zur Kenntnis genommene Einträge angezeigt werden, bleibt im Browser gespeichert.", "Offene Bewertungen werden nach Ticket gruppiert. Ein Klick auf Ticket öffnen führt zur Bewertung im Ticket.", "Es gibt keinen Tagesabschluss. Tagesansichten dienen nur der Kontrolle." ] }, { id: "fixe-abrechnungen", title: "Fixe Abrechnungen", description: "Fixe Abrechnungen erzeugen wiederkehrende Sessions für planbare regelmäßige Leistungen.", quickItems: [ "Jeder Benutzer verwaltet eigene fixe Abrechnungen.", "Ticket ist optional; ohne Ticket entsteht Fix#ID.", "Feiertage in Bayern werden übersprungen." ], details: [ "Fixe Abrechnungen sind für regelmäßige Leistungen gedacht, zum Beispiel jeden Donnerstag vier Stunden oder mehrere Wochentage mit unterschiedlichen Dauern.", "Das Ticketfeld darf leer bleiben. Dann gruppiert TicketTracker die erzeugten Sessions automatisch unter Fix#ID.", "Die Organisation, Art und Tätigkeit kommen aus der Regel und werden auf erzeugte Sessions angewendet.", "Beim Muster Wochentage werden einzelne Slots mit Wochentag, Startzeit und Dauer gepflegt.", "Beim Muster Alle X Wochen zählt das Gültig-von-Datum als Startpunkt. Das Intervall läuft wochenweise.", "Gültig bis ist optional. Wird es später gesetzt oder geändert, werden erzeugte Sessions außerhalb der Gültigkeit entfernt.", "Bayerische Feiertage werden bei der automatischen Anlage ausgelassen.", "Einzelne erzeugte Sessions können wegen Urlaub, Krankheit oder Feiertagsverschiebung gelöscht oder verschoben werden." ] }, { id: "statistiken", title: "Statistiken", description: "Statistiken vergleichen abgerechnete Session-Zeit, offene Bewertungen und Teamspace-Werte.", quickItems: [ "Abgerechnet und Teamspace haben getrennte Farben.", "Positive oder gleiche Differenz ist grün.", "Negative Differenz ist rot." ], details: [ "Die Statistikseite betrachtet immer einen Monat.", "Abgerechnet zeigt nur Sessions mit der Bewertung Abgerechnet. Offene Zeiten sind dort nicht enthalten.", "Alle Statistik- und Vergleichswerte nutzen nur abgerechnete Zeiten.", "Teamspace zeigt, wie viel Zeit für dieselben abrechenbaren Ticket-Tage im CRM eingetragen wurde.", "Eine positive Differenz bedeutet: In Teamspace steht mehr Zeit als abgerechnet wurde.", "Eine negative Differenz bedeutet: In Teamspace steht weniger Zeit als abgerechnet wurde.", "Offene Sessions werden nicht in Relationen, Graphen, Teamspace-Differenzen, Hotspots, Manuell/Fix-Werte oder Durchschnittswerte eingerechnet.", "Der Monatsverlauf zeigt abgerechnete Session-Zeit als Balken und Teamspace als Linie.", "Organisationen, Typen und Ticket-Hotspots helfen dabei, Auffälligkeiten im Monat schnell zu finden." ] }, { id: "statistik-getrackt", title: "Statistik: Abgerechnet", description: "Diese Kennzahl zeigt die abrechenbare Session-Zeit im gewählten Monat.", quickItems: [ "Summe aller Sessions mit Bewertung Abgerechnet.", "Zeigt zusätzlich die abgerechnete Sessionanzahl.", "Basiswert für den Vergleich mit Teamspace." ], details: [ "Abgerechnet umfasst nur Sessions des angemeldeten Benutzers, die aktiv als Abgerechnet markiert wurden.", "Offene Sessions werden aus diesem Wert herausgehalten.", "Auch automatisch erzeugte Sessions aus fixen Abrechnungen zählen hier mit, sobald sie als Abgerechnet markiert wurden.", "Es werden keine offenen Zeiten in diesen Wert eingerechnet.", "Dieser Wert ist die Ausgangsbasis für Teamspace-Differenzen: Teamspace minus abgerechnete Session-Zeit ergibt die Differenz." ] }, { id: "statistik-teamspace", title: "Statistik: Teamspace", description: "Diese Kennzahl zeigt, wie viele Stunden für die Ticket-Tage im CRM beziehungsweise Teamspace eingetragen wurden.", quickItems: [ "Summe aller Teamspace-Tageswerte im Monat.", "Positive oder gleiche Differenz ist grün.", "Negative Differenz ist rot." ], details: [ "Teamspace-Werte werden pro Ticket und Tag gepflegt, nicht pro einzelner Session.", "Die Statistik summiert alle Teamspace-Werte des Monats für den angemeldeten Benutzer.", "Eine positive Differenz bedeutet, dass in Teamspace mehr Zeit steht als abgerechnet wurde.", "Eine negative Differenz bedeutet, dass in Teamspace weniger Zeit steht als abgerechnet wurde.", "Offene Sessions fließen nicht in diese Differenz ein.", "Fehlende Teamspace-Werte können im Monatsabschluss geprüft und bei Bedarf zur Kenntnis genommen werden." ] }, { id: "statistik-offen", title: "Statistik: Offen", description: "Diese Kennzahl zeigt Sessions, die noch keine Bewertung haben.", quickItems: [ "Offen bedeutet: noch keine Bewertung.", "Offene Sessions blockieren den Monatsabschluss.", "Die Klärung erfolgt in der Ticketdetailansicht." ], details: [ "Offen umfasst alle Sessions des Monats ohne Bewertung.", "Diese Sessions müssen vor dem Monatsabschluss bewertet werden.", "Die offene Zeit zeigt, wie viele Minuten noch bewertet werden müssen.", "Der Monatsabschluss listet offene Bewertungen gruppiert nach Ticket, damit du direkt in die passende Ticketdetailansicht springen kannst.", "Wird eine Bewertung zurückgenommen, steigt die offene Anzahl wieder." ] }, { id: "statistik-verlauf", title: "Statistik: Monatsverlauf und Qualität", description: "Diese Card verbindet Tagesverlauf, Teamspace-Linie und reine Statuswerte.", quickItems: [ "Balken zeigen abgerechnete Sessions.", "Die Linie zeigt Teamspace-Werte.", "Der rechte Bereich zeigt Bewertung und Teamspace-Abgleich." ], details: [ "Der Monatsverlauf zeigt jeden Tag des Monats. Tage ohne Sessions bleiben leer, damit die Monatsstruktur sichtbar bleibt.", "Die blauen Balken stehen für abgerechnete Session-Zeit.", "Die fuchsiafarbene Linie steht für Teamspace-Zeit, sofern für den Tag Werte gepflegt wurden.", "Der Bewertungsstand weist Abgerechnet und Offen getrennt aus.", "Der Teamspace-Abgleich zeigt die Gesamtdifferenz zwischen CRM-Werten und abgerechneter Session-Zeit.", "Manuell und Fix trennen selbst erfasste abrechenbare Sessions von automatisch erzeugten abrechenbaren Sessions aus fixen Abrechnungen." ] }, { id: "statistik-organisationen", title: "Statistik pro Organisation", description: "Diese Card zeigt Aufwand und Teamspace-Abgleich je Kunde beziehungsweise Organisation.", quickItems: [ "Gruppiert nach Organisation.", "Zeigt Sessions, Zeiten und Differenz.", "Die Liste ist paginiert." ], details: [ "Die Organisationsstatistik fasst alle Tickets und Sessions einer Organisation im gewählten Monat zusammen.", "Sessions zeigt die Anzahl der einzelnen Arbeitseinträge.", "Zeiten vergleicht abgerechnete Session-Zeit mit Teamspace-Zeit.", "Die Differenz wird als Teamspace minus abgerechnete Zeit berechnet.", "Der Anteil am Monat zeigt, wie groß die abgerechnete Zeit dieser Organisation im Verhältnis zur größten Organisation im Monat ist.", "Bei vielen Organisationen wird die Liste paginiert, damit die Seite kompakt bleibt." ] }, { id: "statistik-typen", title: "Statistik: Typen", description: "Diese Card trennt den Monatsaufwand nach Support und Consulting.", quickItems: [ "Vergleicht Support und Consulting.", "Zeigt Sessions, Zeiten und Teamspace-Differenz.", "Zeigt zusätzlich Bewertungsstatus je Typ." ], details: [ "Die Typenstatistik gruppiert Sessions nach Art.", "Support und Consulting werden getrennt summiert.", "Die Zeitwerte zeigen abgerechnete Sessions und Teamspace für den jeweiligen Typ.", "Die Differenz folgt derselben Logik wie überall: Teamspace minus abgerechnete Session-Zeit.", "Die Zeile Abr. und Offen zeigt, wie viele Sessions dieses Typs bereits abgerechnet oder noch offen sind." ] }, { id: "statistik-hotspots", title: "Ticket-Hotspots", description: "Diese Card zeigt die größten Zeitblöcke des Monats nach Ticket.", quickItems: [ "Sortiert nach größtem Zeitaufwand.", "Zeigt Sessions, Teamspace und Differenz.", "Öffnen führt direkt zur Ticketdetailansicht." ], details: [ "Ticket-Hotspots helfen, die größten Aufwandstreiber im Monat schnell zu erkennen.", "Die Liste zeigt die wichtigsten Tickets nach abgerechneter Zeit.", "Pro Ticket siehst du Organisation, Sessionanzahl, aktive abrechenbare Tage, abgerechnete Zeit, Teamspace-Zeit und Differenz.", "Offene Tickets werden mit einem Warnstatus angezeigt, damit Bewertungen nachgezogen werden können.", "Über Öffnen gelangst du direkt in die Ticketdetailansicht des Monats." ] }, { id: "profil", title: "Profil", description: "Im Profil pflegt jeder Benutzer die eigenen Zugangsdaten.", quickItems: [ "Benutzername und voller Name sind änderbar.", "Passwortänderung benötigt das aktuelle Passwort.", "Der volle Name wird in der Oberfläche angezeigt." ], details: [ "Der Benutzername wird beim Login verwendet und muss eindeutig sein.", "Der volle Name erscheint in der App, zum Beispiel im Kopfbereich oder im Adminbereich.", "Wenn du dein Passwort ändern willst, musst du das aktuelle Passwort sowie das neue Passwort zweimal eingeben.", "Bleiben die Passwortfelder leer, werden nur Benutzername und voller Name gespeichert.", "Admins können Benutzer ebenfalls verwalten, aber jeder Benutzer kann die eigenen Daten jederzeit selbst pflegen." ] }, { id: "admin", title: "Adminbereich", description: "Der feste Adminbereich verwaltet Benutzer, Zammad-Sync und restore-fähige Datenbankexporte.", quickItems: [ "Neue Benutzer erhalten automatisch die Rolle User.", "Der Admin erfasst keine Sessions und sieht keine Auswertungen.", "SQL-Backups sind für einen kompletten Restore gedacht." ], details: [ "Neue Benutzer bekommen Benutzername, vollen Namen, Passwort und Aktivstatus. Eine Rollenauswahl gibt es nicht.", "Admins können bestehende Benutzer bearbeiten, Passwörter setzen und Benutzer deaktivieren.", "Der feste Admin-Zugang kann nicht deaktiviert oder zur normalen User-Rolle herabgestuft werden.", "Der Data-Sync speichert Zammad-Zugangsdaten und synchronisiert Organisationen in die lokale Datenbank.", "Der Datenbankexport erzeugt eine SQL-Datei mit Benutzern, Einstellungen, Organisationen, Tickets, Sessions, Teamspace-Werten, fixen Abrechnungen und Abschlüssen.", "Der Restore im Adminbereich prüft zuerst, ob die Dump-Struktur zur aktuellen Datenbank passt.", "Der Restore-Button wird erst nach erfolgreicher Prüfung aktiv.", "Beim Einspielen leert TicketTracker zuerst alle Tabellen und spielt danach den Backup-Stand ein.", "Nach einem Restore ist eine neue Anmeldung mit den Zugangsdaten aus dem Backup notwendig.", "Für einen Restore lässt du auf dem Zielsystem zuerst die TicketTracker-Migrationen laufen und spielst danach die SQL-Datei mit psql ein." ] } ]; export function getHelpSection(anchor: string) { return helpSections.find((section) => section.id === anchor) ?? helpSections[0]; }