DOHandbuch · Die Offensive
Neuerungen API Zur App
Neuerungen

Was ist neu?

Alle Verbesserungen an PersonalCockpit Cloud — verständlich erklärt und nach Monat sortiert.

Wichtige Releases

Version 2.10.02026-07-17

Warenwirtschaft & Datenquellen — Excel-Import, Nachvollziehbarkeit und mobile Bedienung

Hinzugefügt

  • Katalog-Import (Excel & CSV) — Händler-Dateien (z. B. L'Oréal „PPD Materialstamm"-Excel) direkt hochladen: .xlsx/.xls oder CSV, Tabellenblatt und Spalten werden automatisch erkannt. Abgleich-Regel: EAN + Artikelnummer stimmen überein → Artikel wird aktualisiert (nur wirklich geänderte Felder, Preise nie durch leere Werte oder 0); unbekannt → neu angelegt; Artikelnummer mit anderer EAN → Konflikt, Zeile wird übersprungen. Vorschau mit Neu/Aktualisierung/Konflikt-Zählern und Ergebnis-Statistik (neu/aktualisiert/unverändert/übersprungen/Konflikte/Fehler).
  • Import-Protokoll & Artikel-Historie — Neuer Reiter „Protokoll" im Katalog-Import: je Lauf Datei, Datum, Person und Ergebnis-Zähler, aufklappbar bis auf jede Zeile mit Feld-Änderungen (alt → neu). Neuer Reiter „Historie" im Produkt-Fenster: Zeitleiste aller Änderungen am Artikel — Import wie manuell — mit Datum, Person und alt → neu.
  • Produktbilder per Foto-Upload — Bilder wahlweise als Bild-Link einfügen oder als Datei hochladen (am Handy Kamera/Galerie, Mehrfachauswahl). Mehrere Bilder je Artikel, Hauptbild per Stern-Symbol festlegen, Entfernen per Papierkorb. JPG/PNG/WebP, max. 8 MB pro Bild.
  • Doppelte Produkte zusammenführen — In der Produktliste genau zwei Artikel markieren → Button „Zusammenführen": Ein Vergleichs-Dialog zeigt beide Produkte nebeneinander, schlägt automatisch das vollständigere als Ziel vor (tauschbar) und lässt je Unterschieds-Feld per Klick wählen, welcher Wert übernommen wird — mit Live-Vorschau des Ergebnisses. Lagerbestände werden je Filiale addiert, Bestellungen, Bestands-Historie und Seriennummern wandern zum Ziel-Artikel, das Duplikat wird gelöscht (nicht umkehrbar, mit Bestätigungs-Häkchen). Der Vorgang erscheint in der Artikel-Historie als „Zusammengeführt".
  • Dubletten-Suche in der Produktliste — Neuer Button „Dubletten" prüft den kompletten Artikelstamm direkt im Browser auf mögliche Duplikate und gruppiert die Treffer nach Sicherheit: gleiche EAN, exakt gleicher Name (Groß-/Kleinschreibung und Sonderzeichen zählen nicht) und sehr ähnliche Namen (gleiche Wörter, nur Mengenangaben wie „1000 ml" unterscheiden sich). Suchfeld zum Eingrenzen der Gruppen; aus jeder Gruppe startet „Vergleichen & zusammenführen" direkt den Vergleichs-Dialog — nach dem Zusammenführen wird die Analyse sofort mit den frischen Daten neu berechnet.
  • Artikel-Schnellzugriff per Barcode-Scan — Plus-Knopf „Erfassen" → „Artikel": Barcode mit der Handy-Kamera scannen (oder EAN eintippen), der Artikel öffnet sich direkt; unbekannte EAN → Artikel mit vorbefüllter EAN sofort neu anlegen.
  • Automatischer Paperless-Abgleich in den Bestellungen — Rechnungen bekommen in Paperless einfach das Wareneingang-Tag; beim Öffnen der Bestellungen-Seite werden alle so markierten Dokumente automatisch nacheinander importiert (Fortschritts-Panel je Dokument, „Abgleich"-Knopf für den manuellen Start). Importiert wird ohne Filiale — offene Bestellungen tragen den Badge „Filiale zuordnen" und werden in der Detail-Ansicht per Auswahlfeld zugeordnet (Buchen ins Lager erst mit Filiale). Neuer Tag-Lebenszyklus in Paperless, komplett je Mandant konfigurierbar: Wareneingang → „wartet auf Verbuchung" (nach Import) → „verbucht" bzw. „verbucht – prüfen" (nach dem Buchen, bei Mengen-Abweichungen, ungebuchten Positionen oder nicht übernommenen Stammdaten-Änderungen); optionales „Import-Fehler"-Tag markiert fehlgeschlagene Importe direkt in Paperless. Einstellungen: Tag-IDs manuell oder bequem per „Tags aus Paperless laden" als Auswahlliste.
  • Umsatzquellen-Assistent — Beim Wechsel der Umsatz-Quelle von „Manuell" auf Kasse/instyler fragt ein Assistent, was mit den alten manuellen Einträgen passiert: Alles behalten, Stichtag festlegen (ab dann zählt nur die neue Quelle, verschobene Einträge landen im Archiv) oder alle ausblenden (Warnung: automatische Daten reichen nur ca. 2 Monate zurück). Nichts wird gelöscht — der Knopf „Wiederherstellen" holt alle archivierten Einträge zurück. Umsätze sind tagesgenau, der Stichtag gilt ab 0 Uhr.
  • Online-Shop-Angaben am Artikel — Neuer Reiter „OnlineShop" im Produkt-Fenster der Warenwirtschaft mit drei optionalen Feldern: Produktname für Kunden (der interne Name bleibt unverändert; leer = Shop nutzt den internen Namen), Kurzbeschreibung (mit Zeichenzähler, Empfehlung 150, maximal 300 Zeichen) und Ausführliche Beschreibung (reiner Text mit Absätzen). Ein Zähler am Reiter zeigt, wie viele Shop-Angaben schon gepflegt sind; ist ein Verkaufsartikel (Typ „V") noch ohne Bild, erscheint ein deutlicher Hinweis. Die Felder werden vom Shop ausschließlich gelesen — Kasse, Bestellungen, Lager und Kalkulation bleiben unberührt.
  • Shop-Angaben per Excel in Massen pflegen — Der Katalog-Import versteht jetzt zusätzlich die Spalten für Kundenname (u. a. „Produktname"), Kurzbeschreibung (u. a. „Meta-Description"), Langbeschreibung (u. a. „SEO-Beschreibung") sowie Bilder. Die EAN-Spalte darf auch „SKU" oder „GTIN" heißen. Technische Umlaut-Schreibweisen aus Händler-Dateien („für") werden automatisch in lesbaren Text umgewandelt, HTML-Auszeichnungen entfernt. Eine reine Shop-Datei benötigt keinen internen Produktnamen mehr, und Zeilen ganz ohne EAN (typisch bei Sets und Bundles) können vorhandene Artikel über die Artikelnummer ergänzen. Die Vorschau zeigt vor dem Import, welche Shop-Angaben erkannt wurden und bei wie vielen Artikeln.
  • Onlineshop-Freigabe, Streichpreis und Produktseiten-Abschnitte — Der Reiter „OnlineShop" im Produkt-Fenster hat fünf weitere Angaben: Das Häkchen „Im Onlineshop zeigen" entscheidet, ob ein Artikel überhaupt im Shop erscheint (neue Artikel sind bewusst nicht freigegeben, damit Kabinettware nicht versehentlich im Shop landet). UVP / Streichpreis zeigt im Shop den durchgestrichenen höheren Preis — die Maske rechnet die Ersparnis in Prozent vor und warnt, wenn der UVP nicht über dem Verkaufspreis liegt und deshalb gar kein Streichpreis erscheint. Dazu drei Felder, die im Shop als aufklappbare Abschnitte der Produktseite erscheinen: Anwendung, Inhaltsstoffe (INCI) und Warnhinweise; leere Felder erzeugen im Shop keinen leeren Abschnitt. Die Bild-Warnung greift jetzt bei jedem freigegebenen Artikel ohne Bild. Alle fünf Angaben sind auch per Excel-Import pflegbar.
  • Katalog-Import zurücknehmen — Jeder Lauf im Import-Protokoll hat jetzt den Knopf „Import zurücknehmen". Vorher zeigt ein Fenster genau, was passieren würde: aktualisierte Artikel erhalten in den geänderten Feldern wieder ihren vorherigen Wert (das Protokoll speichert alten und neuen Wert), neu angelegte Artikel werden gelöscht. Drei Schutzmechanismen: Felder, die nach dem Import geändert wurden, bleiben unangetastet (neuere Pflege wird nie überschrieben, die Anzahl steht im Fenster); Artikel, die in Kassenbons, Bestellungen, Wareneingängen, Abgängen oder Seriennummern vorkommen, werden niemals gelöscht (aufbewahrungspflichtige Daten); und bei Artikeln, auf die inzwischen Bestand gebucht wurde, fragt das Fenster nach — „behalten" (empfohlen, verlustfrei) oder „trotzdem löschen" mit ausdrücklicher Warnung, dass Bestand und Bestands-Historie mitgehen. Betroffene Artikel werden mit aktueller Menge beispielhaft angezeigt. Nach der Rücknahme trägt der Lauf den Hinweis „zurückgenommen" mit Datum, Person und Zusammenfassung; jede Löschung und Zurücksetzung landet zusätzlich in der Artikel-Historie. Ein Lauf lässt sich nur einmal zurücknehmen.
  • Dubletten in Mengen zusammenführen — Im Dubletten-Fenster lassen sich jetzt ganze Gruppen anhaken oder mit einem Klick alle auswählen und in einem Durchgang zusammenführen (mit Fortschrittsbalken, in Stapeln, damit auch hunderte Gruppen sicher durchlaufen). Freigegeben sind nur Gruppen, in denen alle Artikel dieselbe EAN haben — auch solche mit drei oder mehr Artikeln, die dann komplett in einen zusammengeführt werden. Je Gruppe bleibt der vollständigste Artikel bestehen (sichtbar mit „bleibt" markiert), Bestände werden addiert, Bestellungen, Historie und Seriennummern wandern mit, Bilder werden gesammelt; leere Felder werden gefüllt, vorhandene Werte nie überschrieben. Widersprüchliche Werte (z. B. zwei VK-Preise) werden vorab gelb markiert und gezählt. Gruppen der Kategorie „Sehr ähnlich" mit unterschiedlichen EANs sind bewusst gesperrt — dort stecken meist verschiedene Größen (300 ml und 1500 ml), die keine Dubletten sind; der Hinweis nennt stattdessen die EAN der echten Dubletten innerhalb der Gruppe.
  • Vorschau und Import sagen jetzt dasselbe — Zeilen ohne Artikelnummer wurden in der Vorschau als Aktualisierung gezählt, vom Import aber verworfen. Zum Zuordnen genügt jetzt eines von beidem (EAN oder Artikelnummer); nur für eine Neuanlage braucht es EAN, Artikelnummer und Namen zusammen. Außerdem nennt die Vorschau bei Konflikten die tatsächliche Ursache statt einer pauschalen Meldung: „Diese EAN kommt bei Ihnen mehrfach vor" (mit Verweis auf die Dubletten-Suche), „Artikelnummer bereits mit anderer EAN vorhanden" oder „weder EAN noch Artikelnummer in der Zeile" — jeweils mit passender Abhilfe. Und wenn als „neu" gezählte Zeilen mangels Pflichtangaben gar nicht angelegt werden könnten, steht das vor dem Import da, nicht erst danach im Protokoll.
  • Spalten selbst zuordnen im Katalog-Import — Neuer Schritt „Spalten zuordnen & Abgleich", automatisch vorbelegt und jederzeit änderbar. Einstellbar sind: woran vorhandene Artikel wiedererkannt werden (automatisch / nur EAN / nur Artikelnummer), welche Spalte in welches Feld wandert (Auswahlliste je Feld, mit Beispielwert aus der Datei) und wie mit vorhandenen Werten umgegangen wird — je Feld „Überschreiben", „Nur wenn leer" oder „Nicht importieren". So lassen sich z. B. bei einer reinen Shop-Textdatei Preise und interner Name gezielt schützen. Änderungen werden sofort in der Vorschau sichtbar.
  • Zuordnung über die EAN + Dubletten-Schutz beim Import — Führt eine Datei eigene Artikelnummern (z. B. Shop-Nummern wie „DE" + EAN), die es in der Warenwirtschaft nicht gibt, entscheidet jetzt die EAN allein: Gehört sie zu genau einem Artikel, wird dieser ergänzt — die eigene Artikelnummer bleibt unverändert. Haben mehrere Artikel dieselbe EAN, wird die Zeile als Konflikt übersprungen statt geraten. Neu ist außerdem das Häkchen „Keine neuen Artikel anlegen — nur vorhandene ergänzen", und würden ausnahmslos alle Zeilen neu angelegt, warnt die Vorschau deutlich in Rot. Ohne diese Regeln hätte eine Shop-Liste hunderte Dubletten erzeugt. In der Vorschau steht bei Artikeln ohne Typ-Angabe jetzt „—" statt fälschlich „Kabinett".
  • Produktbilder selbst hosten (ZIP-Upload) — Neuer optionaler Schritt im Katalog-Import: Die ZIP-Archive des Händlers hochladen (mehrere auf einmal, Unterordner egal). Die Bilder landen auf dem eigenen Server und werden über den Dateinamen aus der Tabelle automatisch dem richtigen Artikel zugeordnet. Hybrid: Für jedes einzelne Bild gilt das eigene, sobald es vorliegt — sonst bleibt die Bild-Adresse des Händlers als Rückfall stehen. So lassen sich Archive nach und nach nachladen; zwei Zählerkarten zeigen vor dem Import, wie viele Bilder aus eigenem Bestand und wie viele extern kämen. Erlaubt sind JPG, PNG, WebP und GIF bis 8 MB je Bild; jede Datei wird auf ihren tatsächlichen Inhalt geprüft.
  • Türschlösser (Nuki) zentral verwalten — Neuer Bereich Einstellungen → Türschlösser: Nuki-Schlösser werden über die offizielle Nuki-Web-API angebunden (Token unter Einstellungen → API-Schlüssel, maskiert gespeichert) und alle 15 Minuten synchronisiert. Schlösser: Zustand (verschlossen/offen), Akkustand, Keypad-Batterie, Filial-Zuordnung, „Verbindung testen" und — mit eigener Berechtigung — Fernöffnen mit Bestätigungsfrage (jede Öffnung wird protokolliert). Zugänge: In der Matrix aktive Mitarbeiterinnen × Schlösser entscheidet die Verwaltung, wer für welche Tür berechtigt ist — ein Klick erzeugt einen sicheren 6-stelligen Keypad-Code nach den Nuki-Regeln (einmalige Anzeige, verschlüsselt gespeichert, erneutes Anzeigen wird protokolliert); Sperren/Aktivieren/Löschen direkt in der Zelle, dazu der neue Reiter „Zugang" in der Mitarbeiter-Akte. Beim Austritt wird der Türcode automatisch gesperrt und die Verwaltung benachrichtigt. Salon-Display: neue Kachel „Türschlösser" mit Akku-Ampel je Filiale; fällt der Akku unter die einstellbare Schwelle (Standard 20 %), erscheint automatisch eine Aufgabe „Türschloss laden" mit aufklappbarer Schritt-für-Schritt-Anleitung auf dem Display (plus Push an die Verwaltung) — sie verschwindet von selbst, sobald geladen wurde. Zutritts-Protokoll (wer hat wann geöffnet) mit eigener Berechtigung und automatischer Löschung nach einstellbarer Frist (Standard 90 Tage). Vier neue Berechtigungen (ansehen/verwalten/fernöffnen/Protokoll). Hinweis: Fingerabdrücke erlaubt Nuki technisch nur direkt am Keypad über die Nuki-App — sie hängen dort immer an einem Türcode, dessen Sperrung auch den Fingerabdruck sperrt.
  • Türschlösser: Zeitfenster für Türcodes — Über das Uhr-Symbol in der Zugänge-Matrix lässt sich jeder Türcode zeitlich begrenzen: Wochentage, Von/Bis-Uhrzeit und Von/Bis-Datum (z. B. „Mo–Sa 7–20 Uhr" fürs Team, „bis Monatsende" für eine Aushilfe). Außerhalb des Fensters funktioniert der Code am Keypad nicht; das aktive Fenster steht kompakt unter dem Status in der Matrix. Ohne Auswahl gilt wie bisher: immer erlaubt.
  • Türschlösser: Geräte-Einstellungen direkt aus PersonalCockpit — Das Zahnrad an der Schloss-Karte öffnet die wichtigsten Nuki-Einstellungen: Auto-Lock (automatisches Abschließen nach dem Aufschließen, Zeit einstellbar), Tür-öffnen-Dauer, LED an/aus samt Helligkeit, Taster am Schloss und „nur einfach abschließen". Änderungen werden sofort ans Schloss übertragen und protokolliert.
  • Türschlösser: Echtzeit-Verbindung — Neue Karte „Echtzeit-Verbindung" im Reiter Schlösser: Ein Klick auf „Aktivieren" registriert PersonalCockpit bei Nuki für Sofort-Meldungen — Öffnungen, Schloss-Zustand und Akkustand erscheinen dann live statt alle 15 Minuten (der regelmäßige Abgleich bleibt als Sicherheitsnetz). Jeder eingehende Abruf wird kryptografisch geprüft; „Trennen" schaltet die Verbindung jederzeit ab.
  • Türschlösser: „Tür öffnen" (Falle ziehen) — Zusätzlich zu „Aufschließen" (entriegelt nur) gibt es jetzt „Öffnen": Die Falle wird gezogen und die Tür springt auf, z. B. um jemanden hereinzulassen — an der Schloss-Karte (mit Fernöffnen-Berechtigung) und in „Meine Türen", jeweils mit deutlicher Bestätigungsfrage und Protokoll-Eintrag.
  • „Meine Türen": eigener Türcode nachschlagbar — Der Knopf „Mein Code" zeigt den persönlichen Keypad-Code der jeweiligen Tür an (nur den eigenen, Anzeige wird protokolliert). In der Nuki-App angelegte Codes bleiben nur dort sichtbar — die Ansicht sagt das dann verständlich.
  • Türschlösser: Keypad-Batterie erzeugt eigene Wechsel-Aufgabe — Meldet Nuki eine schwache Keypad-Batterie, erscheint auf dem Salon-Display automatisch die Aufgabe „Keypad-Batterien wechseln" mit aufklappbarer Anleitung (4× AAA, alle Codes bleiben erhalten) — unabhängig von der Ladeaufgabe des Schloss-Akkus, und sie verschwindet von selbst, sobald die Batterie wieder in Ordnung ist.
  • Türschlösser: wählbare Push-Benachrichtigungen — Unter Einstellungen → Benachrichtigungen gibt es drei eigene Türschloss-Themen mit Häkchen: Akku & Batterien (Ladeaufgabe erschienen, Keypad-Batterie schwach), Zugänge (Türcode beim Austritt automatisch gesperrt, unbekannte Codes gefunden) und Öffnungen (wer hat wann welche Tür auf-/abgeschlossen — höchstens drei Einzel-Meldungen am Stück, der Rest als Sammel-Meldung; nur frische Ereignisse, damit der erste Protokoll-Import keine Push-Flut auslöst). Die Meldungen gehen an die Verwaltung, jede Person wählt ihre Themen selbst; bisher liefen die Türschloss-Pushes ununterscheidbar unter „Mitteilungen vom Betrieb".
  • „Meine Türen": Türen ohne Code auf- und abschließen — Neuer Menüpunkt Team & Zeit → „Türen": Jede eingeloggte Mitarbeiterin sieht dort die Schlösser, für die sie in der Zugänge-Matrix aktiv freigegeben ist, und kann sie direkt vom Handy aus aufschließen oder abschließen — ohne Türcode. Es braucht keine zusätzliche Berechtigung: Die Freigabe in der Matrix entscheidet; wird der Zugang dort gesperrt, verschwindet die Tür auch aus dieser Ansicht. Jede Aktion läuft mit Bestätigungsfrage und wird protokolliert; „Aufschließen" entriegelt bewusst nur (die Falle wird nicht gezogen).
  • Vorhandene Nuki-Zugänge zuordnen — Wurden Zugänge früher direkt in der Nuki-App angelegt (Türcodes oder App-Zugänge), lassen sie sich jetzt über den Knopf „Vorhandene Nuki-Zugänge zuordnen" über der Zugänge-Matrix einem Mitarbeiter zuordnen, statt neue Codes zu erzeugen. Der Code selbst bleibt nur in der Nuki-App sichtbar (Hinweis * in der Matrix); Sperren, Aktivieren und Löschen — inklusive automatischer Sperre beim Austritt — funktionieren trotzdem normal, und zugeordnete Zugänge zählen als Freigabe für „Meine Türen".
  • Arbeitszeitkonto: Tagesansicht je Monat — Ein Klick auf einen Monat (Tabelle am PC, Monatskarte am Handy) öffnet die neue Tagesansicht: jeder Tag des Monats mit Soll, Ist, Urlaub/Krank und Tagessaldo — die Summen entsprechen exakt der Monatszeile, sodass sofort sichtbar ist, welcher Tag ein Plus oder Minus verursacht hat. Ein Klick auf den Tag klappt dessen Zeiteinträge auf; Verwalter mit „Arbeitszeiten verwalten" bearbeiten Einträge direkt dort (Typ, Beginn, Ende, Pause), legen fehlende Tage per „Eintrag hinzufügen" an oder löschen falsche (mit Lösch-Berechtigung) — der Saldo rechnet sofort neu, jede Änderung wird protokolliert und die betroffene Person benachrichtigt. Alle Schutzregeln gelten unverändert: Monatssperre, QR-Stempel-Sperre, Stempeluhr-Tage bekommen statt „Eintrag hinzufügen" einen Hinweis auf den Tagesverlauf (kein Doppelzählen). Tage nach heute und Monate ohne eigene Einträge zeigen das Plan-Soll nur zur Information.
  • DSGVO-Vorlagen für die Zeiterfassung im Handbuch — Neuer Handbuch-Artikel „Datenschutz & Unterweisung zur digitalen Zeiterfassung" mit zwei fertigen PDF-Vorlagen zum Download: Datenschutzinformation nach Art. 13 DSGVO (deckt alle Funktionen ab: Stempel-Ereignisse, Filial-Zuordnung, IP-Adresse beim Stempeln, optionales Stempel-Foto mit 60-Tage-Löschung, Arbeitszeitkonto, Anwesenheits-Anzeige, Änderungs-Protokoll, digitale Unterschriften) und Unterweisungs-/Kenntnisnahme-Formular mit Unterschriftsfeldern. Mit Schritt-für-Schritt-Anleitung, wie die Kenntnisnahme über die Dokumente-Funktion digital unterschrieben wird. Platzhalter ausfüllen und rechtlich prüfen lassen — die Vorlagen sind keine Rechtsberatung.
  • REST-API für die Warenwirtschaft (Onlineshop anbinden) — Neuer Einstellungs-Bereich „Anbindungen" mit dem Punkt „REST-API für WaWi": Dort werden API-Schlüssel vergeben, mit denen ein Onlineshop die Artikeldaten automatisch übernimmt — Kundenname, Kurz- und Langbeschreibung, Anwendung, Inhaltsstoffe, Warnhinweise, Preis, UVP/Streichpreis, Bilder, Maße und Gewichte, Shop-Freigabe und Bestände. Lese- und Schreibrecht werden je Schlüssel getrennt vergeben und lassen sich jederzeit umstellen; ein Schlüssel kann widerrufen (bleibt zur Nachvollziehbarkeit in der Liste) oder gelöscht werden. Je Schlüssel sind Bezeichnung, Ersteller, letzte Nutzung und Aufrufzahl sichtbar. Der Schlüssel erscheint genau einmal bei der Anlage — gespeichert wird nur eine Prüfsumme, wie bei einem Passwort. Ein Schlüssel sieht ausschließlich die Daten des eigenen Betriebs: der Mandant steckt im Schlüssel selbst und kann per Anfrage nicht gewechselt werden. Der Shop liest standardmäßig nur die im Reiter „OnlineShop" freigegebenen Artikel und kann per Zeitstempel gezielt nur die Änderungen seit dem letzten Abgleich holen. Bestände lassen sich relativ buchen (z. B. „ein Stück verkauft"), sodass parallele Verkäufe an Kasse und Shop sich nicht überschreiben; jede Buchung steht mit dem Namen des Schlüssels in der Artikel-Historie. Artikelnummer, EAN und Lieferant sind für den Shop bewusst gesperrt, Löschen ist nicht möglich. Direkt neben dem Menüpunkt öffnet ein ⓘ-Knopf die vollständige Dokumentation — alle Endpunkte, Parameter, Felder, Fehlercodes und Beispiele zum Kopieren, inklusive der eigenen Server-Adresse; dazu der neue Handbuch-Artikel „REST-API für die Warenwirtschaft (Onlineshop anbinden)" zum Weitergeben an den Shop-Entwickler.
  • Salon-Kiosk-App 1.24 — Haus-Knopf in der Kopfleiste (ein Klick zurück zum Salon Display, besonders aus der Kasse); Fernwartung per Microsoft Remotehilfe: Start am Gerät (Zahnrad → „Fernwartung starten", hinter Login/PIN-Freigabe) oder aus dem Cockpit (Gerätekarte → „Fernwartung starten"), solange aktiv zeigt ein gelbes Feld „Fernwartung aktiv — Klick zum Beenden" (automatisches Ende nach 4 Stunden); Popup-Fenster (z. B. Bon-Druck) bleiben zuverlässig im Vordergrund; Fernsteuerungs-Befehle kommen über die Live-Verbindung jetzt innerhalb weniger Sekunden an (statt bis zu 30 s) und der angezeigte Tab lässt sich aus der Ferne auf jeden Tab umschalten (Display, Kasse, Warenwirtschaft, Zusatz-Tabs).
  • Preise in Masse rechnen lassen — Die Massenbearbeitung der Produkte hat einen neuen Reiter „Preise rechnen". Statt Zahlen zu tippen, geben Sie die Regel vor: *EK + 5 € Gewinn*, *EK + 100 % Aufschlag*, *VK um −10 % senken*, *VK = UVP minus 20 %*, oder für den Streichpreis *„so, dass der Kunde genau 20 % Ersparnis sieht"*. Einkaufs-, Verkaufs- und Streichpreis lassen sich in einem Durchgang setzen (gerechnet wird in dieser Reihenfolge, der Verkaufspreis kann also auf dem neuen Einkaufspreis aufbauen). Dazu Rundungsregeln: auf den Cent, auf 5 oder 10 Cent, auf …,50, auf ganze Euro oder immer auf …,95 bzw. …,99 — letztere runden bewusst nach oben, damit keine Marge verschenkt wird. Und, weil die Kundin im Shop den Brutto-Preis sieht, die zweite Frage „Runden auf welchen Preis?": auf den Brutto-Preis (empfohlen — der Shop-Preis wird glatt, der Netto-Preis in den Grunddaten dafür krumm: 35,25 € netto = 41,95 € brutto) oder auf den Netto-Preis (34,95 € netto = 41,59 € brutto). Sie geben den Gewinn also weiter netto vor und bekommen trotzdem einen runden Shop-Preis. Weil der Netto-Preis nur zwei Stellen hat, ist nicht jeder Brutto-Cent darstellbar — in etwa einem von fünf Fällen liegt der Shop-Preis deshalb einen Cent über der Wunsch-Endung, nie darunter; die Vorschau zeigt beide Werte in eigenen Spalten „VK netto" und „VK brutto". Eine Vorschau-Tabelle zeigt vor dem Speichern je Artikel alt → neu samt der Ersparnis, die der Shop anzeigen wird, und nennt übersprungene Artikel mit Grund („12 × kein EK-Preis vorhanden") — diese bleiben unverändert. Die angezeigten Werte sind exakt die gespeicherten. Jede Änderung landet mit der verwendeten Regel im Klartext in der Artikel-Historie. Neuer Handbuch-Artikel „Preise in Masse ändern (Aufschlag, Gewinn, Streichpreis)".
  • Shop-Freigabe und Produktseiten-Texte in Masse — Im neuen Reiter „Online-Shop" der Massenbearbeitung lassen sich markierte Artikel zum Onlineshop hinzufügen oder daraus entfernen sowie die drei aufklappbaren Abschnitte *Anwendung*, *Inhaltsstoffe* und *Warnhinweise* gemeinsam pflegen — die sind innerhalb einer Produktfamilie oft identisch. Mit dem Häkchen „Nur leere Felder füllen" bleiben bereits gepflegte Texte unangetastet. Kundenname und Beschreibungen sind bewusst nicht dabei: die sind je Artikel verschieden.
  • Neue Spalten und Filter in der Produktliste — Die Spalte „Im Shop" steht jetzt standardmäßig direkt hinter dem Produktnamen und ist per Klick umschaltbar. Zusätzlich zuschaltbar: Streichpreis, VK brutto, Shop-Name, Anzahl Shop-Bilder und ein Zähler „Shop-Texte 4/6". Vier neue Filter: im Onlineshop (ja/nein), Produktbild (mit/ohne), Shop-Beschreibung (vorhanden/fehlt) und Streichpreis — inklusive der Auswahl „gepflegt, aber unwirksam" für Artikel, deren Streichpreis nicht über dem Brutto-Verkaufspreis liegt und deshalb im Shop gar nicht erscheint. Neu hinzugekommene Standard-Spalten erscheinen auch dann, wenn Sie Ihre Spaltenauswahl früher schon angepasst hatten.
  • Lieferanten-Verfügbarkeit: „aktuell nicht verfügbar" im Shop — Jeder Artikel hat jetzt drei neue Angaben, die der Onlineshop auswerten kann: ob der Lieferant liefern kann, wann das geprüft wurde und woher die Angabe kommt. Wichtig sind dabei drei Zustände, nicht zwei: *lieferbar*, *nicht lieferbar* und *keine Aussage*. „Keine Aussage" verkauft ausdrücklich normal weiter — eine Lieferantenliste deckt immer nur einen Teil des Sortiments ab, und würde Ungeprüftes als gesperrt gelten, wäre der Shop über Nacht leer. Gesperrt wird nur, was der Lieferant ausdrücklich als nicht lieferbar gemeldet hat. Zusätzlich verfallen die Angaben nach sieben Tagen: Läuft der Abgleich eine Woche nicht, gilt wieder „keine Aussage", statt mit den Zahlen von letzter Woche weiter zu sperren. In der Produktliste zeigt die neue Spalte „Lieferbar" den Zustand (Prüfdatum und Herkunft als Tooltip), der neue Filter kennt *lieferbar*, *nicht lieferbar*, *keine Aussage* und „Prüfung älter als 7 Tage" — der schnellste Weg zu sehen, ob der Abgleich noch arbeitet. Im Produkt-Fenster steht der Zustand im Reiter „OnlineShop" direkt unter der Shop-Freigabe (Anzeige, kein Eingabefeld: der Wert kommt vom Abgleich und würde sonst still überschrieben). Eingespielt wird er über die WaWi-REST-API (neuer Bereich /availability, Schreibrecht nötig); ein mitgeliefertes Skript liest die Excel-Liste des Lieferanten, sendet nur die nicht lieferbaren Artikel und läuft standardmäßig als Trockenlauf. Zwei Sicherheitsnetze: Ein Geltungsbereich ist Pflicht (Marke, Lieferant oder EAN-Liste) — sonst würde eine Liste mit einer Marke das ganze Sortiment auf „lieferbar" setzen; und wären mehr als die Hälfte der Artikel im Bereich nicht lieferbar, wird der Abgleich abgelehnt und nichts gespeichert (typisches Bild eines abgebrochenen Datenabrufs), dazu je Marke eine Warnung ab 80 % Ausfall. Die Artikel-Historie bleibt bewusst unberührt — ein nächtlicher Lauf über tausend Artikel würde sie unbrauchbar machen; nachvollziehbar ist alles über Prüfdatum und Notiz. Neuer Handbuch-Artikel „Lieferanten-Verfügbarkeit: nicht verfügbare Artikel im Shop kennzeichnen".
  • Bulkbuchen: Zugangs-Modus „addieren" + Bestell-Verknüpfung — Das Bulkbuchen kennt neben Inventur (Eingabe ersetzt den Bestand) und Abzug (−) jetzt einen dritten Modus: Zugang (+) — die gescannte Menge wird auf den aktuellen Bestand addiert, ideal für den Wareneingang einer Lieferung. Welcher Grund addiert, pflegen Sie in der neuen Einstellungs-Karte „Zugangs-Gründe" (Standard: Wareneingang, Lieferung, Retoure); im Buchungsfenster sind Zugangs-Gründe mit „(+)" markiert und die Tabelle zeigt je Produkt den neuen Bestand („Neu →"). Auch bereits geparkte Buchungen können beim Fortsetzen einfach auf einen Zugangs-Grund umgestellt werden — die gezählten Mengen werden dann addiert statt gesetzt. Neu ist außerdem die Verknüpfung mit Bestellungen: Bei einem Zugangs-Grund lässt sich eine offene Bestellung auswählen; „Offene Positionen übernehmen" füllt die Liste mit den noch offenen Mengen, und beim Buchen werden die Mengen an der Bestellung als geliefert vermerkt (vollständig → Bestellung gilt als zum Lager gebucht). Ein Schutz verhindert, dass dieselbe Bestellung zusätzlich über den normalen Wareneingangs-Weg gebucht wird — sonst würden Mengen doppelt zählen. Die Historie zeigt Zugänge grün mit „Zugang", Eingaben als „+N" und die verknüpfte Bestellnummer.
  • Bestellungen abscannen („Scannen & buchen") — Neuer Knopf in der Bestellung öffnet eine zweispaltige Scan-Ansicht: links die offenen Soll-Positionen, rechts alles Gescannte. Eine Position bleibt links stehen, solange eine Differenz offen ist (10× bestellt, 8× gescannt → rechts 8, links „noch 2 · 8 gescannt"); Artikel außerhalb der Bestellung oder über Soll sind markiert. Buchen erhöht den Bestand als Zugang und vermerkt die Mengen an der Bestellung als geliefert — Teillieferungen bleiben offen und werden beim nächsten Paket einfach weitergescannt. So lassen sich Bestellungen bequem hintereinander abarbeiten.
  • Produkt-Historie zeigt alle Bewegungen — Der Reiter „Historie" im Produkt-Fenster zeigt jetzt zusätzlich zu Stammdaten-Änderungen auch jede Bestandsbewegung (Bestellungen, Bulk-Buchungen, Korrekturen, Umbuchungen, Abgänge, Shop-API) als blauen „Bestand"-Eintrag mit alt → neu, Grund, Standort, Person und Zeitpunkt.
  • Bestellungen: Lieferanten-bezogen arbeiten + Mehrfachauswahl — Beim „Artikel hinzufügen" ist die Suche standardmäßig auf Artikel des Bestell-Lieferanten begrenzt (abschaltbar). Neuer Knopf „Unter Mindestbestand ergänzen": legt alle Artikel des Lieferanten, deren Bestand den Mindestbestand erreicht/unterschritten hat, mit Auffüll-Menge in die Bestellung. Admins können in der Liste mehrere Bestellungen markieren und gemeinsam verbuchen (Stichprobe wird übersprungen, Fehler je Bestellung gemeldet) oder löschen. Außerdem behoben: Der Lieferanten-Filter der Liste setzte sich nach dem Löschen/Verbuchen einer Bestellung zurück.
  • Reparatur „Vorher-Bestand nachbuchen" — Wurde eine Bulk-Buchung fälschlich als Inventur ausgeführt (Bestand ersetzt statt addiert), lässt sie sich in der Buchungs-Ansicht bzw. Historie mit einem Klick als Zugang nachbuchen: der Vorher-Bestand jeder Position wird wieder auf den aktuellen Bestand draufgerechnet — mit Warn-Dialog inkl. drei Beispiel-Positionen, einmalig und protokolliert. Dazu eine Versions-Sperre, die Zugangs-Buchungen gegen einen alten Server-Stand blockiert (Ursache des Vorfalls vom 30.07.).

Geändert

  • Salon-Display im neuen Design — Die Stempeluhr-Wand erstrahlt im warmen, hellen Look (Creme/Terrakotta statt dunkel): oben Begrüßung, optionale Wetter-Anzeige und die große Uhr; darunter drei Spalten — Stempeln (QR, Merkhilfe, großer Stempeln-Knopf), Aushang & Aufgaben (überfällige deutlich hervorgehoben, Zusammenfassung „x überfällig · y offen · z erledigt") und „Wer ist da" mit Geburtstagen, Monats-Info und Türschloss-Akkus. Das Layout ist fest auf Full-HD gebaut und skaliert als Ganzes auf jede Bildschirmgröße — auf jedem Display identisch; am Handy stapeln sich die Spalten. Alle Funktionen bleiben unverändert: PIN-Stempeln mit Foto-Pflicht, Aufgaben abhaken mit aufklappbarer Anleitung, Aufgaben-Manager mit Bildschirm-Tastatur, Pausen-Ampel, Personen-Tagesdetail. Die Schriften liefert der eigene Server aus (kein Fremd-CDN beim Seitenstart). Fürs Wetter einfach unter Einstellungen → Salon-Display den Ort eintragen — aktualisiert sich automatisch alle 30 Minuten (Open-Meteo), ohne Ort bleibt die Anzeige aus.
  • Produkt-Fenster deutlich breiter — Die Maske hat sechs Reiter und über 40 Felder, war aber nur 672 Pixel breit: die Reiter-Leiste war rechts abgeschnitten und alles stand untereinander. Sie nutzt jetzt die volle Bildschirmbreite (bis 1280 Pixel). Der Reiter „OnlineShop" ist auf breiten Schirmen zweispaltig (links Freigabe, Streichpreis und Namen, rechts die Texte), der Reiter „Mehr" zeigt drei Spalten, und die Änderungshistorie stellt Feld-Änderungen zweispaltig dar — lange Import-Einträge sind damit halb so hoch. Am Handy bleibt alles wie gewohnt ein Vollbild-Fenster.
  • Warenwirtschaft am Handy — Produkte, Lagerbestand, Bestellungen/Wareneingang und Katalog-Import sind mobil als Karten-Ansichten bedienbar: Filter hinter dem Filter-Knopf, Auswahl-Checkboxen für die Massenbearbeitung, Bearbeiten-Fenster im Vollbild.
  • Plus-Menü aufgeräumt — „Arbeitszeit" wird ausgeblendet, wenn die Zeiterfassung auf „nur QR-Code" steht; „Umsatz" wird ausgeblendet, wenn die Umsätze automatisch aus Kasse oder instyler kommen.
  • Soll-Preise glattziehen, bevor sie in die Kasse gehen (Issue #101) — Über der Dienstleistungs-Tabelle steht die neue Auswahl „Soll-Preise runden": auf den Cent, auf 5 oder 10 Cent, auf …,50, auf ganze Euro oder immer auf …,95 bzw. …,99. Niemand möchte 7,64 € auf der Preisliste haben. Gerundet wird der Brutto-Preis, denn der steht auf der Liste; „,95" und „,99" runden bewusst nach oben, damit keine Marge verloren geht. Wichtig: Die Rundung wirkt auf Anzeige, Abweichungs-Spalte und den Knopf „Übernehmen" gleichzeitig — gespeichert wird also genau der Preis, den Sie sehen. Es sind dieselben Regeln wie im Preisrechner der Warenwirtschaft, „,95" bedeutet an beiden Stellen dasselbe. Die Einstellung wird pro Nutzer gespeichert.
  • „Soll exkl. EWZ" ist jetzt eine eigene Spalte (Issue #53) — Der Soll-Preis ohne Einwirkzeit stand bisher als kleine Zusatzzeile unter dem Hauptwert und war leicht zu übersehen. Er hat jetzt eine eigene Spalte direkt daneben, damit beide Werte im Kundengespräch nebeneinander ablesbar sind. Bei Dienstleistungen ohne Einwirkzeit steht dort ein Strich, weil beide Werte identisch wären. Damit die Breite reicht, zeigt der Knopf „Übernehmen" auf schmaleren Bildschirmen nur noch das Symbol — welcher Preis übernommen wird, steht beim Darüberfahren.
  • Suche in den Kabinettprodukten (Issue #57) — Im Fenster „Wareneinsatz berechnen" gibt es ab sechs Produkten ein Suchfeld. Bei umfassenden Dienstleistungen sind 80–100 Kabinettprodukte angelegt; die passenden herauszuscrollen war mühsam. Zwei Details, damit nichts verloren geht: Produkte, bei denen Sie schon eine Menge eingetragen haben, bleiben immer sichtbar — auch wenn sie nicht zum Suchbegriff passen. Und die Summe „Wareneinsatz gesamt" zählt weiterhin alle Mengen, nicht nur die gerade angezeigten.

Behoben

  • Kassenabschluss-Import las den Posteingang statt des Abschluss-Ordners — Beim Speichern in den Datenquellen wurden die (leeren) Ordner-Felder als Leer-Wert gespeichert; der Import verband sich dadurch mit dem Posteingang statt mit dem Kassenabschluss-Ordner und meldete tagelang nur „PDF nicht als Kassenabschluss erkannt" für fremde Anhänge — es kamen keine neuen Tagesabschlüsse mehr an. Jetzt gilt: Ein leeres Ordner-Feld bedeutet wieder den Standard-Ordner, und der wirksame Ordnername steht sichtbar im Feld statt nur als grauer Platzhalter. Nach dem Update holt der nächste Import die aufgelaufenen Abschlüsse automatisch nach (die Mails liegen ja noch im Postfach).
  • Datenquellen-Seite und Finanzen laden wieder — schwere Auswertungen raus aus dem kritischen Pfad — Die Datenquellen-Seite hat bei jedem Öffnen live die komplette Kassenbeleg-Tabelle durchsucht (jede Zeile trägt bis zu 60 KB Positions-Text), um die „noch nicht zugeordneten" Belegnamen zu ermitteln — auf der Produktions-Datenmenge dauerte das über 25 Sekunden und ließ die Seite in den Timeout laufen. Und weil auch die Ansichten Finanzen und Umsatz dieselbe schwere Abfrage nur für die Frage „Welche Datenquelle ist aktiv?" aufriefen, wirkten sie ebenfalls „ohne Funktion". Der Umbau: (1) Das Grundgerüst der Datenquellen-Seite lädt jetzt nur noch leichte, indizierte Einstellungen — sie erscheint sofort. (2) Die Belegnamen-Auswertung und der ICS-Status laden separat im Hintergrund mit hartem Zeitbudget; fällt sie aus, bleibt die Seite voll bedienbar (Hinweis + „Erneut versuchen"). (3) Finanzen/Umsatz fragen die aktive Quelle über eine neue Mini-Abfrage ab (zwei Setting-Reads, immer schnell). (4) Das Speichern fasst die Beleg-Tabelle nur noch bei wirklich geänderten Zuordnungen an (Map-Vergleich) — unverändertes Speichern führt dort gar keine Abfrage mehr aus; Abweichungen aus abgebrochenen alten Läufen zieht der Hintergrund-Dienst automatisch nach. (5) Die beim Vorfall übersprungenen Beschleunigungs-Indexe werden erneut angelegt, plus drei weitere für die Zuordnungs-Liste und die Umsatz-Neuberechnung. (6) Selbstheilend in beide Richtungen: Bricht ein Speichern ab, zieht der Hintergrund-Dienst die Zuordnung binnen Minuten nach (auch das Lösen einer Zuordnung); scheitert das Anlegen eines Index unter Last, wird es automatisch mit Abstand erneut versucht, statt still zu fehlen — die Diagnose-Seite zeigt jetzt zusätzlich, ob alle kritischen Indexe wirklich da sind.
  • Schema-Migrationen können die Anwendung nicht mehr blockieren — Das einmalige Anlegen neuer Datenbank-Indexe nach einem Update konnte auf großen Tabellen zwei Fallen auslösen: Starb der ausführende Aufruf an der PHP-Zeitgrenze, versuchte jeder folgende Aufruf dasselbe erneut (Dauerlast); und wartete das Anlegen auf eine hängengebliebene alte Abfrage, stauten sich alle Zugriffe auf die Tabelle dahinter — die Datenquellen-Seite lud dann endlos. Jetzt läuft die Migration garantiert einmal zu Ende (ohne Zeitlimit, unabhängig vom Browser) und gibt bei fremden Sperren nach 15 Sekunden auf, statt die Tabelle für alle zu blockieren — ein dabei übersprungener Index kostet nur Tempo, nie Funktion.
  • Speichern in den Datenquellen legte die ganze Anwendung minutenlang lahm — Jedes Speichern in Einstellungen → Datenquellen hat zwei sehr schwere Datenbank-Arbeiten direkt im Klick ausgeführt, selbst wenn sich gar nichts geändert hatte: Die Mitarbeiter-Zuordnung wurde bei allen jemals importierten Kassenbelegen komplett gelöscht und neu gesetzt, und anschließend wurden die automatischen Umsatz-Einträge der letzten 62 Tage gelöscht und neu berechnet. Das dauerte minutenlang, lief in einen Timeout, und die dabei entstehenden Datenbank-Sperren stauten alle weiteren Anfragen auf — danach lud keine einzige Ansicht mehr, bis sich der Stau von selbst auflöste. Drei Änderungen: (1) Die Zuordnung wird nur noch bei den Belegnamen angefasst, deren Zuordnung sich wirklich geändert hat — unverändertes Speichern rührt keinen einzigen Beleg mehr an. (2) Die Umsatz-Neuberechnung läuft nicht mehr im Klick, sondern übernimmt sie der Hintergrund-Dienst innerhalb der nächsten Minute (die Erfolgsmeldung weist darauf hin); das gilt auch für „Wiederherstellen" im Umsatz-Archiv. (3) Zwei neue Datenbank-Indexe beschleunigen genau diese Arbeiten, und die Neuberechnung filtert das Datum jetzt so, dass die Datenbank ihre Indexe nutzen kann, statt alle Belege einzeln durchzugehen.
  • Salon-Display ließ sich auf der Test-Umgebung nicht öffnen — Der angezeigte Display-Link wurde immer als stempel.<domain> gebaut; auf test.dieoffensive.com entstand so stempel.test.dieoffensive.com, eine Subdomain, die es nicht gibt. Auf unbekannten Subdomains (test, staging, …) zeigt die App jetzt automatisch den direkten Link (…/api/time_clock_display.php?key=…), der überall funktioniert — die schöne stempel-Adresse bleibt für die Produktions-Domains unverändert.
  • Türschlösser: Echtzeit-Verbindung funktioniert jetzt mit dem normalen API-Token — Die Aktivierung schlug mit „Nuki lehnt den API-Token ab (401)" fehl, weil die zuerst genutzte Nuki-Schnittstelle (Decentral Webhooks) einen Sonder-Scope verlangt, den nur Partner-Integrationen bekommen. Jetzt weicht PersonalCockpit automatisch auf Nukis Benachrichtigungs-Schnittstelle aus, die genau das anhakbare Token-Recht „Protokoll ansehen und Benachrichtigungen erhalten" nutzt. Die Status-Karte zeigt nach dem Aktivieren „Zuletzt empfangen: …", damit sichtbar ist, dass Meldungen wirklich ankommen; eingehende Meldungen werden weiterhin kryptografisch geprüft. Zusätzlich wurde der automatische Abgleich von 15 auf 5 Minuten verkürzt — Zustand, Akku und Protokoll sind damit selbst ohne Echtzeit-Verbindung stets aktuell.
  • Minutenlange weiße Seite beim harten Neuladen (STRG-SHIFT-R / Inkognito) — Die Anwendung lud das Styling-Skript und die Schrift beim Seitenstart von zwei fremden Servern (Tailwind-CDN, Google Fonts) — und zwar blockierend: Klemmte einer dieser Fremd-Server im Netz des Salons, blieb die Seite bis zu mehreren Minuten weiß, bevor sie sich aufbaute. Normale Reloads waren nicht betroffen (Browser-Cache), harte Reloads und Inkognito-Fenster luden alles frisch und hingen. Beide Ressourcen werden jetzt vom eigenen Server mit ausgeliefert — der Seitenstart hängt von keinem fremden Anbieter mehr ab (gilt auch fürs Kundenportal).
  • Türcodes blieben für immer „Ausstehend", obwohl Nuki sie längst angelegt hatte — Nuki speichert Keypad-Namen nur bis 20 Zeichen und kürzt längere still. PersonalCockpit vergab längere Namen und suchte den asynchron angelegten Zugang anschließend über den exakten Namen — der gekürzte Nuki-Name passte nie, der Status blieb „Ausstehend" und kippte auf „Fehler", obwohl der Code am Keypad funktionierte. Neue Codes bekommen jetzt einen Namen, der garantiert in 20 Zeichen passt (Personal-Nummer vorn, dann Vorname); der Abgleich erkennt zusätzlich gekürzte Namen und heilt bestehende Alt-Zugänge beim nächsten Abgleich von selbst (Status wird „Aktiv", auch die Personen-Zuordnung im Zutritts-Protokoll greift wieder).
  • Türschlösser-Kachel fehlte auf bestehenden Salon-Displays — Salons, die ihre Info-Wand-Kacheln schon vor dem Türschloss-Update gespeichert hatten, sahen die neue Kachel „Türschlösser" nicht: Im gespeicherten Kachel-Satz fehlte der neue Eintrag und „fehlt" zählte als „aus". Fehlende neue Kacheln gelten jetzt als eingeschaltet — wer die Kachel nicht möchte, nimmt den Haken bewusst heraus.
  • Verschlüsselte Werte konnten in seltenen Fällen für immer unlesbar werden — Beim Entschlüsseln (E-Mail-Passwörter, jetzt auch Türcodes und Nuki-Token) wurde der interne Trenner per Text-Suche gesucht; enthielt der zufällige Verschlüsselungs-Vorspann (IV) selbst die Trenner-Zeichen (~0,02 % der Speicherungen), wurde der Wert falsch zerlegt und war dauerhaft nicht mehr entschlüsselbar. Der Trenner wird jetzt über die feste IV-Länge gefunden — auch bisher betroffene Werte sind damit wieder lesbar; am gespeicherten Format ändert sich nichts.
  • Firmen-Dashboard: Die Kennzahlen-Karten passten nicht zur Tabelle darunter — Gleich drei Karten rechneten anders als die Mitarbeiter-Analyse. (1) Arbeitsstunden summierte *alle* Zeiteinträge des Monats, also Urlaub, Krankheit und Feiertage mit — die Spalte „Stunden" zählt dagegen nur echte Arbeit. Die Karte lag dadurch systematisch über der Spaltensumme (Beispiel: 124 statt 109 Stunden). (2) Bei „Alle Filialen" zählten zusätzlich Stunden und Umsätze von Personen mit, die gar keine Zeile in der Tabelle haben. (3) Ø Produktivität war der ungewichtete Mittelwert der einzelnen Mitarbeiter-Werte: Eine Aushilfe mit 2 Stunden und 300 € Umsatz (150 €/h) zählte genauso viel wie eine Vollzeitkraft — die Karte zeigte dadurch Werte, die über jeder Zeile der Tabelle lagen (119,60 €/h, obwohl in der Liste nur 8–79 €/h standen). Jetzt rechnen Karten und Tabelle über dieselbe zentrale Funktion: Arbeitsstunden = Summe der Spalte „Stunden", Ø Produktivität = Umsatz je Arbeitsstunde über alle Mitarbeiter. Dabei bleibt Umsatz von Personen ohne erfasste Arbeitsstunden (z. B. die Inhaberin, die nicht stempelt) aus der Produktivität heraus — sonst stünde er im Zähler, ohne im Nenner zu erscheinen, und die Karte läge erneut über jeder Tabellenzeile; gibt es solchen Umsatz, weist die Karte den Betrag als Hinweis aus. Neu ist außerdem eine Summenzeile am Tabellenende, mit der sich jede Karte direkt vergleichen lässt. Die Karte „Aktive Mitarbeiter" nennt zusätzlich die Zeilenzahl der Tabelle („von 26 in der Liste"), damit die verschiedenen Mitarbeiterzahlen erklärt sind. Auch der Vormonatsvergleich (+/- %) nutzt jetzt dieselbe Definition.
  • Firmen-Dashboard und Lohnexport luden ältere Monate nur unvollständig — Zeiteinträge wurden ohne Zeitraum-Angabe geholt; das Backend liefert dann nur die 1000 neuesten Zeilen. Bei 26 Mitarbeitern reicht das keine zwei Monate zurück, und die für das ganze Jahr im Voraus angelegten Feiertags-Einträge (auch künftige) belegten davon die vordersten Plätze. Folge: Für ältere Monate zeigte die Karte „Arbeitsstunden" 0,0 h bei vollem Umsatz, der Vormonatsvergleich stand dauerhaft auf „+100 %", und im Lohnexport konnten ganze Tage fehlen. Dashboard und Export fordern jetzt genau den benötigten Zeitraum an (gewählter Monat + Vormonat bzw. Export-Monat); die Abfrage ist auf die Datums-Spalte optimiert.
  • Arbeitszeit-Ansicht: Bearbeiten löschte die Herkunft eines Eintrags — Beim Speichern im Bearbeiten-Dialog wurde der Kommentar jedes Eintrags pauschal durch „Manueller Eintrag" ersetzt. Damit verlor ein Stempeluhr-Eintrag seine interne Kennung und Urlaubs-/Krank-Einträge ihre Verknüpfung zum Antrag (beim Storno blieben sie als Waisen stehen). Das Bearbeiten lässt den Kommentar jetzt unangetastet; im Bearbeiten-Tab von Stempeluhr-Einträgen weist eine Hinweisbox darauf hin, dass Zeiten besser über den Tagesverlauf (Stempel ändern) korrigiert werden. Außerdem: Der „Erfassen"-Vorschlag rechnet den Beginn jetzt inklusive Pause (vorher ergab der Vorschlag netto 7,5 statt 8 Stunden), der CSV-Export schreibt bei noch eingestempelten Tagen „läuft" statt einer Leerstelle, und die Monatssperre prüft beim Erfassen denselben Mitarbeiter, auf den der Eintrag tatsächlich gebucht wird.
  • Arbeitszeitkonto: Urlaubs- und Kranktage erzeugten schleichende Minusstunden — Das Tages-Soll wurde aus der vollen Planspanne gerechnet (z. B. 9:00–17:30 = 8,5 h), Urlaubs-/Krank-Gutschriften und die gestempelte Arbeit aber immer ohne die gesetzliche Pause (8,0 h). Ergebnis: ca. −0,5 h pro Urlaubs-, Krank- und exakt nach Plan gearbeitetem Tag — bei 30 Urlaubstagen rund −15 h, die niemand erklären konnte. Jetzt gilt überall dieselbe Regel: Soll = Planspanne minus gesetzliche Pause (über 6 Std.: 30 Min., über 9 Std.: 45 Min.); Feiertags-Gutschriften werden ebenfalls netto geschrieben und vorhandene automatisch einmalig angepasst. Ein Urlaubstag gleicht seinen Soll-Tag jetzt exakt aus. Wer statt eines Wochenplans nur „Soll-Stunden pro Tag" pflegt, bekommt sein Soll weiterhin ohne Pausenabzug (der Wert ist ein Netto-Ziel) — dort werden stattdessen die früher fälschlich gekürzten Urlaubs-/Krank-Gutschriften einmalig auf den vollen Wert angehoben.
  • Arbeitszeitkonto: Doppelte Stunden-Gutschriften sind ausgeschlossen — Zwei Alltagsfälle erzeugten Phantom-Guthaben: (1) Krank im genehmigten Urlaub — jeder Überlappungstag zählte doppelt (Urlaub + Krankheit ≈ 16 h gegen 8 h Tages-Soll). Die automatischen Gutschriften überspringen jetzt Tage, die bereits einen Eintrag haben (der zuerst erfasste gilt); wird ein Urlaub storniert oder gekürzt, übernehmen überlappende Krankmeldungen automatisch die freigewordenen Tage — und umgekehrt. Kindkrank-Tage (0-Stunden-Einträge) blockieren dabei keine echten Gutschriften. Einzige bewusste Ausnahme: Beginnt eine Krankmeldung an einem Tag mit bereits gestempelter Arbeit (morgens krank nach Hause), zählt der Tag nur die gestempelten Stunden — den Rest bei Bedarf manuell als Krankheit erfassen (vorher wurde der Tag über-gutgeschrieben). (2) Manuelles Nacherfassen über den Stempeluhr-Eintrag — trug der Chef einen Tag von Hand nach, den die Stempeluhr schon hatte, standen 16 h statt 8 h im Konto und im Lohnexport. Das Anlegen (und Verschieben) auf einen Tag mit Stempeluhr-Eintrag wird jetzt mit verständlicher Meldung abgelehnt, und der Stempeluhr-Eintrag behält beim Bearbeiten seine interne Kennung (sonst hätte der nächste Stempel einen zweiten Tages-Eintrag erzeugt).
  • Arbeitszeitkonto: „Übertrag Vorjahr" gilt jetzt wirklich pro Jahr — Bisher war der Übertrag ein einzelner Wert ohne Jahresbezug: 2025, 2026 und 2027 starteten alle mit derselben Zahl, und eine Korrektur verfälschte rückwirkend alle alten Jahresansichten. Jetzt wird der Startsaldo je Jahr gespeichert (bestehende Werte gelten weiter als Vorgabe für Jahre ohne eigenen Eintrag), der Stift-Dialog bietet „Endsaldo Vorjahr übernehmen" mit einem Klick an, und jede Übertrag-Änderung wird im Protokoll festgehalten (wer, wann, alter → neuer Wert) — Arbeitszeitkonten sind lohnrelevant. Zusätzlich meldet das Speichern jetzt ehrlich einen Fehler, statt bei beschädigten Profildaten stillschweigend andere HR-Angaben zu überschreiben.
  • Arbeitszeitkonto: Das Monats-Soll kommt jetzt aus derselben Quelle wie Urlaubs- und Feiertags-Gutschriften — Das Konto hatte eine eigene Arbeitsplan-Auswertung, die in vier Fällen von der übrigen Anwendung abwich: (1) Tagesänderungen aus dem Kalender (z. B. ein per „Arbeitszeit ändern" freigegebener Montag) zählten nicht ins Soll — der Tag erschien als −8 h, obwohl Urlaubszählung und Feiertags-Gutschrift ihn längst als frei kannten. (2) Beim 14-Tage-Wechsel ohne Startdatum (kein Pflichtfeld) und bei übrig gebliebenen Wochen-Zeilen nach einer Plan-Umstellung fiel das Monats-Soll komplett auf 0 h, während Arbeit und Gutschriften weiterliefen — das Konto explodierte still ins Plus. (3) Vertauschte Planzeiten (17:00–09:00) ergaben 0 h Soll bei 8 h Feiertags-Gutschrift; solche Zeilen werden jetzt beim Speichern mit verständlicher Meldung abgelehnt und vorhandene zählen überall einheitlich als „kein Arbeitstag". (4) Ein automatisch erzeugter Feiertags-Eintrag machte einen sonst komplett inaktiven Monat (z. B. Elternzeit) zum „aktiven" Monat mit vollem Monats-Soll — allein der 1. Mai erzeugte ~−154 h. Jetzt bezieht das Soll jeden Tag aus derselben Funktion wie alle Gutschriften — die vier Abweichungen sind damit konstruktionsbedingt ausgeschlossen.
  • Arbeitszeitkonto: Mitten im Monat standen alle scheinbar tief im Minus — Der laufende Monat wurde mit dem Soll des *ganzen* Monats gegen die Arbeit *bis heute* gerechnet; am 10. des Monats zeigte eine Vollzeitkraft im Plan ca. −120 h. Der laufende Monat zählt jetzt Soll, Ist und Urlaubs-/Krank-Gutschriften einheitlich nur bis heute (in der Tabelle als „bis heute" gekennzeichnet) — der Saldo ist damit tagesaktuell, ein schon genehmigter Urlaub am Monatsende zählt erst, wenn seine Tage erreicht sind, und am Monatsende ist die Zahl unverändert exakt.
  • Arbeitszeitkonto: Der laufende Stempel-Tag zählte 0 Stunden — Solange jemand eingestempelt war, fehlten die bereits gestempelten Stunden des Tages im Konto (die Arbeitszeit-Ansicht zeigte sie korrekt — zwei widersprüchliche Zahlen). Zusätzlich schließt das System vergessene Ausstempelungen einer Person jetzt bis zu 90 Tage rückwirkend (bisher 7 Tage — ein über Betriebsferien vergessenes Ausstempeln blieb dadurch für immer „laufend").
  • Sicherheitslücke: Zeiteinträge waren für jeden Mitarbeiter frei änderbar — Jeder eingeloggte Mitarbeiter konnte die Arbeitszeiten *aller* Kollegen ändern und für beliebige Kollegen neue Einträge anlegen — und im QR-Stempeluhr-Betrieb den eigenen Stempel-Eintrag nachträglich verlängern, vorbei an der Stempeluhr, direkt ins lohnrelevante Konto. Jetzt gilt: Einträge anderer ändern/anlegen erfordert die Berechtigung „Arbeitszeiten verwalten", und im QR-Betrieb sind die eigenen Einträge (wie beim Anlegen) auch für das Bearbeiten gesperrt.
  • Stempeluhr-Stunden fehlten im Firmen-Dashboard und Lohnexport — Bei allen Mitarbeitern zeigten Dashboard, Arbeitszeit-Karten und der DATEV-/Lohnexport nur die von Hand erfassten Stunden; alles, was über die QR-Stempeluhr kam, fehlte (Beispiel: 45,2 h angezeigt statt 166,9 h). Ursache: Die Stempeluhr hat ihre Einträge intern mit einer klein geschriebenen Typ-Kennung gespeichert („work" statt „WORK") — die Datenbank behandelte beides gleich, die Anzeige aber nicht. Die Stempeluhr schreibt jetzt die richtige Kennung, alle vorhandenen Einträge werden beim nächsten Update automatisch einmalig repariert, und die Anzeige gleicht zur Sicherheit künftig selbst aus. Es sind keine Stunden verloren gegangen — sie waren immer da, nur falsch beschriftet.
  • Arbeitszeitkonto ignorierte das Eintrittsdatum — Wer mitten im Monat anfing, bekam trotzdem das Monats-Soll des ganzen Monats angerechnet und startete mit hohen Minusstunden (Beispiel: Eintritt 13.07. → 207 h Juli-Soll → −87 h). Das Konto rechnet das Soll jetzt erst ab dem Eintrittsdatum (und nur bis zum Austrittsdatum) aus dem Mitarbeiter-Profil; Feiertags-Gutschriften entstehen ebenfalls nur noch innerhalb der Beschäftigung. Wichtig: Das Eintrittsdatum muss im Mitarbeiter-Profil gepflegt sein — ohne Datum rechnet das Konto wie bisher.
  • „API Error: 500" beim Anlegen eines Standorts — Ließ man das Feld Buchungs-Slug (URL) leer, brach das Speichern mit einer leeren Fehlermeldung ab. Ursache: Das leere Feld wurde als leerer Wert gespeichert statt aus dem Filialnamen abgeleitet — und weil die Buchungs-Adresse je Betrieb eindeutig sein muss, scheiterte jeder zweite Standort ohne eigenen Slug an genau dieser Regel. Der Fehler wurde nicht abgefangen, deshalb kam nur „500" ohne Text zurück. Jetzt wird die Adresse automatisch aus dem Namen gebildet („Köln Süd" → koeln-sued, Umlaute werden ausgeschrieben) und bei Dopplungen durchnummeriert (zentrale, zentrale-2). Ein selbst eingetippter Slug wird ebenso bereinigt. Gilt genauso beim Bearbeiten eines Standorts. Sollte doch einmal etwas schiefgehen, steht jetzt ein verständlicher Grund im Formular statt einer nackten Fehlernummer.
  • Hochgeladene Dateien in der Kundenakte ließen sich nicht öffnen (Issue #102) — Wer ein Foto in die Kundenakte geladen hatte, kam nicht mehr daran: Der Klick lief ins Leere. Ursache war ein einfacher Link, der die Anmeldung nicht mitschickt — die Schnittstelle antwortete deshalb jedes Mal mit „nicht angemeldet". Die Datei wird jetzt angemeldet abgeholt und direkt aus der Anwendung heraus geöffnet. Der Zugangsschlüssel steht dabei bewusst nicht in der Adresszeile, denn Kundenfotos sind sensibel und Adressen landen im Verlauf des Browsers und in Server-Protokollen. Zweiter Teil des Problems: Der Server hat jede Datei als Download ausgeliefert — ein Foto wurde also selbst bei geglückter Anmeldung nur gespeichert, nicht gezeigt. Fotos und PDF werden jetzt direkt angezeigt (Symbol: Auge), alles andere weiterhin heruntergeladen (Symbol: Pfeil). Der Dateityp wird dabei am tatsächlichen Inhalt erkannt, nicht an der Angabe des hochladenden Browsers — die ist häufig leer oder falsch. SVG- und HTML-Dateien werden nie direkt angezeigt, sondern immer heruntergeladen: sie können Skript enthalten, das sonst im Fenster der Anwendung ausgeführt würde. Außerdem: Zieht die Installation in ein anderes Verzeichnis, werden Altbestände weiterhin gefunden, statt als „nicht auffindbar" zu gelten.
  • Lohnfaktor war um ein Drittel zu niedrig (Issue #61) — Die Kennzahl wurde intern als *Netto*-Sollumsatz ÷ *Arbeitgeberkosten* gerechnet, branchenüblich ist aber Brutto-Umsatz ÷ Bruttolohn (ohne Lohnnebenkosten). Beide Abweichungen zeigen in dieselbe Richtung und multiplizieren sich: 1,19 (MwSt) × ca. 1,25 (Arbeitgeber-Anteil) = rund 33 % zu niedrig. Im gemeldeten Beispiel stand 3,47, wo 5,15 hingehört (7.492 € Monatsumsatz ÷ 1.454 € Bruttolohn). Damit war auch der in der Mitarbeiter-Simulation daraus gerechnete Sollumsatz zu niedrig, denn die Tabelle rechnet dort korrekt „Bruttolohn × Lohnfaktor" — sie bekam nur den falschen Faktor geliefert. Der Arbeitgeber-Anteil wird nicht pauschal angenommen, sondern aus den echten Zahlen des Salons gebildet; Minijobber, abweichende KV-Sätze und überschriebene Werte sind damit automatisch berücksichtigt. Das Fenster „Rechenweg" zeigt jetzt die Branchen-Formel Schritt für Schritt inklusive Gegenrechnung pro Monat. Unverändert bleiben die Soll-Umsätze je Mitarbeiter: die werden gegen die tatsächlichen Netto-Umsätze verglichen und rechnen deshalb weiter auf Netto-Basis — die Soll-Umsätze je Mitarbeiter, weil die gegen die tatsächlichen Netto-Umsätze verglichen werden. Die Bewertungs-Schwellen 3,0 bis 5,0 bleiben unverändert — sie sind Branchenwerte und waren immer schon für die Brutto-Formel gedacht (von Sven bestätigt: „3.0 - 5 sind aus unserer Erfahrung sehr realistische Werte"). Der Hinweistext im grünen Bereich nannte bisher „3.0 - 4.5" und widersprach damit der eigenen Ampel-Logik, die schon bis 5,0 grün zeigte; beides sagt jetzt dasselbe.
  • Verfügbarkeits-Schnittstelle setzte Artikel auf „lieferbar" statt auf „nicht lieferbar" — Wer der Schnittstelle {"scope":{"eans":["…"]},"state":"nicht_lieferbar"} schickte, bekam success: true zurück, und der Artikel stand danach auf lieferbar. Ursache: Der Endpunkt kannte kein Feld state — er erwartete ausschließlich Ausnahmen-Listen (unavailable/unknown). Das unbekannte Feld wurde stillschweigend verworfen, und ein Aufruf ohne Ausnahmen bedeutet nach dieser Regel „alles im Bereich ist lieferbar" — also genau das Gegenteil der Absicht, als Erfolg gemeldet. Dass /meta die drei Zustände als availability_states auflistet, hat die Verwechslung nahegelegt. Drei Änderungen: state wird jetzt unterstützt (verfuegbar → 1, nicht_lieferbar → 0, unbekannt → leer, Groß-/Kleinschreibung egal) und ist der einfache Weg für einzelne Artikel; unbekannte Felder werden abgewiesen (status, availability, value … ergeben einen Fehler statt eines stillen Treffers ins Gegenteil); und ein Aufruf, der weder state noch eine der Listen enthält, wird ebenfalls abgewiesen, statt „alles lieferbar" zu bedeuten. state und Listen zusammen sind widersprüchlich und werden abgelehnt. Die Antwort nennt jetzt zusätzlich mode und state — so ist ablesbar, wie der Aufruf verstanden wurde.
  • Einzelne Artikel ließen sich gar nicht auf „nicht lieferbar" setzen — Die Sicherheitsschranke („mehr als die Hälfte des Bereichs wäre nicht lieferbar") rechnete auch bei winzigen Bereichen mit Prozenten: Ein Artikel als nicht lieferbar zu melden sind „1 von 1" und damit 100 % — der Aufruf wurde abgewiesen und war nur mit force: true möglich. Die Schranke greift jetzt erst ab fünf Artikeln im Geltungsbereich; darunter ist ein Prozentwert bedeutungslos und ein solcher Aufruf kann auch kein Sortiment leeren. Für größere Bereiche bleibt der Schutz unverändert — eine ganze Marke auf „nicht lieferbar" zu setzen wird weiter blockiert und schreibt nichts.
  • PHP-Warnung bei jedem Aufruf ohne match_by — Die Prüfung des Feldes fing den fehlenden Schlüssel nur auf einer Seite ab; fehlte match_by, gab PHP eine Warnung aus (die bei eingeschalteter Fehleranzeige die JSON-Antwort zerstört) und der Abgleich lief mit einem leeren Wert statt mit auto.
  • Import setzte Gewichte, Maße und VPE auf 0 — Eine Händler-Liste ohne Gewichtsspalten (z. B. die Produktbilder-Tabelle) hat bei hunderten Artikeln gepflegte Angaben mit 0 überschrieben: Nettogewicht 78 → 0, Länge/Breite/Höhe → 0, Stück/VPE 60 → 0. Ursache waren zwei Dinge, die jetzt beide behoben sind: Der Import erzeugte für fehlende Spalten eine 0 statt „kein Wert", und die Übernahme akzeptierte diese 0 als echte Angabe. Neue Regel — wie bei den Preisen: Für Gewichte, Maße und VPE werden nur Werte größer 0 übernommen; eine 0 ist bei einer Kantenlänge keine Angabe. Bereits genullte Artikel bekommen Sie über „Import zurücknehmen" im Import-Protokoll zurück (der alte Wert steht dort).
  • Gewichte und Maße waren um den Faktor 1000 zu groß — Die Händler-Datei schreibt Zahlen englisch („1146.000" für 1146 g, „90.00" für 90 mm), der Import las jeden Punkt als Tausendertrenner: aus 1146 g wurden 1.146.000 g, aus 90 mm wurden 9.000 mm. Der Zahlen-Leser versteht jetzt beide Schreibweisen — deutsch („1.146,000") und englisch („1146.000") — und entscheidet anhand der Stellen, was Dezimal- und was Tausendertrenner ist. Gilt auch für Preise.
  • Warnung, wenn der interne Produktname überschrieben würde — Ordnet man in der Spalten-Zuordnung dieselbe Spalte dem internen Namen und dem Kundennamen zu, wird die interne Bezeichnung („LP Dia Light 0 60ml V140") durch den Shop-Namen ersetzt — mit ihr sucht man aber beim Bestellen. Die Zuordnungs-Karte weist jetzt rot darauf hin und empfiehlt, den internen Namen auf „Nicht importieren" zu stellen.
  • Streichpreis-Ersparnis wurde zu hoch angezeigt — Der UVP ist ein Brutto-Preis, der Verkaufspreis in den Grunddaten ist netto. Die Maske hat beide direkt verglichen und dadurch eine um die Mehrwertsteuer zu hohe Ersparnis ausgewiesen. Verglichen wird jetzt mit dem Brutto-Verkaufspreis; die Anzeige nennt beide Werte. Dasselbe steht nun korrekt in der API-Dokumentation: selling_price ist netto (der Shop schlägt die MwSt selbst auf), uvp_price ist brutto.
  • Länge/Breite/Höhe konnten vertauscht werden — Die Spaltenerkennung für „Länge" konnte bei ungewöhnlicher Spaltenreihenfolge die Breiten-Spalte erwischen. Die Muster sind jetzt eindeutig abgegrenzt.

Version 2.9.02026-06-02

Firmen-Dashboard & Mitarbeiter-Analyse — Optimierungen und Lohnübertrag

Wir haben das Firmen-Dashboard und die Tabelle "Mitarbeiter Analyse" grundlegend überarbeitet, um eine effizientere Verwaltung der Mitarbeiterdaten, eine bessere Zeiterfassungs-Einsicht sowie eine direkte Vorbereitung für den Lohnübertrag zu ermöglichen.

Hinzugefügt

  • Mitarbeiter-Details-Modal — Ein Klick auf den Namen eines Mitarbeiters in der Tabelle öffnet nun ein breites Modal (4xl), das die detaillierte TimeTrackingView für den ausgewählten Mitarbeiter anzeigt. Das Modal ist automatisch auf den im Dashboard ausgewählten Monat und das Jahr eingestellt.
  • Lohnprogramm-Übertrag (Abhaken) — Neue Checkbox-Spalte "Lohn" ganz links. Damit können Mitarbeiter als vollständig übertragen markiert werden. Die Daten werden monatsspezifisch direkt in der Datenbank des Mandanten gespeichert.
  • Mobile-Checkoff-Support — Auch in der Mobile-Kartenansicht wurde eine Checkbox integriert (Klicks darauf triggern nicht das Modal).
  • Zustandspersistenz — Filter (Monat, Jahr, Filiale) und Sortiereinstellungen werden im localStorage gespeichert und bleiben beim Verlassen der Seite erhalten.
  • Detaillierte Zeiträume (Tooltip) — Hovern/Klicken auf Abwesenheitszellen (Urlaub, Krank, Kind, Feiertag, Unbezahlt) öffnet einen Tooltip mit einer zusammenhängenden Zeitraumliste (z. B. 01.06. - 05.06.2026). Die Zeiträume können einzeln kopiert werden.
  • Dynamische Tooltip-Ausrichtung — Tooltips messen den Abstand zur Tabellenüberschrift (dashboard-table-header) und weichen bei weniger als 220px Platz automatisch nach unten aus.

Geändert

  • Aufteilung der Namensspalte — Die Spalte "Name" wurde in zwei separate, unabhängig sortierbare Spalten "Vorname" und "Nachname" aufgeteilt.
  • Dreistufige Sortierreihenfolge — Die Tabelle teilt sich nun automatisch in drei Gruppen auf: Offene aktive Mitarbeiter (oben), ins Lohnprogramm übertragene aktive Mitarbeiter (Mitte) und ausgetretene Mitarbeiter (unten). Die Spaltensortierung bleibt in jeder Gruppe erhalten.
  • Ausgetretene Mitarbeiter — Inaktive/ausgetretene Mitarbeiter werden immer ganz unten einsortiert und visuell ausgegraut (opacity-60 bg-slate-100/50).
  • Vergrößerter Tooltip-Text — Die Daten im Tooltip sind jetzt mit text-[14px] font-bold deutlich besser lesbar.

Entfernt

  • Umsatz- & Stundendiagramm — Das Diagramm "Umsatz & Stunden Entwicklung" wurde vollständig aus dem Dashboard entfernt, um den Fokus auf die Tabelle zu legen.

Version 2.5.02026-02-17

Warenwirtschaft — Kompletter UI-Rewrite

Die gesamte Warenwirtschaft wurde überarbeitet und auf eine moderne Tab-basierte Architektur umgestellt.

Hinzugefügt

  • Tab-Navigation — Die WaWi ist jetzt in 5 übersichtliche Tabs aufgeteilt: Dashboard, Produkte, Bestellungen, Lagerbestand und Lieferanten
  • Dashboard-Tab — Zentrales Dashboard mit KPIs, letzten Bestellungen und Quick-Actions ist jetzt als eigenständiger Tab verfügbar
  • Tab-Persistenz — Der zuletzt ausgewählte Tab wird im Browser gespeichert und bleibt über Sessions hinweg erhalten
  • Katalog Import — Neuer Button direkt im Produkte-Tab neben „Neues Produkt" für schnellen Zugriff auf den Katalog-Import

Geändert

  • Einheitliches Layout — Alle Tabs (inkl. Bestellungen) verwenden jetzt das gleiche Grundlayout mit konsistenter Breite, Überschriften-Stil und Spacing
  • Bestellungen-Header — Angepasst an den Standard der anderen Tabs (gleiche Font-Größe, Farbe, Untertitel-Stil)
  • Katalog Import Button — Verschoben von der Tab-Leiste direkt in den Produkte-Header (neben „Neues Produkt") für bessere UX
  • Navigation — Alle WaWi-Views werden jetzt über einen zentralen Container (WaWiView.tsx) gesteuert statt über einzelne Routen in App.tsx

Repariert

  • Zurück-Button im Katalog Import — Navigierte zu einem ungültigen ViewState ('WAWI'), jetzt korrekt auf 'WAWI_PRODUCTS' zeigend

Visuell

  • Alle Emoji-Icons entfernt — Sämtliche Emoji-Icons (, , , , , , , , , , ) wurden durch saubere Lucide-React SVG-Icons ersetzt
  • Betroffene Dateien: WaWiView, WaWiDashboardView, WaWiProductsView, WaWiStockView, WaWiOrdersView, WaWiIncomingView, WaWiMasterDataImportView
EmojiNeues IconKontext
PackageKatalog Import, Handelsware
ArrowLeftZurück-Buttons
ZapImport-Aktionen
CheckErfolgsmeldungen
RefreshCwAktualisierungen
SkipForwardÜbersprungen
CpuGemini AI Badge
FileTextZUGFeRD, Dokumente
ClipboardListAktivitäten
MapPinKabinett
ShoppingBagVerkauf
WrenchZubehör
AlertTriangleWarnhinweise
InfoInformationshinweise

Technisch

  • App.tsx — Konsolidierung aller WAWI_* ViewState-Cases in eine einzige Route zum WaWiView-Container
  • WaWiView.tsx — Neuer Tab-Container mit LocalStorage-Persistenz, interner Sub-Navigation und Prop-basierter Steuerung
  • WaWiProductsView.tsx — Neue onCatalogImport-Prop für den Katalog-Import-Button
  • WaWiOrdersView.tsx — Layout-Harmonisierung (Padding, Header-Struktur)

Alle Änderungen

Jede Änderung in Alltagssprache — die neuesten zuerst.

August 2026

31.08.2026
Intern
API-Client + Typen der Lohnexport-Strecke auf master (Vorstufe der UI-Promotion) cbbb863
Intern
Lohnexport-Backend v25+v26 auf master: Exportreservierung + Abhak-Gate b50fffe
Intern
Deploy Test: lftp-Befehlsdatei per stdin statt -f (Option kollidiert mit Server-URL) 5d1762c
Intern
Deploy Test: automatischer master-Lauf laedt nur noch die API hoch 675bae2
30.08.2026
Neu
payroll Korrekturledger v24 backendseitig vorbereiten 1997b2c
22.08.2026
Intern
Leere Ordner-Settings fallen auf den Standard-Ordner zurueck eb095dc
Intern
Import-Diagnose: Fehlertexte sichtbar + Abbruch bei Fehler-Serien c9b9002
21.08.2026
Intern
Review-Befunde: Selbstheilung in beide Richtungen, Migrations-Nachholer, Waechter-Praezision 7664956
Intern
Datenquellen & Finanzen: schwere Auswertungen raus aus dem kritischen Pfad eab76d8
Intern
Waechter gegen verwaiste ALTER-Statements (Metadaten-Lock-Zombies) 9fc4774
19.08.2026
Intern
Schema-Migrationen: lange Index-Aufbauten absichern (kein Retry-Loop, keine Tabellen-Blockade) fa26e88
Intern
Finanzen-View: bei nicht erreichbaren Datenquellen-Einstellungen keinen falschen Modus anzeigen b21d2b1
Intern
Review-Befunde — Sync-Retry mit Limit, MANUAL-Guard, Map-Guard f061fc8
Intern
Speichern blockierte die ganze Anwendung — schwere DB-Arbeit entschärft 499fdcb
Intern
Apt-Haenger der GitHub-Runner abfangen (Timeout + Mirror-Fallback) 4ba3918
Intern
Salon-Display: funktionierender Link auf Test-/Staging-Domains 981c1cf
Intern
Nuki-Echtzeit: Fallback auf die Notification-API (normaler Token reicht) cd5661d
Intern
Wählbare Push-Themen (Akku, Zugänge, Öffnungen) f241e93
Intern
Nuki-Echtzeit: ehrliche 401-Meldung + Abgleich auf 5 Minuten verkürzt 604eab5
18.08.2026
Intern
Salon-Display im neuen Design („Organic 2026") 231c93f
Intern
Handbuch & Changelog: Nuki-Vollausbau dokumentiert ba91a5a
Intern
Nuki-Vollausbau (Frontend): Zeitfenster-Modal, Geräte-Modal, Echtzeit-Karte 82e359d
Intern
Nuki-Vollausbau (Backend): Zeitfenster, Geräte-Konfig, Echtzeit, Keypad-Aufgabe 504f3ba
Intern
Tailwind-Runtime und Inter-Schrift self-hosten 0e08596
Intern
Handbuch & Changelog: Meine Türen, Zugänge zuordnen, Ausstehend-Fix b0c39e4
Intern
Adopt-Modal in der Matrix + neue View „Meine Türen" (Frontend) e1bfd86
Intern
„Ausstehend"-Bug beheben, Zugänge adoptieren, Selbstbedienung (Backend) 4f2fef5
Intern
Sicherheits-Review eingearbeitet (verwaiste Codes, Token-Verschluesselung, decrypt-Fix) e370fc0
Intern
Nuki-Tuerschloesser: zentrale Verwaltung, Zugaenge-Matrix, Akku-Kachel + automatische Ladeaufgabe c08133c
03.08.2026
Intern
Firmen-Dashboard: Review-Befunde eingearbeitet (Umsatz ohne Stunden, Datenlimit, Summenzeile) f59cf3e
Intern
Firmen-Dashboard: Kennzahlen-Karten stimmen jetzt mit der Tabelle ueberein 90027a7
01.08.2026
Intern
Konto-Tagesansicht: Handbuch-Screenshots mit finaler Bearbeiten-Oberflaeche neu erzeugt 7eda192
Intern
Konto-Tagesansicht: Review-Befunde eingearbeitet (Typ-Schutz, Protokoll-Rauschen, QR-Warnung, Summen-Symmetrie) e8f076f
Intern
Monats-Detailansicht — jeder Tag mit Soll/Ist/Saldo, Eintraege direkt korrigierbar 5767885
Intern
Artikel-Links teilen — Teilen-Knopf auf jeder Doku-Seite + Link-kopieren im Hilfe-Panel ece89b6

Juli 2026

31.07.2026
Intern
Alle 14 Zeiterfassungs-Artikel komplett ueberarbeitet + frische Screenshots d99d0ec
Intern
Arbeitszeit-Ansicht: Herkunft der Eintraege beim Bearbeiten erhalten + Kleinfixes ba1883d
Intern
Arbeitszeitkonto Paket 3: Doppelzaehlungs-Schutz + Uebertrag je Jahr c3acf5b
Intern
Arbeitszeitkonto Paket 2: Eine Quelle der Wahrheit fuers Tages-Soll 709e21b
Intern
Arbeitszeitkonto Paket 1: Pausen-Symmetrie, tagesaktueller Saldo, Berechtigungen 93562d1
Intern
Stempeluhr-Stunden + Arbeitszeitkonto-Eintrittsdatum 3e486d9
Intern
Eintritts-/Austrittsdatum im Monats-Soll beachten ddca62c
Intern
Stempeluhr-Eintraege zaehlen wieder in Dashboard und Lohnexport 504025e
Intern
Mitarbeiter-Auswahl vor dem Modal + Barcode-Scanner fuer den Gutschein-Code f89d412
Intern
Differenzen korrigieren: Frontend schickt die angezeigten Soll-Werte mit + Ergebnis-Banner im Fenster 2bbca90
Intern
Leeres Produkt-Modal (String/Zahl-id) + 'Differenzen korrigieren' in der Buchungs-Ansicht 9cb5bde
Intern
Dubletten-Diagnose + Zusammenfuehren mit waehlbarer Bestand-Strategie 598d692
30.07.2026
Intern
Audit-Fixes: Scan-Ansicht bei Paperless-Bestellungen leer + Live-Bestand-Abgleich + Historie-Filter cf16d29
Intern
Filter-Fix, Admin-Mehrfachauswahl, Lieferanten-Suche + Mindestbestand-Knopf e7e6350
Intern
'Scannen & buchen' — zweispaltiger Bulk-Editor (Soll links, Gescannt rechts) 578d849
Intern
Nachbuchen-Knopf in der Buchungs-Ansicht + Produkt-Historie zeigt ALLE Bewegungen 78da17c
Intern
Zugang-Reparatur: falsch ersetzte Bestaende nachbuchen + Versions-Sperre d5b9449
Intern
Bulk-Buchung/Historie gegen fehlgeschlagene v15-Migration absichern aa1f32b
Intern
Bulk-Historie: geoeffnete Sitzung nicht mit Browser-Zwischenspeicher ueberschreiben 32f7aec
Intern
WaWi Bulkbuchen: Zugangs-Modus (addieren) + Bestell-Verknüpfung ea9386a
27.07.2026
Intern
Standort anlegen: 500er bei leerem Slug beheben acce690
26.07.2026
Intern
Issue #102: Dateien in der Kundenakte ließen sich nicht öffnen 7dd808d
25.07.2026
Intern
Issue #61: Ampel-Schwellen sind Branchenwerte — Skalierung zurückgenommen f981449
Intern
Soll-Preise runden (#101), eigene EWZ-Spalte (#53), Produktsuche (#57) 10a8376
Intern
Issue #61: Lohnfaktor war um ein Drittel zu niedrig 8742233
Intern
State-Form auch in den Übersichts- und Betreiber-Stellen nachziehen 9766fa1
Intern
Verfügbarkeits-API: state-Feld statt stillem Treffer ins Gegenteil 0bf769e
Intern
Lieferanten-Verfügbarkeit: drei Zustände am Artikel + /availability-API 81091b0
Intern
API-Seite mit der echten WaWi-REST-Referenz statt Platzhalter 89bdad8
Intern
Massen-Preisrechner: Rundung auf den Brutto-Preis umschaltbar 165282e
Intern
Import-Nullung behoben, Massen-Preisrechner, Shop-Spalten, breiteres Produkt-Fenster 2c5561b
Intern
WaWi-REST-API: Onlineshop-Anbindung mit Schluesseln je Mandant 58759a3
Intern
WaWi-Onlineshop: Freigabe-Schalter, Streichpreis und drei Produktseiten-Abschnitte e073704
24.07.2026
Intern
WaWi-Import: Lauf im Protokoll zuruecknehmen, mit Schutz fuer benutzte Artikel 40f5867
Intern
WaWi-Dubletten: Sammel-Zusammenfuehrung mit Sicherheitsschranken bd0300a
Intern
WaWi-Import: Vorschau und Import in Einklang + Konflikt-Gruende benennen 70eecfe
Intern
WaWi-Import: Spalten selbst zuordnen, Abgleich-Feld und Merge-Regeln waehlbar c1b0049
Intern
WaWi-Import: Zuordnung ueber die EAN + Schutz vor Massen-Dubletten 6d1dfc1
Intern
WaWi-Import: eigene Produktbilder per ZIP + Spalten der Haendler-Shopliste fb3963e
Intern
Online-Shop-Angaben am Artikel (Reiter OnlineShop) + Massenpflege per Excel 229e9cb
18.07.2026
Intern
DSGVO-Vorlagen Zeiterfassung (Datenschutzinformation + Unterweisung) als PDF-Downloads e2b7f87
Intern
Instyler-Auto-Import robust: ueberfaellig-Logik statt starrer Minute 0 + Sichtbarkeit in der UI 698fbbd
17.07.2026
Intern
Fix Lagerbestand: Standort-Filter traf nie (String-Select vs. numerische location_id) adb1e35
Intern
Dubletten-Suche fuer Produkte (EAN / gleicher Name / sehr aehnlich) + Direkt-Zusammenfuehren 2aeee43
Intern
Fix Kamera-Scanner: "Scanner paused"-Overlay lag dauerhaft ueber dem Bild bc00c30
Intern
Doppelte Produkte intelligent zusammenfuehren (Vergleichs-Dialog + vollstaendiges Umhaengen) 63db418
Intern
WaWi-Bestellungen: Stammdaten-Uebernahme + Ist-Mengen-Fix, Riesen-Rechnungen in Etappen, Positions-Suche, 0-Artefakt fe6e117
Intern
Salon-Kiosk 1.24.2: Rechtsklick-Kontextmenue (Bild speichern/kopieren, Link/Text kopieren, Neu laden) 9825445
Intern
Salon-Kiosk 1.24.1: Fernwartung ohne Freigabe + Haus-Knopf laedt Start-URL des aktiven Tabs d145f0e
Intern
Geldtransit mit Filial-Zwischensummen, Gesamtsumme + "gebucht"-Haken (Wer/Wann) 8d801a6
Intern
Salon-Kiosk 1.24.0: Home-Button, Popups im Vordergrund, MS-Remotehilfe, Fern-Tab-Wechsel, Live-Kommandos 2a5e498
Intern
Barcode-Pflicht (manuell nur Admin), Scan je Einheit mit Fortschritt, kein Scroll-Sprung 1fec022
Intern
Produkt-Modal: Tab-Leiste klebt nicht mehr — Feld-Labels nie wieder verdeckt 40c6d98
Intern
Verbuchte ins Archiv (Umschalter Aktuell/Archiv) + Filiale als Badge hervorgehoben 3ac0252
Intern
WaWi-Bestellungen: Rechnung ansehen + Neu einlesen (KI) + Stichproben-Bereich aufgeraeumt b62ab71
Intern
Produkt-Modal: Tab-Leiste lesbar — Scroll-Reset beim Oeffnen/Tab-Wechsel + Schatten 1e06a37
Intern
Gemini-Parse: Steuerzeichen-Fehler abgefangen (3-stufige Bereinigung) 0ac2a42
Intern
Gemini-Rechnungsimport: abgeschnittene Antworten behoben (JSON-Syntax-Fehler) 68d2664
Intern
Hex-ids aus wawi_order/wawi_order_item entfernt + Zaehler-Selbstheilung + Import-Timeout 150s d45051a
Intern
Gemini-Modell: Setting wird jetzt ueberall respektiert, Fallback auf gemini-flash-latest 51510b1
Intern
Paperless-Auto-Abgleich (Tag-gesteuert) + Tag-Lebenszyklus + Filiale nachträglich zuordnen 38a1835
Intern
Plus-Menü: Artikel (Barcode) vor Stempeln (QR-Code) einsortiert 1cba4e1
Intern
6 Artikel zum WaWi-/Datenquellen-Paket + Changelog 2.10.0 758850f
16.07.2026
Neu
Warenwirtschaft Warenwirtschaft rundum erneuert: Excel-Katalog-Import, Protokoll & Historie, Produktfotos, Barcode-Scan, Umsatzquellen-Assistent und mobile Bedienung

Händler-Preislisten (z. B. der L'Oréal-PPD-Materialstamm) lassen sich jetzt direkt als Excel- oder CSV-Datei importieren — mit sicherer Abgleich-Regel (EAN + Artikelnummer), Konflikt-Schutz und Vorschau. Neu dazu: das Import-Protokoll (wer hat wann welche Datei importiert, je Zeile alt→neu) und die Änderungs-Historie in jedem Produkt. Produktfotos können am Handy per Kamera aufgenommen werden, das Plus-Menü öffnet Artikel per Barcode-Scan, und beim Wechsel der Umsatz-Quelle regelt ein Assistent die alten manuellen Einträge (Archiv statt Löschen). Produkte, Lager, Bestellungen und Import sind jetzt komplett mobil bedienbar. Alle Einzelheiten in den sechs neuen Handbuch-Artikeln und unter Version 2.10.0.

2054187
Intern
Ergänze faire UX-Psychologie-Regeln 7343561
Intern
Kategorie-Abschnitte, Spalte 'Abweichung (EUR)' + Soll exkl. EWZ, Lohnfaktor-Rechenweg + Unternehmer-Umsatz (#53 #61 + #55-Korrektur) 3289793
Intern
Kalkulationstool Quick-Wins: Meter-Einheit, Produkt-Bearbeiten, DL-Sortierung, Kategorie-Filter, Farb-Legende (#54 #55 #58 #59 #60) 1543595
Intern
Index.html zuletzt hochladen — kein Weisse-Seite-Fenster mehr waehrend des Uploads 0b1f29a
Intern
Mitarbeiter-Kanban: Anwesenheit aus Stempel-Status (QR-Modus) + Salon-Aufgaben je Filiale erledigen facd349
15.07.2026
Intern
Haertungspaket aus dem Gesamtaudit: Placetel raus aus dem Request-Pfad, Kassen-Timeouts, Frontend-Guards, Lock-/Migrations-Haertung, Migration v4 b15658d
Intern
Session-Serialisierung beseitigt: API session-frei (ausser Kasse) + App-Request-Messung 584dca7
Intern
Scheduler uebernimmt den ICS-Sync (alle 5 Min) + status-cron Lock 623ca26
Intern
Diagnose-Seite: Fehlalarm bei DB-Schema-Version > Code-Version beheben 02f73e8
Intern
Cron-Stapeln beseitigt: Ueberlappungs-Lock fuer ALLE 11 ungesicherten Crons + ICS-Feed-Timeout 10 s 314fc22
Intern
Kalender-Poll: externe instyler-ICS-Abrufe aus dem Request-Pfad entfernt (App-Ausfall-Ursache) 7f973d5
Intern
Display-Pfad: Mess-Protokoll je Request, Session-Lock raus, Poll 30 s, flock-Snapshot a44edfa
Intern
Anderer Ansatz: Snapshot-Architektur — Salon-Displays von der Datenbank abgekoppelt 38d7202
Intern
Display-Last Runde 3: Foto-DELETE je Reload beseitigt, Poll-Stapeln verhindert, Heilung gedrosselt, Indizes + Diagnose-Seite a864478
Intern
Zentrales Schema-Migrations-System — kein Runtime-DDL mehr in Controllern 6170480
Intern
Performance (Stufe 2b): Salon-Display-DDL hinter Schema-Guards — MDL-Stau beheben 24ee30d
14.07.2026
Intern
WaWi Bulk-Buchen: FK-Fehler 1452 beheben — Session-IDs typgerecht vergeben 59cb611
Intern
WaWi Bulk-Buchen: Fehler 1467 endgueltig beheben — auch wawi_stock heilen, nie ALTER in Transaktion acdc452
Intern
Push-Benachrichtigung beim Tagesabschluss je Standort 57cded5
Intern
Performance (Stufe 2a+): Cron-Lock in gemeinsamen Helper + auch Instyler-Kontakt-Sync absichern 7ff4f50
Intern
Performance (Stufe 2a): Überlappungs-Lock für den Instyler-Sync-Cron 5b831f9
Intern
Performance (Stufe 1): Metadaten-Lock-Stau durch selbstheilende DDL beheben 5cf7c72
Intern
Time_clock_event-Abfragen sargable machen + fehlenden Index ergänzen bd99baf
13.07.2026
Intern
Stichprobe/100%-Scan konfigurierbar + Foto-Beleg, Zweitfreigabe, Wer/Wann-Protokoll 886488f
Intern
AUTO_INCREMENT-Vergiftung (Fehler 1467) in wawi_stock_history beheben 7d27e32
Intern
WaWi Bulk-Buchen: 500-Fehler behoben + Grundeinstellungen immer sichtbar 06d578c
Intern
Kiosk 1.23.0 veröffentlichen: package.json bump + Zip + latest.json 87adc8b
Intern
FTP-Upload gegen "max-retries exceeded" absichern (Retry-Schleife) eb038e4
Intern
Kiosk-Release automatisiert: npm run release schreibt direkt nach dieoffensive.com/kiosk/ e0fd215
Intern
Salon-Display: Live-Arbeitszeit je Mitarbeiter + Pausen-Ampel (ArbZG §4) 9e2bc4d
11.07.2026
Intern
Termin-Anlegen gesperrt, wenn die Termin-Quelle nicht "eigene Termine" ist eb0d1a2
Intern
Termin-Quelle wählbar (eigene / instyler-API / Kalender-Abfrage) 182d950
Intern
Umsatz-Absturz behoben + Mitarbeiter-Zuordnung wirkt rückwirkend 0f7c3c6
Intern
Mobiles Menü: Vollbild-Ansicht im Messenger-Stil mit Suche (Issue #43) 3c42068
Intern
Dokumente-Hub: Dokumente + Briefe in einer View, Briefpapier-Verwaltung (Issue #44) 1cbd5a7
Intern
Protokoll im Modal, Erfassen-Sperre bei instyler-Quelle; Deploy: restore-mtime repariert 5ae53d8
Intern
Umsatz-Quellen: manuelle Einträge haben Vorrang + Hinweis in der Umsatz-View 19d04a5
Intern
Aktuelle Kassenbestände, Tagesbuchhaltung mit Konten, wählbare Umsatz-Quelle 828caa9
Intern
FTP-Verbindungsversuche verlängert (max-retries 8, Backoff bis 60s) 153813a
Intern
Vendor/ nur noch bei echten Abhängigkeits-Änderungen hochladen 93c4d39
Intern
Namen in Standort-/Mitarbeiter-Zuordnung wieder sichtbar 77672af
Intern
41 neue Artikel mit UI-Screenshots, Kapitel-Registrierung, kuratierter Changelog 604eafc
Neu
Finanzen instyler-Anbindung: Einrichtung repariert sich jetzt selbst

Die neuen instyler-Funktionen legen ihre Datenbank-Struktur beim ersten Aufruf automatisch an und melden Probleme mit verständlichen Fehlermeldungen statt einer leeren Fehlerseite.

00c5627
Neu
Finanzen instyler-Kasse angebunden: Kassenabschlüsse kommen automatisch per E-Mail ins System

PersonalCockpit liest die täglichen Kassenabschluss-PDFs und das monatliche Kassenbuch von instyler automatisch aus dem Postfach. Der Bereich Finanzen bündelt jetzt Übersicht, Tagesabschluss, Leistungsübersicht, Kassenkontrolle und Buchhaltung in einer Ansicht mit Tabs — inklusive Einzelbelegen, Zählbrett, Lücken-Warnung und DATEV-Abgleich. Unter Einstellungen → Datenquellen werden Quelle, Mail-Ordner, Zuordnungen und die Mitarbeiter-Kalender (ICS) verwaltet.

e5874c7
Neu
Allgemein Vier Fehler behoben: interne Notizen bleiben intern, Monatssperre greift jetzt überall

Als intern markierte Beratungsfelder werden nicht mehr in Kunden-E-Mails mitgesendet. Die Monatssperre für Arbeitszeiten wird jetzt auch vom Server erzwungen. Außerdem: Das Balkendiagramm im Papierlosen Büro ist wieder sichtbar und zwei Textfehler sind korrigiert.

6516d78
Neu
Handbuch Handbuch rundum erneuert: Screenshots aus der echten App und Klartext-Changelog

75 Handbuch-Artikel wurden gegen die echte App geprüft und überarbeitet, 68 Bildschirmfotos ergänzt. Neu: Sortierung nach Änderungsdatum, die Suche direkt im Menü und diese Was-ist-neu-Seite in Alltagssprache.

f44377f
Neu
Handbuch Handbuch: Suche in der Seitenleiste, Sortierung nach Aktualität und übersichtlicheres "Was ist neu"

Die Online-Anleitung wird gerade rundum erneuert: Die Suche sitzt jetzt direkt in der Seitenleiste, Artikel lassen sich wahlweise nach Kapiteln oder nach "Zuletzt geändert" sortieren, und der "Was ist neu"-Bereich gruppiert Neuerungen nach Monaten. Erste Artikel wie Dashboard, Arbeitszeitkonto und Urlaub/Krankmeldung wurden bereits mit frischen Bildschirmfotos überarbeitet.

c60a4c3
10.07.2026
Neu
Firmen-Dashboard Firmen-Dashboard: Spalten selbst wählen, Provisionsdetails per Klick — und der E-Mail-Export kommt wieder mit Anhang an

Im Firmen-Dashboard können Sie jetzt selbst festlegen, welche Spalten angezeigt werden, und leere Spalten automatisch ausblenden lassen. Die Werte "Prov. (Monat)" und "Konto-Saldo" sind klickbar und zeigen die dahinterliegenden Buchungen, offene Provisionssalden lassen sich direkt beim Export dokumentiert auszahlen. Außerdem behoben: "Per E-Mail senden" kam bisher ohne Anhang an, und das Salon-Display stürzte beim Herunterfahren am Gerät nicht mehr sauber ab — beides funktioniert jetzt zuverlässig.

1cee2ad
Neu
Arbeitszeit Arbeitszeit: Pausen werden korrekt angezeigt und zu kurze Pausen rot markiert

Die Arbeitszeit-Tabelle zeigt jetzt exakt dieselben Pausen- und Stundenwerte wie der Tagesverlauf, und bei noch laufenden Arbeitstagen steht "läuft" statt unsinniger Zahlen. Neu: Wird die gesetzlich vorgeschriebene Mindestpause nicht eingehalten (ab 6 Stunden 30 Minuten, ab 9 Stunden 45 Minuten), wird der Tag rot markiert — die Software zieht bewusst nichts automatisch ab, sondern macht den Verstoß sichtbar, damit Sie ihn prüfen und korrigieren können. Der Handbuch-Artikel zu Pausenzeiten wurde passend dazu komplett neu geschrieben.

6291dc3
Neu
Provisionskonto Provisionskonto: Neuer Knopf "Provision prüfen" findet fehlende Buchungen und erklärt die Ursache

Wenn eine erwartete Provisionsbuchung fehlt, zeigt die neue Prüfung in Klartext, woran es liegt — etwa weil kein Provisionsmodell hinterlegt ist, kein Umsatz vorlag oder die Basisschwelle nicht erreicht wurde. Bei einer Abweichung lässt sich der Monat mit einem Klick neu berechnen; manuelle Korrekturen und Auszahlungen bleiben dabei unangetastet.

de63060
Neu
Provisionskonto Provisionskonto: Jede Buchung zeigt jetzt den kompletten Rechenweg — und Korrektur/Auszahlen funktionieren

Bei jeder automatischen Provisionsbuchung sehen Sie im Detailfenster nun die vollständige, nachrechenbare Aufstellung (Umsatz, Schwelle, Prozentsatz, Produkt- und Fixprovision). Eine neue Spalte "Verbucht von" zeigt, wer eine Buchung angelegt hat, und die Knöpfe "Korrektur buchen" und "Auszahlen" sind jetzt voll funktionsfähig — inklusive Pflicht-Begründung und Bestätigung. Das Firmen-Dashboard zeigt dabei garantiert dieselben Provisionszahlen wie das Provisionskonto.

e86676d
Neu
Kalkulation Kalkulation: Dienstleistungen aufräumen, ehrlicher Soll-Minutenpreis und Wareneinsatz pro Dienstleistung

Dienstleistungen lassen sich jetzt gezielt aus der Kalkulation ausblenden (jederzeit wieder aufnehmbar) oder endgültig löschen — mit Anlagedatum, um Dubletten zu erkennen. Der Soll-Minutenpreis wird überall gleich und nachvollziehbar berechnet, versteckte Demo-Rechenwerte sind entfernt. Neu ist außerdem die Pflege des Wareneinsatzes pro Dienstleistung über Kabinettprodukte mit Gebindepreis und Verbrauchsmengen — ein Klick auf die Materialkosten zeigt jederzeit die Zusammensetzung.

1e6fd3e
Neu
Salon-Display Salon-Display: Countdown vor dem Umschalten, Fenster immer im Vordergrund und Herunterfahren aus der Ferne

Bevor das Gerät automatisch zum Salon-Display wechselt oder für ein Update neu startet, läuft jetzt ein gut sichtbarer 10-Sekunden-Countdown — jede Eingabe bricht ihn ab. Anmelde- und Druckfenster öffnen sich zuverlässig im Vordergrund statt hinter der Anzeige. Neu: Herunterfahren und Neustart lassen sich aus der Zentrale fernsteuern, und am Gerät selbst brauchen die Strom-Aktionen keine Master-PIN mehr.

0c2245f
Behoben
Salon-Display Salon-Display: Leere weiße Ansichten beim Wechseln zwischen den Tabs behoben

Beim Umschalten zwischen den Bereichen konnte kurzzeitig nur eine weiße Fläche erscheinen. Jetzt wird immer nur der aktive Bereich angezeigt und die Darstellung sofort aufgefrischt.

6827251
Intern
Allgemein Interne Verbesserung: Veröffentlichungs-Vorgang gegen Verbindungsabbrüche stabilisiert 1e122fb
Neu
Salon-Display Salon-Display: Anrufliste ohne Anmeldung sichtbar — PIN nur noch bei Aktionen nötig

Der Telefon-Bereich am Salon-Gerät ist jetzt jederzeit ohne Anmeldung einsehbar. Erst wenn jemand aktiv wird — Notiz schreiben, Anruf starten, Status ändern — fragt das Gerät nach der PIN, und nach 5 Minuten ohne Bedienung ist es automatisch wieder geschützt. Zusätzlich wurde das Problem behoben, dass beim ersten Start weiße, leere Ansichten erschienen.

218f591
Behoben
Salon-Display Salon-Display: Kein automatisches Anmelden mehr — Eingabefelder werden nur noch vorbefüllt

Das Gerät riss beim Tippen nicht mehr den Cursor aus Eingabefeldern, weil der alte automatische Anmelde-Mechanismus abgeschafft wurde: Die Zugangsdaten stehen vorbereitet im Formular, angemeldet wird per Klick durch die Mitarbeiterin selbst — Fehlerschleifen beim Anmelden gehören damit der Vergangenheit an. Außerdem gehen halb getippte Aufgaben am Display nicht mehr verloren, wenn die Anzeige sich zwischendurch auffrischt.

1fcf8ba
Neu
Hilfe-Assistent Hilfe-Chat: Eingabezeile bleibt auf dem Handy über der Tastatur sichtbar

Der Chat verhält sich jetzt wie eine Messenger-App: Öffnet sich die Bildschirmtastatur, wird das Chatfenster nicht mehr zusammengedrückt — die Eingabezeile fährt sauber über die Tastatur und der Verlauf springt automatisch ans Ende.

1b48720
Behoben
Hilfe-Assistent Hilfe-Chat: Chatfenster liegt jetzt zuverlässig über allen anderen Elementen

In seltenen Fällen wurde das Chatfenster in der App noch von der Menüleiste verdeckt. Das ist behoben — der Chat erscheint jetzt garantiert ganz oben.

8cd9b90
Behoben
Hilfe-Assistent Hilfe-Chat: Knopf und Fenster werden auf dem Handy nicht mehr vom Menü verdeckt

Der Hilfe-Knopf lag auf Mobilgeräten hinter der unteren Menüleiste und war teils nicht antippbar, das offene Chatfenster wurde unten überlagert. Beides sitzt jetzt über der Leiste und ist vollständig bedienbar.

4faf86b
09.07.2026
Neu
Hilfe-Assistent Hilfe-Chat überall in der App — auf dem Handy im echten Vollbild

Der Hilfe-Assistent ist jetzt von jeder Seite der App aus erreichbar, nicht nur in der Online-Anleitung. Auf dem Handy öffnet er sich als echtes Vollbild ohne störendes Mitscrollen der Seite dahinter. Für die Betreuung werden alle Fragen zentral ausgewertet: Eine neue Übersicht zeigt, was am häufigsten gefragt wird und wo Antworten fehlen — so wird das Handbuch gezielt besser.

67b0b92
Neu
Handbuch Handbuch: KI-Assistent beantwortet Bedienungsfragen, Suche jetzt auch mobil, neuer Artikel zum Aktivitätsprotokoll

Auf jeder Seite der Online-Anleitung sitzt jetzt ein Chat-Knopf: Der KI-Assistent beantwortet Bedienungsfragen ausschließlich anhand des Handbuchs und verlinkt die passenden Artikel — ganz ohne Zugriff auf Ihre Daten. Die Suche funktioniert nun auch auf dem Handy über ein Such-Symbol im Kopfbereich. Neu dazugekommen ist ein ausführlicher Artikel zum Aktivitätsprotokoll unter Einstellungen.

4bc06f0
Doku
Handbuch Handbuch: 37 neue Artikel — jetzt sind alle Bereiche der App dokumentiert

Die Online-Anleitung deckt nun sämtliche Funktionen ab: von Briefen, Stempeln per QR-Code und Salon-Display über Sachbezüge, Telefonverlauf und Papierloses Büro bis zu Kassenabschluss, Lohndaten und der mobilen Bedienung. Insgesamt umfasst das Handbuch damit 119 Artikel mit durchsuchbarem Inhalt.

9b47369
Neu
Hilfe Hilfe-Panel in der App zeigt jetzt die neue Online-Anleitung

Das seitliche Hilfemenü in der App lädt Artikel und den "Was ist neu"-Bereich jetzt direkt aus der neuen Bedienungsanleitung auf doku.dieoffensive.com statt aus der alten Hilfeseite. Zu jeder Ansicht werden automatisch die passenden Handbuch-Kapitel angezeigt, inklusive Suche und ähnlichen Themen.

ec6e8ec
Intern
Handbuch Interne Vorbereitung: Datengrundlage für die Anbindung des Hilfe-Panels an die neue Anleitung a9c2df1
Behoben
Handbuch Handbuch: Online-Anleitung jetzt unter doku.dieoffensive.com erreichbar

Die Bedienungsanleitung hat ihre endgültige Adresse bekommen: doku.dieoffensive.com. Vorher zeigte die Adresse fälschlich auf die Anmeldeseite der App — jetzt landet man direkt im Handbuch.

1f42cde
Neu
Briefe Neuer Bereich "Briefe": Vorlagen, fälschungssichere Versiegelung und digitale Unterschrift

Mit dem neuen Menüpunkt "Briefe" erstellen Sie Schreiben an Mitarbeiterinnen im offiziellen Briefformat — mit Vorlagen und Platzhaltern, die Name, Firma und Datum automatisch einsetzen. Fertige Briefe werden versiegelt (nachträglich unveränderbar), der Mitarbeiter-Akte zugeordnet und können digital unterschrieben werden; jeder Schritt wird lückenlos protokolliert. Mitarbeiterinnen sehen ihre Dokumente in der eigenen Akte und unterschreiben direkt am Bildschirm.

781d118
Intern
Handbuch Interne Anpassung am Veröffentlichungs-Ablauf des Handbuchs 3f7befe
Neu
Handbuch Handbuch: "Was ist neu" aktualisiert sich jetzt automatisch, einheitliche Symbole statt Emojis

Der "Was ist neu"-Bereich der Online-Anleitung wird bei jeder Neuerung automatisch aktualisiert — Sie sehen also immer den aktuellen Stand. Außerdem verwendet das Handbuch jetzt durchgehend einheitliche, professionelle Symbole statt bunter Emojis.

ba8ad49
Neu
Handbuch Neue Online-Bedienungsanleitung: das komplette Handbuch als eigene Website

Das Handbuch gibt es jetzt als eigene, durchsuchbare Website mit Startseite, Kapitelübersicht, über 80 Artikeln und einem "Was ist neu"-Bereich. Die Anleitung wird automatisch aktuell gehalten, sobald sich in der Software etwas ändert.

c187cf6
Design
Salon-Display Salon-Display: Aufgaben-Texte kompakter, damit mehr auf den Bildschirm passt

Die Aufgabenkarten auf dem Wand-Display verwenden jetzt eine deutlich kleinere Schrift — es passt mehr Inhalt auf den Bildschirm, ohne dass die zuvor verbesserte Lesbarkeit und der Kontrast verloren gehen.

42a765a
Neu
Allgemein Das DO-Monogramm ist wieder das Standard-App-Symbol

Statt der veralteten blauen Wolke zeigt die App als Standard wieder das DO-Monogramm in den Markenfarben — als Browser-Symbol, auf dem Handy-Startbildschirm und in der Seitenleiste. Sobald Sie in den Einstellungen ein eigenes Firmenlogo hinterlegen, wird wie gewohnt automatisch dieses verwendet.

577dd77
Intern
Allgemein Interne Korrektur an der Server-Konfiguration 14f4db7
Neu
Salon-Display Salon-Display: Bessere Lesbarkeit aus der Ferne und volle Aufgabentitel auf einen Blick

Texte auf dem Wand-Display sind rund 20 Prozent größer und kontrastreicher, die Karten haben einen deutlicheren Rahmen. Lange Aufgabentitel werden beim Darüberfahren mit der Maus komplett angezeigt, und der abgeschnittene Kartenrand am Rand der Aufgabenübersicht ist behoben.

b7919fb
Behoben
Allgemein Stempel-Display und Kurzlinks für Buchung und Kundenportal funktionieren wieder

Nach einer Aktualisierung zeigte das Stempel-Display plötzlich die Anmeldeseite statt des QR-Codes, und die kurzen Buchungs- und Kundenportal-Links liefen ins Leere. Die Ursache ist behoben — beides funktioniert wieder dauerhaft und kann durch künftige Aktualisierungen nicht mehr verloren gehen.

0622cd3
Neu
Zahlungsübersicht Zahlungsübersicht: Übersichtliche Listen-Ansicht auf dem Handy und Umplanen ohne Ziehen

Auf dem Handy zeigt die Zahlungsübersicht jetzt eine klare Terminliste statt der großen Planungs-Matrix: Überfällige Rechnungen stehen rot markiert oben, gefolgt von heutigen und kommenden Fälligkeiten. Zahlungen lassen sich jetzt außerdem direkt im Rechnungsfenster auf ein neues Datum umplanen — das umständliche Ziehen mit der Maus ist nicht mehr nötig.

0a73b0c
Neu
Allgemein Mobile Bedienung: Vollbild-Menü, schwebende Menüleiste und einheitliche Telefon-Ansicht

Das "Mehr"-Menü auf dem Handy ist jetzt ein sauberes Vollbild ohne weiße Streifen und doppeltes Scrollen, und der Seiteninhalt gleitet elegant hinter der schwebenden Menüleiste durch. Umschalt-Leisten mit vielen Optionen (etwa im Telefon-Bereich) werden nicht mehr abgeschnitten, und der Telefonverlauf zeigt mobil übersichtliche Anruf-Karten statt einer gequetschten Tabelle.

8be0d63
Neu
Papierloses Büro Papierloses Büro: Endlich gut auf dem Handy bedienbar, Schlagwörter aufgeräumt

Auf dem Handy waren die Knöpfe in Dokument-Fenstern von der Menüleiste verdeckt — jetzt liegt alles frei bedienbar darüber, und die Filterleiste ist für kleine Bildschirme neu aufgebaut. Beim Bearbeiten eines Dokuments werden zunächst nur die fünf meistgenutzten Schlagwörter angezeigt; alle weiteren klappen bei Bedarf auf. Die Schlagwörter erscheinen überall im neuen runden Kapsel-Design mit ihrem Farbpunkt.

8ef9b5c
Neu
Allgemein Qualitätsrunde: Einheitliches Erscheinungsbild und aufklappbare Filter auf dem Handy

Alle wichtigen Ansichten — Urlaub, Arbeitszeit, Dokumente, Umsatz, Aufgaben, Provisionskonto, Zahlungsübersicht, Krankmeldungen und Kunden — haben auf dem Handy jetzt einen zusammenklappbaren Filter-Knopf, sodass der eigentliche Inhalt sofort sichtbar ist. Dazu wurden dutzende optische Unstimmigkeiten behoben: einheitliche Rundungen, keine überlaufenden Knopfleisten mehr und eine E-Mail-Ansicht, die auf kleinen Bildschirmen nicht mehr über den Rand läuft.

6fa2cc4
Neu
Website Website: Neues, einheitliches Schriftbild

Die Marketing-Website dieoffensive.com verwendet jetzt durchgehend dieselbe moderne Schrift wie die App — für einen einheitlichen Auftritt und schnellere Ladezeiten, da die Schrift direkt mitgeliefert wird.

7578cb0
Neu
Allgemein Frischeres Design: Sanft abgerundete Ecken in der gesamten App

Karten, Eingabefelder, Fenster und Knöpfe haben jetzt durchgehend sanft abgerundete Ecken statt der bisherigen kantigen Optik — die App wirkt dadurch moderner und freundlicher, ohne dass sich an der Bedienung etwas ändert.

13f5498
Neu
Papierloses Büro Neuer Bereich "Papierloses Büro": Belege und Dokumente direkt in der App verwalten

Im Firmen-Dashboard gibt es den neuen Menüpunkt "Papierloses Büro": Alle in Ihrem Dokumentenarchiv abgelegten Belege lassen sich durchsuchen, filtern, mit Schlagwörtern und Absendern versehen und als Vorschau ansehen — ohne die App zu verlassen. Neue Absender werden automatisch als Lieferanten in der Warenwirtschaft angelegt und auf Wunsch per KI mit Adressdaten aus der Rechnung vervollständigt. Dokumente können Sie außerdem gezielt für einzelne Mitarbeiterinnen bereitstellen, die dann eine Benachrichtigung erhalten.

ae53c11
Neu
Allgemein Seitenleiste modernisiert: Luftigeres Menü und dezenterer Plus-Knopf

Die Navigation wirkt jetzt aufgeräumter: Statt umrandeter Kästen gibt es luftige Abschnitte mit abgerundeten Menüpunkten, der aktive Punkt ist als weinrote Fläche klar erkennbar. Der Erfassen-Knopf in der unteren Leiste ist etwas kleiner und fügt sich dezenter ein.

d6ce6f2
Neu
Allgemein Neue Navigation auf Handy und Desktop — und Stempeln startet direkt mit der Kamera

Auf dem Handy schwebt die untere Menüleiste jetzt elegant über dem Inhalt, mit klar hervorgehobenem aktivem Punkt und rundem Erfassen-Knopf. Am Desktop bekam die Seitenleiste größere Klickflächen und flüssigere Übergänge. Beim Stempeln ist die Kamera nun direkt groß im Bild — QR-Code scannen geht damit ohne Umweg.

983d50e
Behoben
Allgemein Plus-Knopf im Handy-Menü öffnete sich auf manchen Geräten nicht — behoben

Auf einigen Handys schloss sich das Erfassen-Menü sofort wieder, kaum dass man den Plus-Knopf angetippt hatte. Das ist behoben — der Knopf reagiert jetzt auf allen Geräten zuverlässig.

282a386
Design
Allgemein App-Schrift vereinheitlicht: Überschriften und Texte aus einem Guss

Die App verwendet jetzt durchgehend eine einzige moderne Schriftart — auch Überschriften und die Wortmarke. Das sorgt für ein ruhigeres, einheitlicheres Schriftbild.

811c7f8
Intern
Website Interne Einrichtung: Automatisierte Veröffentlichung der Marketing-Website 9960b06
Behoben
Allgemein Keine kaputten Bild-Symbole mehr bei fehlenden Logos und Profilbildern

Wenn ein Firmenlogo oder Profilbild nicht geladen werden kann, zeigt die App jetzt automatisch einen sauberen Ersatz — die Initialen der Person beziehungsweise das Standard-Logo — statt eines zerbrochenen Bild-Symbols.

f25d07b
Intern
Allgemein Interne Beschleunigung des Veröffentlichungs-Vorgangs dcef8ce
Intern
Allgemein Interne Korrektur am Veröffentlichungs-Vorgang dd4af1d
Intern
Allgemein Interne Einrichtung: Automatisierte Veröffentlichung mit Test- vor Live-Umgebung 6a8149c
Behoben
Sachbezüge Sachbezüge repariert: Verwechslung mit den Kassen-Gutscheinen behoben

Die Sachbezugs-Gutscheine für Mitarbeiterinnen und die Geschenkgutscheine der Kasse kamen sich intern in die Quere — dadurch landeten neue Sachbezüge fälschlich als Kassen-Gutscheine, Beträge zeigten 0,00 Euro und Löschen schlug fehl. Die Ursache ist beseitigt, und zur klaren Unterscheidung heißt der Menüpunkt jetzt "Sachbezüge".

a8811d5
Behoben
Sachbezüge Sachbezüge: Fehlermeldung "Gutschein nicht gefunden" und 0,00-Euro-Anzeige behoben

Reste eines früheren Testlaufs blockierten die Sachbezugs-Verwaltung: Gutscheine ließen sich nicht zuteilen oder löschen und zeigten falsche Beträge. Die Software räumt die alten Daten jetzt automatisch beiseite (nichts geht verloren) und legt die Verwaltung sauber neu an.

942b434
Intern
Sachbezüge Interne Erweiterung der Fehlersuche bei den Sachbezügen 7337415
Intern
Sachbezüge Interne Erweiterung der Fehlersuche bei den Sachbezügen b37c9e0
Intern
Sachbezüge Interne Versions-Kennzeichnung für die Fehlersuche bei den Sachbezügen d019398
Behoben
Gutscheine Gutschein-Verwaltung repariert sich jetzt selbst

Wenn beim Anlegen oder Zuteilen von Gutscheinen etwas hakt, erkennt das System die Ursache jetzt automatisch und behebt sie im Hintergrund. Zusätzlich zeigt eine eingebaute Prüfung sofort an, woran es liegt, falls doch mal etwas nicht klappt.

2b9c90c
Behoben
Gutscheine Gutscheine lassen sich jetzt immer zuweisen und umhängen

Ein bereits zugeteilter Gutschein kann nun jederzeit einer anderen Mitarbeiterin zugewiesen werden. Beim Anlegen prüft das System außerdem den eingegebenen Betrag und weist sofort auf Fehler hin.

b02f201
Behoben
Gutscheine Gutschein-Verwaltung: Weiße Seite behoben

Der Verwaltungs-Tab für Gutscheine blieb in seltenen Fällen komplett leer. Das ist behoben — die Ansicht lädt jetzt zuverlässig, auch wenn im Hintergrund mal etwas Unerwartetes passiert.

c2d1da8
Neu
Gutscheine Neu: Sachbezüge und Wunschgutscheine digital verwalten

Unter dem neuen Menüpunkt 'Gutscheine' sieht jede Mitarbeiterin ihre eigenen Gutscheine als Karten und kann den Scan-Code direkt an der Kasse vorzeigen — als Strichcode (den jeder Kassenscanner liest) oder als QR-Code. Die Verwaltung legt Gutscheine mit Anbieter, Betrag und Sachbezugs-Monat an und teilt sie zu; die Mitarbeiterin bekommt automatisch eine Benachrichtigung aufs Handy.

723e4b0
08.07.2026
Umbau
Salon-Kiosk Warenwirtschaft am Kiosk: PIN-Eingabe jetzt auch per Tastatur

Das PIN-Feld im Warenwirtschafts-Tab sieht jetzt genauso aus wie am Stempel-Display und lässt sich zusätzlich mit einer angeschlossenen Tastatur bedienen — Ziffern tippen, mit Enter bestätigen, mit Escape leeren.

cc1f9fa
Behoben
Salon-Kiosk Kiosk: Warenwirtschafts-Tab bleibt schlank + frischeres Design fürs Display

Der Warenwirtschafts-Tab am Kiosk zeigt jetzt zuverlässig nur die abgespeckte Kiosk-Ansicht und springt nicht mehr versehentlich in die volle Verwaltungsoberfläche. Das Salon-Display hat außerdem ein moderneres Aussehen bekommen.

f2e6781
Neu
Salon-Kiosk Kiosk: Neues Power-Menü und moderneres Design

Die Kiosk-App lässt sich jetzt direkt am Gerät beenden, neu starten oder herunterfahren — ohne Umweg über das Betriebssystem. Gleichzeitig wurde die Oberfläche optisch rundum aufgefrischt.

b0d2275
Neu
Salon-Kiosk Kiosk: Verkauf direkt erfassen und vom Lager abbuchen

Nach dem Scannen eines Produkts kann am Kiosk jetzt direkt ein Verkauf erfasst werden — auf Wunsch mit Kundenzuordnung, das Lager wird automatisch abgebucht. Verkaufspreis und Strichcode-Nummer lassen sich zudem mit einem Fingertipp kopieren.

d42ed36
Neu
Salon-Kiosk Kiosk: Warenwirtschaft jetzt als eigener Tab in der Salon-App

Die komplette Warenwirtschaft ist jetzt direkt in der Salon-Kiosk-App erreichbar — geschützt per PIN. So können Bestände und Produkte direkt am Empfang gepflegt werden, ohne extra Rechner.

550f985
Neu
Salon-Kiosk Kiosk: Verlauf der gescannten Produkte mit Detail-Ansicht

Die zuletzt gescannten Produkte erscheinen jetzt in einer aufklappbaren Liste, und ein Tipp darauf öffnet alle Details zum Produkt. So lassen sich mehrere Artikel nacheinander scannen, ohne den Überblick zu verlieren.

197c15d
Neu
Salon-Kiosk Kiosk: Produkt scannen — Infos erscheinen sofort als Kachel

Wird am Kiosk ein Produkt mit dem Strichcode-Scanner gescannt, erscheint sofort eine Kachel mit den Produktinfos aus der Warenwirtschaft — Preis, Bestand und mehr auf einen Blick.

faad8ab
Behoben
Telefon Telefon: Zweiter Anruf verschwindet nicht mehr aus der Übersicht

Wenn zwei Anrufe kurz hintereinander eingingen, verschwand der zweite manchmal aus der Anzeige. Das ist behoben — alle Anrufe bleiben jetzt zuverlässig sichtbar.

143a4a0
Neu
Telefon Telefon: Genauere Anzeige, wie ein Gespräch beendet wurde

In der Anrufliste ist jetzt genauer zu sehen, wer aufgelegt hat bzw. warum ein Gespräch endete. Außerdem lässt sich die Verbindungsadresse für die Telefonanlage jetzt bequem mit einem Klick kopieren.

1c7277c
Behoben
Telefon Telefon: Anrufe von älteren Anschlüssen gingen verloren — behoben

Bei Konten, die schon länger mit der Telefonanlage verbunden waren, kamen eingehende Anruf-Meldungen teils nicht mehr an. Das System ordnet diese Meldungen jetzt automatisch richtig zu, sodass keine Anrufe mehr verloren gehen und die Verbindung zur Telefonanlage stabil bleibt.

f860cff
Behoben
Telefon Telefon: Anruf-Meldungen kommen jetzt zuverlässig an + besserer Schutz von Rufnummern

Ein technischer Umweg konnte dazu führen, dass Anruf-Meldungen der Telefonanlage leer ankamen — das ist behoben. Zusätzlich sind interne Protokolldateien mit Kunden-Rufnummern jetzt zuverlässig vor fremdem Zugriff geschützt.

e2ddb8f
Neu
Salon-Kiosk Kiosk: Anrufe erscheinen jetzt live und ohne Doppel-Einträge

Eingehende Anrufe erscheinen am Kiosk jetzt in Echtzeit, ohne dass die Seite neu geladen werden muss. Doppelt angezeigte Anrufe gehören der Vergangenheit an.

862324f
Neu
Salon-Kiosk Kiosk: Telefon-Leiste zum Ausklappen mit Anruf-Kacheln

Am Kiosk gibt es jetzt eine seitlich einblendbare Telefon-Übersicht: Jeder Anruf erscheint als übersichtliche Kachel, und die ganze Telefon-Zentrale erstrahlt im Marken-Design.

e5192c3
Neu
Salon-Display Info-Wand: Inhalte pro Salon verwalten

Die Info-Wand auf dem Salon-Display lässt sich jetzt für jeden Standort einzeln befüllen — zusätzlich zu zentralen Inhalten, die überall erscheinen. So sieht jeder Salon genau die Aushänge, die ihn betreffen.

d2dd420
Behoben
Salon-Display Salon-Display: Anwesenheits-Anzeige jetzt immer korrekt

Der Anwesenheits-Status (da / nicht da) wird jetzt aus allen Stempelungen des Tages berechnet. Vorher konnte jemand fälschlich als abwesend angezeigt werden, obwohl er längst wieder eingestempelt war.

85a48dd
Neu
Salon-Display Salon-Display: Anwesenheit zeigt nur das eigene Team

Die Anwesenheits-Chips auf dem Display zeigen jetzt nur noch Personen, die an genau diesem Display gestempelt haben. Bei mehreren Standorten sieht jeder Salon also nur sein eigenes Team.

9ff4599
Neu
Salon-Kiosk Kiosk: Display-Adresse bequem aus einer Liste wählen

Beim Einrichten des Salon-Displays am Kiosk muss die Adresse nicht mehr abgetippt werden — alle bekannten Displays stehen jetzt in einer Auswahlliste bereit.

ba9b3a5
Neu
Salon-Kiosk Geräte-Verwaltung: Übersichtliche Karten und eigene Tab-Reihenfolge

Die Geräte-Karten in der Verwaltung lassen sich jetzt auf- und zuklappen, das schafft Übersicht bei vielen Geräten. Außerdem kann die Reihenfolge der Tabs am Kiosk jetzt frei festgelegt werden.

79d667e
Neu
Salon-Kiosk Kiosk aus der Ferne einstellen: PIN, Sperren, Kassen-Zugang und Tabs

Die Kiosk-Geräte im Salon lassen sich jetzt komplett aus der Ferne konfigurieren — PIN ändern, Gerät sperren, Kassen-Anmeldung hinterlegen und die sichtbaren Tabs festlegen. Eine neue Berechtigung regelt, wer das darf.

4073239
Neu
Salon-Kiosk Neu: Salon-Kiosk-App für den Empfangs-Rechner + zentrale Geräte-Verwaltung

Es gibt jetzt eine eigene Kiosk-App für den Rechner oder das Tablet am Empfang. Alle Kiosk-Geräte werden zentral in der Verwaltung angelegt und betreut — so behalten Sie den Überblick über alle Salons.

3d1946c
Neu
Arbeitszeit Arbeitszeit: Tagesverlauf mit Nachweisen, Fotos und Stempel-Korrektur

Im Tagesverlauf eines Eintrags sind jetzt zu jedem Stempel die Nachweise sichtbar — etwa das Stempel-Foto und die Herkunft der Stempelung. Falsche Stempel lassen sich direkt dort korrigieren.

24de567
Neu
Aufgaben Aufgaben: Verspätet nachgeholte Erledigungen sind jetzt erkennbar

Wenn eine Salon-Aufgabe erst nach ihrer Fälligkeit abgehakt wurde, ist das jetzt in der Auswertung sichtbar. So erkennen Sie auf einen Blick, was pünktlich und was verspätet erledigt wurde.

37c846e
Neu
Arbeitszeit Arbeitszeit: Tagesverlauf direkt im Bearbeiten-Fenster

Beim Bearbeiten eines Arbeitszeit-Eintrags gibt es jetzt einen eigenen Tab mit dem kompletten Tagesverlauf. Alle Stempelungen des Tages sind so beim Korrigieren direkt im Blick.

0180648
Neu
Salon-Display Salon-Display: Überfällige Aufgaben als eigene Kategorie + kompaktere Karten

Überfällige Aufgaben haben auf dem Display jetzt einen eigenen, deutlich sichtbaren Bereich. Die Aufgaben-Karten sind kompakter angeordnet, sodass mehr auf einen Blick zu sehen ist.

05d1f14
Behoben
Arbeitszeit Stempeluhr: Nachtschichten laufen über Mitternacht weiter

Wer über Mitternacht hinaus arbeitet, wird um 0 Uhr nicht mehr automatisch ausgestempelt. Die Schicht läuft einfach weiter, bis wirklich ausgestempelt wird.

599ac0c
Neu
Arbeitszeit Stempeln: Eigener Tagesverlauf in der persönlichen Ansicht

In der persönlichen Stempeln-Ansicht sehen Mitarbeiterinnen jetzt ihren kompletten Tagesverlauf — alle Kommen- und Gehen-Zeiten des Tages auf einen Blick.

27b5097
Neu
Salon-Display Salon-Display: PIN-Stempeln flexibel einstellbar — Ja, nur Kommen oder Nein

Für das Stempeln per PIN am Display gibt es jetzt drei Einstellungen: komplett erlaubt, nur fürs Einstempeln erlaubt oder ganz aus. So bestimmen Sie selbst, wie streng es an Ihrem Display zugeht.

a416a3c
07.07.2026
Neu
Salon-Display Stempel-Schutz: Foto-Pflicht und Handy-Beleg gegen Stempeln für Kollegen

Damit niemand für Kolleginnen mitstempeln kann, lässt sich jetzt eine Foto-Pflicht beim Stempeln aktivieren. Zusätzlich bekommt die Mitarbeiterin bei jeder Stempelung eine Benachrichtigung aufs Handy — so fällt Missbrauch sofort auf. Das PIN-Stempeln lässt sich per Schalter ein- und ausschalten.

b772831
Neu
Salon-Display Salon-Display: Klick auf einen Namen zeigt alle Stempel des Tages

Ein Tipp auf einen Namen am Display öffnet jetzt die Tages-Details: alle Stempelungen mit Uhrzeit und der Angabe, wie gestempelt wurde (z. B. per PIN oder per Handy).

c4a9864
Neu
Salon-Display Salon-Display: Anwesenheits-Anzeige aktualisiert sich live

Die Anwesenheits-Chips auf dem Display aktualisieren sich jetzt alle paar Sekunden von selbst — und direkt nach jeder Stempelung sofort. Wer da ist, sieht man also ohne Verzögerung.

941ed83
Umbau
Salon-Display Display-Links sind zurück in den Einstellungen

Die Adressen der Salon-Displays (allgemein und je Standort) finden Sie jetzt wieder unter Einstellungen im Bereich Zeiterfassung. Die Salon-Display-Ansicht selbst konzentriert sich auf Aufgaben, Auswertung und Info-Wand.

b8638bb
Neu
Salon-Display Salon-Display: Stempeln per PIN direkt am Bildschirm + Anwesenheits-Übersicht

Mitarbeiterinnen können jetzt direkt am Display mit ihrer persönlichen PIN ein- und ausstempeln, ganz ohne Handy. Über dem QR-Code zeigen Anwesenheits-Chips, wer gerade im Salon ist.

9c035a4
Neu
Salon-Display Salon-Display: Eigener Menüpunkt mit Tabs und eigener Berechtigung

Das Salon-Display hat jetzt einen eigenen Bereich im Seitenmenü mit übersichtlichen Tabs. Über eine neue Berechtigung legen Sie fest, wer die Displays verwalten darf.

e9d3883
Neu
Salon-Display Aufgaben und Display-Link jetzt pro Standort

Salon-Aufgaben lassen sich jetzt je Standort anlegen, und jeder Standort bekommt seinen eigenen Display-Link. Bei mehreren Salons sieht so jedes Team nur seine eigenen Aufgaben.

058b93a
Neu
Salon-Display Aufgaben direkt am Display anlegen und verwalten

Salon-Aufgaben können jetzt direkt am Display verwaltet werden — mit übersichtlichen Tabs, einer Bildschirm-Tastatur zum Anlegen neuer Aufgaben und zusätzlichen Wiederholungs-Intervallen.

6c40e4f
Neu
Salon-Display Aufgaben abhaken jetzt per persönlicher PIN

Beim Abhaken einer Salon-Aufgabe wird jetzt die persönliche PIN eingegeben statt einen Namen aus der Liste zu wählen. So ist eindeutig nachvollziehbar, wer die Aufgabe wirklich erledigt hat.

d369e22
Behoben
Salon-Display Salon-Display aufgeräumt: Weniger Anzeigen, mehr Übersicht

Die Bereiche 'Im Dienst', 'Termine heute' und die Stunden-Statistik wurden vom Display entfernt. Das Display konzentriert sich jetzt auf das Wesentliche und wirkt deutlich ruhiger.

56b6f68
Behoben
Salon-Display Info-Wand steht jetzt still + verständliche Fehlermeldungen bei Aufgaben

Die Info-Wand wechselt nicht mehr automatisch zwischen Ansichten, sondern zeigt ihre Inhalte dauerhaft an — nichts huscht mehr vorbei. Beim Anlegen von Aufgaben erscheinen Fehler jetzt in verständlichem Klartext.

0e747cd
Neu
Aufgaben Neu: Abhakbare Salon-Aufgaben mit Wiederholung

Wiederkehrende Salon-Aufgaben wie WC-Kontrolle, Müll rausbringen oder Maschinen reinigen lassen sich jetzt mit einem Intervall anlegen und am Display abhaken. So gerät im Salon-Alltag nichts mehr in Vergessenheit.

6596245
Neu
Salon-Display Salon-Display: Geteilter Bildschirm mit Info-Wand

Das Display zeigt jetzt zwei Bereiche gleichzeitig: den Stempel-Bereich und eine Info-Wand mit Willkommensgruß, Aushängen, Team-Übersicht und Terminen. So wird der Bildschirm im Salon zum echten Infopunkt.

45e4103
Behoben
Allgemein Handy-Ansicht: Plus-Menü öffnet sich jetzt als Fenster + neuer Punkt 'Stempeln'

Das Plus-Menü auf dem Handy öffnet sich jetzt als kleines Fenster über der aktuellen Ansicht, statt die Seite zu wechseln — man verliert also nicht mehr die Stelle, an der man gerade war. Neu dabei ist der Punkt 'Stempeln'.

614f54e
Neu
Arbeitszeit Stempeluhr: Nachweise zu jeder Stempelung — inklusive Salon-Netz-Prüfung

Zu jeder Stempelung wird jetzt festgehalten, von wo gestempelt wurde: Das System prüft, ob das Gerät im Salon-Netzwerk war, und kann auf Wunsch auch den Standort erfassen. So sind Arbeitszeiten im Zweifel sauber belegbar.

8fcd18d
Neu
Arbeitszeit Stempeln per QR-Code direkt in der App

In der App gibt es jetzt den Menüpunkt 'Stempeln' direkt neben der Arbeitszeit: Damit wird der QR-Code am Display einfach mit der Handy-Kamera in der App gescannt — ohne eine separate Kamera-App zu öffnen.

c2a336e
Behoben
Arbeitszeit Stempeluhr: QR-Scan öffnet jetzt zuverlässig die App

Nach dem Scannen des QR-Codes landete man in bestimmten Fällen auf der Internetseite statt in der App. Das ist korrigiert — der Scan führt jetzt immer direkt zum Stempeln.

7049e0f
Neu
Salon-Display Eigene Internet-Adresse für das Stempel-Display

Das QR-Display ist jetzt unter einer eigenen, kurzen Adresse erreichbar (stempel. plus Ihre Domain). Damit lässt sich das Display am Salon-Bildschirm noch einfacher einrichten und aufrufen.

b67ed50
Neu
Arbeitszeit Neu: QR-Stempeluhr — Kommen und Gehen per Scan

Mitarbeiterinnen stempeln jetzt ein und aus, indem sie einen QR-Code am Salon-Bildschirm mit dem Handy scannen. In der Verwaltung legen Sie fest, in welchem Modus die Stempeluhr arbeitet.

d4561f0
Neu
rechte OVERRIDE_TIME_LOCKS (rueckwirkend aendern) + SEND_NOTIFICATIONS f35fd23
Behoben
push Aktivierungs-Banner auf Mobil mittig — lag hinter der Bottom-Navigation d9c80fb
Behoben
sw Weisse Seite behoben — Fetch-Handler abgesichert (sw.js v2.10.1) 1fbf757
Neu
push Mitteilungs-Center (Senden an Mitarbeiter) + Auto-Aktivierung 88a4b82
Neu
push Web-Push-Benachrichtigungen + Settings-Bereich 'Benachrichtigungen' 1412366
05.07.2026
Neu
feiertage Eigener Menuepunkt 'Schulferien & Feiertage' + Erklaerung de8a0de
Neu
feiertage Verwaltung zusammengelegt + automatischer 5-Jahres-Import 1c95b2c
Behoben
revenue Umsatz-Anlage repariert — vergifteten id-Zaehler selbstheilen 9fc9dff
04.07.2026
Behoben
margenrechner Donut-Segmente korrekt + Preis-Herleitung Schritt fuer Schritt f0dee7b
Behoben
homepage Preiskarten — Freitext anzeigen, uebersichtlicher, Text-Blur behoben 12f9229
Neu
plans Pakete archivieren statt loeschen + Frontend-Freitext pro Paket 21939a7
Intern
Kalender-Datenreparatur erledigt — Live-Check ergab 0 verwaiste service_ids a1952b6
Behoben
audit Mittel-Liste abgeräumt — Kiosk-401-Schleife, get_dashboard, Option-Cast 65c1486
Intern
TODO — K4/K5/K6 erledigt, Rest-Mittelliste aktualisiert 0e8717f
Neu
audit K4 Token-Ablauf + K5 Demo-Generator portiert + K6 Alt-Tool entfernt ec71963
Intern
README neu (Setup/Deploy/Struktur) + TODO-Vermerk Mail-Refactor-Archiv 7950b9a
Neu
ki-assistent Lead-Sync + Schema-Fix aus Worktree kind-germain gerettet 50dfdf9
Neu
twenty Twenty-CRM-Integration aus Worktree nice-mestorf gerettet 165d3ee
Intern
Gesamt-Audit-Restpunkte in TODO (K4 Token-TTL, K5/K6 Entscheidung, Mittel-Liste) 5077b3d
Behoben
Projekt-Audit Top-Befunde — Dienstleistungs-Anlage, Logout, Placetel-Cron cf712f0

Juni 2026

19.06.2026
Neu
kasse Testmodus-Banner + Demo-Daten-Reset beim Live-Schalten d43310f
Neu
fiskaly C-01 Umgebung (TEST/LIVE) erfassen + sichtbar machen 6e69b02
Intern
fiskaly Offizielle SIGN-DE-v2 OpenAPI-Spec als Referenz ablegen f8a3489
Behoben
kasse Geraete loeschen wirkt jetzt (Soft-Delete statt Re-Sync-Wiederkehr) e99114f
Neu
fiskaly TSE-Zertifikat in DSFinV-K-Export einbetten (kein PKI-Lookup noetig) 82828b6
18.06.2026
Behoben
kasse Finalize-500 'no active transaction' + Duplicate-BON behoben 276ec87
Neu
kasse Offizieller KassenSichV-TSE-QR auf dem Beleg efcd5da
Neu
fiskaly K-08 — TSE-Zertifikat/Public-Key/Signatur-Algorithmus persistieren b9fc019
Behoben
fiskaly Spec-Audit gegen SIGN-DE-v2 — sichere/hochwertige Fixes f51e77e
Intern
Lokale DATEV-/Kassenbuch-Referenzexporte ignorieren aef4186
Neu
fiskaly Eigene API-Keys pro Mandant statt Plattform-Fallback cc3b7ed
Behoben
kasse Referenz editierbar + Beleg-Start ausfallresistent + getSetting tolerant a27f71e
Intern
kasse DATEV-Export Schritt A+B als erledigt markiert a04c88a
Neu
kasse Zahlarten Überweisung + Online (Schritt A für DATEV-Export) af8d00a
Neu
kasse Kassenbuch-/DATEV-Export-Engine + Trigger im Export Center 66f1d9f
Neu
kasse Editierbare Buchungskonten/Sachkonten pro Mandant (DATEV-Basis) ea7d0eb
Intern
kasse Verifizierter DATEV-/Kassenbuch-Export-Plan + Reihenfolge 9a20e06
Behoben
kasse NaN in Kassenbuch/Positionen + Statistik robust laden a3bffcd
Behoben
kasse Storno offener Belege im Kassenbuch dokumentieren 3a34dac
Behoben
kasse Ladefehler der Abschluss-Tabs sichtbar machen f795e0e
Behoben
kasse 'Standort nicht zugeordnet' - Sperrbildschirm-Filiale uebernehmen 66516d3
Behoben
kiosk Nur heutige Termine in "Kundentermine heute" 765f98c
Behoben
kiosk Filiale persistent (String-Vergleich) + Performance 75720f1
Behoben
kasse Abschluss fuer Mitarbeiter ohne Standortwahl + Kasse anzeigen c2848b0
Behoben
kasse FK-500 beim Kassenabschluss durch ungueltige Filiale beheben 964101e
Intern
Lokale DSFinV-K-/TSE-Referenzexporte ignorieren 9cf150d
Behoben
kasse Create_cash_closing atomar + echte Fehlermeldung statt rohem 500 a873e6b
Neu
kasse Standard-Drucktyp im Beleg-Dialog verdrahten + TODO Zahlungsarten/SumUp 748885e
Behoben
kasse Vorgabe-Kassenbestand beim Abschluss + lesbare Stornogruende a04d775
Behoben
kasse Kassenabschluss bei offenen Bons sperren + 'Alle Standorte' entfernen 4b41bfd
Behoben
kasse Saubere Filiale-Trennung + idempotentes Parken 78318a8
Behoben
kasse Fortlaufende Bonnummer (atomar) + saubere Storno-Funktion bcf6f0e
17.06.2026
Neu
kasse Kasse nach Mitarbeiter-Tagesstandort + Storno mit Grund/Auszahlungsart fc59125
Behoben
kasse Buchung in gewaehlter Filiale + Storno geparkter Belege robust 5c2a00d
Intern
kasse Wettbewerber-Name aus DsfinvkExporter-Doku-Kommentar entfernt 64481cf
Behoben
kasse Cashregister.csv ohne Fremdmarke - KASSE_BRAND=Mandant, MODELL/SW=DIE OFFENSIVE c0b3203
Neu
kasse DSFinV-K- & TSE-Export auch im Kasse-Export-Tab (standort-scoped) 8e94014
Behoben
kasse Standort-Wähler auch im Kiosk-Modus für Admins (war verschwunden) f879740
Behoben
kasse Testbuchungen nur im LIVE-Modus aus Abschluss/Export ausschliessen 8e1a421
Intern
DSFinV-K-/TSE-Export pro Mandant dokumentiert + Validierungs-TODOs eed0771
Neu
kasse Mandantengetrennter DSFinV-K-Export (eigene DB) + TSE-Protokoll-Export 1d7fd36
Behoben
kasse Account-weiten DSFinV-K-Export auf Super-Admin beschraenken (Leak-Schutz) 341d705
Neu
kasse Kassen-Einstellungen auf 6 gruppierte Tabs mit Akkordeon reduziert bdf2b81
Neu
kasse Kassen-Einstellungen aufgeraeumt - TSE/Geraete/Finanzamt als Akkordeon, de-branded cdeeef2
Behoben
kasse TSE-Ablaufdatum (tse_expiry) leer - Zertifikat als base64-DER ohne PEM-Rahmen 8f5ab30
Intern
§146a technisch vollstaendig; neue Migration in Go-Live-Checkliste 7799571
Neu
kasse §146a-Meldedaten - TSE-Serial/BSI-ID/Aktivierung erfassen + ELSTER-Uebersicht 2446b41
Intern
TODO-Liste fuer offene Punkte ausserhalb POS (Drift-Skripte, ELSTER, Go-Live-Checkliste) bf0f89a
Behoben
kasse Neue Mandanten erben nicht mehr die Fiskaly-TSS/Org/Keys aus der Vorlage 9774116
Behoben
kasse Geraeteliste vervielfacht sich bei jedem Aufruf (Duplikat-Sync) 8e35a4f
Behoben
kasse H6 TSE-Ablauf robust aus Zertifikat parsen + beim Geraete-Sync befuellen 794ad20
Intern
kasse Rest-Punkte (H3-H6/M1-M5/Finanzamt/Drift) als erledigt fortschreiben d618cd1
Neu
kasse Rest-Punkte Gruppe 2 - H4/H6/M2 + Finanzamt-Felder + logo.php-Drift b6b8237
Neu
kasse Rest-Punkte Gruppe 1 - H1/H3/H5/M1/M3/M4 fd6b610
Intern
kasse Phase 0c (K2/K3/K4) als erledigt fortschreiben ac99d35
Neu
kasse Phase 0c (K4) - Kassenabschluss-Luecken-Monitor (Erinnerung) 14f7796
Neu
kasse Phase 0c (K2/K3) - Ausfallbetrieb + Nachsignier-Queue + Test-Trennung 8f15f38
Neu
kasse Globale Fiskaly-Master-Zugangsdaten zentral pflegen b1d1e0c
Intern
kasse Phase 0b als erledigt fortschreiben (Rest: PUK/PIN at-rest) 105cf2b
Neu
kasse Phase 0b Sicherheit - SSL an, Secrets aus Logs, PUK/PIN maskiert 1a89749
Intern
kasse Audit-Status fortschreiben (K1 erledigt, Phase 0b/0c offen) 335ae13
Behoben
fiskaly K1-Restbug - Geraete-Registrierung schrieb noch in fiskaly_clients 36d4ff4
Neu
kasse Go-Live nur durch Super-Admin (zentral), serverseitig erzwungen 4586658
Behoben
protokoll Kassenmodus-Wechsel sauber loggen, Settings-Dump entrauschen d6be979
Neu
kasse Fiskaly-Verwaltung (Super-Admin) + Kassenmodus demo/live mit Protokoll 3f08ce9
Neu
scoring Debug-Dump per Browser (Token-geschuetzt); kein Sync via Browser 732b887
Neu
scoring --debug-Modus dumpt rohe Instyler-JSON (contacts+receipts) fuer 1 Kunden 5f71346
Behoben
kunden Ampel-Spalte erscheint auch bei bereits gespeicherter Spaltenauswahl 793f859
Behoben
kunden Liste stuerzt nicht mehr bei ungueltigem Datum ab (Invalid time value) 64e6648
Neu
kunden Ampel-Bewertungssystem (gruen/gelb/rot) auf person+customer_profile 7a57522
Neu
kunden Inline-Bearbeitung der Tabelle (Doppelklick auf Zelle) 7d12a48
Behoben
instyler Kontakte-Sync mit 429-Rate-Limit-Schutz (Retry/Backoff) 8baac49
Behoben
instyler Kontakte-Sync portiert + Telefon-Konvention vereinheitlicht 65837b4
Behoben
instyler Booking-Sync auf neues Party-Schema portiert (Termine syncen wieder) f336dc8
Behoben
kunden Tabelle buendig zur Geburtstage-Box (kein 24px-Versatz) d2690ba
Neu
kunden Kundenanzahl als Badge neben der View-Ueberschrift 13d83d7
Neu
dashboard Umsatz-Card Team-Modus fuer Admins (kumuliert) + dauerhafte Speicherung 22ca930
16.06.2026
Design
kalkulator SV-Legende nutzt vollen Status-Ton (bg-gold/bg-sage) wie die Popover-Punkte 2bfb6ff
Neu
kalkulator SV-Saetze als Tabelle mit eigener Minijob-Ebene + Sollumsatz-Reihenfolge 9c6740c
Neu
kalkulator Chef-Typen fest seeden + "Gewuenschter Unternehmerlohn" entfernen 8a16b0f
Neu
partner Mandanten direkt im Partner-Portal anlegen (gemeinsames Modal) d981144
Behoben
kalkulator MA-Tabelle - Umlage-Spalte fixe Breite, Name absorbiert Slack 2d60612
Neu
kalkulator Spielmodus-Schalter - Akten-Sync pro Mandant abschaltbar 586c435
Neu
kalkulator Bidirektionaler Sync der Vertragsfelder Akte <-> Kalkulator 97c4285
Neu
kalkulator Uebernehmen als (+)-Icon in Aktion-Spalte + Sammel-Uebernahme aller MA 99d619d
Neu
kalkulator Lohndaten-Tab in der Mitarbeiterakte (Phase 2) 2bbf995
Neu
kalkulator Uebernehmen-Button + Verknuepfen/Neu-anlegen-Dialog b293239
Neu
kalkulator Backend-Basis fuer Mitarbeiter-Uebernahme + Lohndaten-Verknuepfung 2434829
Neu
address Interne Maske gruppiert + Adressfelder erst nach Suche; Places-Vorschlaege sauber gestylt fddcf3e
Neu
address EIN Adress-Suchfeld -> verteilt auf Strasse/Hausnr./PLZ/Ort (oeffentlich + intern) f128caa
Neu
address Google Places Autocomplete fuer Adressfelder (oeffentlich + intern, systemweit) 622e81b
Neu
booking E-Mail-Validierung (Syntax + Tippfehler-Vorschlag + MX-Check, rote Markierung) 66e4574
Behoben
public-booking Floating-Label-Overlap (Select/Datum) + konsistente Checkboxen 80cb72a
Neu
public-booking Kontaktdaten folgen der Feld-Konfiguration (Kontext public), synchron zur internen Anlage 24ed6aa
Neu
booking-fields Konfigurierbare Kundenfelder (Tabelle Kunden/Intern) + internes Modal dynamisch 8c3f1fa
Neu
termin-modal Neukunde mit Vorname/Nachname + Abbrechen-Dialog 'Kunden trotzdem anlegen?' c934286
Behoben
corrections Korrekturantrag anlegen (500) — keine uuid-id in AUTO_INCREMENT-Spalte 0bfd959
Neu
dashboard Umsatz-Box vor Team-Ereignisse + ungelesene-Dokumente-Button entfernt c02369f
Neu
strip Historische Mini-Ringe mit echten Werten (Tooltip) + Overflow fuer Variation 8d7ecf6
Neu
rings Snake-Kopf abgerundet + Verlauf hell (Tailwind-100) -> dunkel (Tailwind-900) e21d809
Neu
rings Snake-Overflow auf Canvas (konischer Opazitaetsverlauf, weicher Farb-Switch) 93191bf
Neu
rings Zweite Runde als hellerer Farbton (klar erkennbar, ohne Schatten-Ueberlappung) d008639
Neu
rings Overflow als durchgehender Pfad (nahtlose zweite Runde) + Verlauf rechtsbuendig 0632ffe
Neu
rings Animation erst im Viewport + langsamer, Overflow ueberarbeitet (nahtloser Start, abgerundete Spitze) 46f1aa2
Neu
dashboard Ring-Erklaerung in das Hochrechnung-Akkordeon verschoben 3e3e6a1
Behoben
dashboard MiniMonthRing duenner -> 3 Ringe sauber getrennt b667949
Neu
dashboard Hochrechnung als Akkordeon + 12-Monats-Verlaufsstrip (klickbar) a53895c
Neu
dashboard Ring-Overflow entsteht aus Basisring, Badges 0px, Hochrechnung auf Ist-Produktivitaet, Ring-Erklaerung 0368a07
Behoben
dashboard Umsatz-Karte mobilfest + Umsatz nur einmal (Apple-Layout) 50248c7
Neu
dashboard Apple-3-Ring-Redesign der Umsatz-Karte (3 Quellen, Overflow, farbige Legende) 242ee3a
Behoben
logs Mitarbeiter sehen eigenes Protokoll wieder (Mixed-ID === im Permission-Gate) ff4c13b
Neu
dashboard Produktivitaets-Ampelring + Produktivitaet in Umsatz-Karte integriert f76dd2c
Neu
dashboard Provisions-Ringe auch in der Uebersicht (Umsatz-Box) 670d484
Behoben
commission Mitarbeiter sehen ihre Provision + Apple-Watch-Ringe auf der Umsatz-Card bee4b74
Behoben
employee-views Mitarbeiter sehen eigene Urlaube/AU/Atteste/Korrekturen wieder (Mixed-ID ===) 73fe76e
Neu
crm Mitarbeiter-Impersonation in Mandanten-Akte (echte Identitaet, Support-gesperrt) cc5b998
Behoben
ui Panel leitet onClick/title weiter -> Mail-Karten im Protokoll wirklich klickbar 5938048
Behoben
tenant-crm Mail-Lese-Modal per Portal (war hinter z-index der DetailView verdeckt) ece270d
Neu
support Sofortiger Impersonation-Kill-Switch + Mail-Body direkt mit tenant-detail 65150ea
Behoben
support-access Status zeigt effektiven Zugriff + Warnbanner beim Mandanten d661ea3
Neu
tenant-crm Protokoll-Logging (Anleger/View/Login), Mails lesen, Impersonation-Banner afa2377
15.06.2026
Behoben
tenants 'Zugangsdaten erneut senden' nutzt dieselbe Mail-Vorlage wie die Neuanlage bbcbc74
Behoben
pwa Install-Anleitung im Standard-Modal (z-50) statt z-[9999]-Overlay 113849d
Neu
pwa App-Installation als Navigations-Eintrag statt fliegendem Banner 79a3782
Behoben
stripe Trial-Customer beim Allgemein-Speichern anlegen + 'Jetzt aktivieren' statt 'Aktuell' 2220deb
Behoben
stripe Checkout customer_update auto (Trial->Bezahlt ohne Adresse moeglich) 30965b1
Behoben
tenants Trial-Banner weg, Firmenname-Setting verknuepft, Stripe-Upgrade-Fehler sichtbar 6f7d106
Neu
tenants Einheitliche Provisionierung (Stripe + manuelle Anlage) e413a7d
Intern
urlaub Gesamtabruf der Urlaubsantraege erfordert VIEW_ALL_VACATION 187c4b6
Behoben
urlaub Tooltip-Portal, Mitarbeiter-Sicht, feiertags-korrekte Tage 66a9501
Behoben
buchung Mitarbeiter-Foto Fallback auf person.avatar_url 7678be9
Behoben
dienstleistungen Cross-Selling und Paket-Dienste sauber uebernehmen b115a78
Neu
buchung Oeffentliche Buchung als Step-Wizard 5458b44
Behoben
booking Vergangene/zu kurzfristige Slots nicht mehr buchbar (Vorlaufzeit) 1068033
Intern
homepage Hartkodiertes Default-Partner-Passwort entfernt + db_cockpit gitignored fe4c70f
Intern
homepage Neue Blog-Artikel + Admin-/Preise-Updates (dieoffensive.com) 0fd9105
14.06.2026
Neu
mail Postfach -> Mitarbeiter-Zuweisung (zugewiesene sehen nur ihren Eingang) 2be4668
Behoben
inbox Aussenabstand zurueck (Panel statt randlos) + Leseansicht 100% Breite 7a7999d
Behoben
inbox Mail-Client-Layout — Posteingang full-bleed, nur Spalten scrollen intern df9df5c
Behoben
mail Firmenname-Anhang nur vom eigenen Tenant (kein Tenant-0-Leak) f653182
Neu
mail Versand-Konto deaktivierbar (Versand aus) + Diagnose zeigt echten Absender-Namen bc8a6f9
Behoben
mail Default-Sender-Postfach auch fuer tenant_id=0 (Superadmin) nutzen 97f1a8b
Neu
mail Versand-Diagnose im Konten-View — zeigt live, welcher Absender gezogen wird + ob persoenliche Settings ankommen 77d9e6a
Neu
mail Rollen-Beschraenkung im Postfach-Formular als Auswahlliste (api.getRoles) statt Freitext 113ac52
Behoben
nav Doppelten Superadmin-Menuepunkt 'Globale Einstellungen' aus Seitenleiste entfernt (Zugang bleibt ueber Profil -> System-Einstellungen -> E-Mail) 7e5b4c2
Intern
mail E-Mail-Settings vereint — Server-Tab (SMTP+IMAP im BentoGrid) + Auto-Verbindungstest e212af3
Behoben
mail IMAP-Cron auf kanonisches Schema — neuer Posteingang aktualisiert sich automatisch 3b43a54
Neu
mail Superadmin-Menuepunkt "Globale E-Mail" + Fix persoenliche Signatur 9b283c6
Intern
mail System-Mail-Caller vereinheitlichen auf SYSTEM_MAIL_TENANT_ID df60249
Behoben
mail Kritischer $db/$pdo-Bug in getSmtpSettings — Postfach-Versand war tot 384ab16
Behoben
checkout System-/Onboarding-Mails ueber System-Mail-Tenant (31) senden db51bd2
Neu
checkout Willkommensmail mit Passwort-festlegen-Link statt Initial-Passwort 4d5ed1e
Intern
checkout Name aus nativem Stripe-Feld statt doppelter Vorname/Nachname-Felder ea7ff3f
Neu
checkout Stripe-Checkout erfasst Vorname/Nachname (Pflicht), Firma (optional), Telefon (Pflicht) 39be141
13.06.2026
Behoben
mail Spam zuverlaessig zurueckholen + Verfassen-Ansicht voll breit + Drag&Drop 2456ed8
Neu
mail EIN Konten-View — x-beliebig Postfaecher, eines verschickt, Rest ueberwacht Eingang 58c75ba
12.06.2026
Neu
inbox Verfassen inline (kein Modal) mit Verteiler+Vorlagen+Entwurf, persoenliche Einstellungen + Postfaecher b1a03aa
Behoben
inbox Groesseres Layout + eigenstaendiges Verfassen mit Vorlagen + Spam rueckgaengig 3183e15
Neu
inbox Neuer Unified-Communication-View (Etappe 3) 06871cb
Neu
inbox Konsolidierte Inbox-v2-API (Etappe 2 Kern) 3f64b4e
Neu
inbox DB-Fundament fuer neuen mehrkanaligen Posteingang (additiv, idempotent) 6b177a1
Behoben
kunden Mysterioese '0' entfernt + Beziehungs-Felder auf eine Hoehe 0b277e2
Behoben
import Telefon-Dublette nur bei Namensuebereinstimmung (verhindert Fehl-Merges) 1e79fe7
Neu
import Detailliertes Zeilen-Protokoll je Import (was neu/aktualisiert/Fehler) + XLSX-Download 573c334
Neu
settings Bento-Layout fuer mehrere Bereiche + Kiosk als Kasse-Tab 0921c3c
Neu
settings Allgemein als Bento-Layout (Karten nebeneinander, brechen responsiv um) ed0c1ed
Neu
nav Haupt-Navigation kompakter (geringere Hoehe, kleinere Icons, enger, Chevron entfernt) dc4e66b
Neu
settings Kompaktes, kategorisiertes Bereichsmenue 2b990c7
Behoben
settings Aktiver Tab bleibt nach Aktualisieren (F5) erhalten 859bfad
Behoben
perf Long-Poll gibt Session-Sperre sofort frei (System war unbenutzbar langsam) 45d6998
Behoben
protokoll PIN_SET nur noch bei tatsaechlicher PIN-Aenderung e27f26f
Neu
support Freigabe-Anfrage erscheint sofort (Long-Poll statt 60s-Intervall) f0c9dda
Neu
support Impersonierungs-Sperre je Tenant + 24h-Freigabe-Anfrage + Akteur im Protokoll bba2a6c
Behoben
support Support-Identitaet (legacy_id support_login) aus allen Mitarbeiterlisten ausgeblendet a3d730f
Behoben
protokoll Impersonation-Eintraege zeigen den echten Akteur statt SYSTEM 2d73871
Behoben
mitarbeiter Datensatz laedt nach F5 zuverlaessig — String/Number-Vergleich der userId 5cc7eb8
Behoben
mitarbeiter F5-Datenverlust an der Wurzel + Telefon/Mobil in Stammdaten dee5a15
Behoben
mitarbeiter Ausspeer-Schutz — letzter aktiver Admin kann sich nicht degradieren/deaktivieren/loeschen 4efcf3c
Neu
mitarbeiter Liste mit EINEM Aktions-Button + Name klickbar; Speichern bleibt im Tab dd94278
Neu
profil EIN Editor fuer Mitarbeiter UND eigenes Profil — alte ProfileView abgeloest f033646
Neu
reparatur Geleerte Mitarbeiter-Stammdaten aus Alt-DB wiederherstellen cdd511e
Behoben
mitarbeiter Datenverlust-Sperren im PUT + FK-sichere Standort-Pflege + Support-Impersonation c4fd56a
Behoben
namen Befunde der Gegenpruefung behoben (9 bestaetigte Probleme) 7273c3a
Neu
namen Systemweit Vor-/Nachname als einzige Quelle — display_name nur noch abgeleitet cfaf491
Neu
mail Schoene zentrierte E-Mail-Signatur + Footer-Injection respektiert eigenes HTML-Layout 7264aea
Neu
mail Schoene HTML-System-Vorlagen (Ink/Wine-Marke) + Seeder mit Revert 3c39fee
Behoben
mail SMTP-Login atomar aus EINER Quelle (kein feldweises Tenant-Mischen) 85f2d9a
Behoben
mail Leerer Absender erzeugt keinen kaputten From-Header mehr ae283c9
Behoben
mail SMTP-Login (host/user/pass) nur als vollstaendiges Set aus DB — keine toxische Mischung mehr b799d85
Behoben
mail Bei fehlgeschlagener SMTP-Pass-Entschluesselung config.php-Fallback statt Muell 290a423
Behoben
mail Test_connection/test_smtp nutzen globales requirePermission statt lokalem hasPerm (500-Fix) d160811
Neu
mail Verbindungstest mit Ampel fuer SMTP und IMAP 650b87b
Behoben
mail Globale SMTP-Settings landen bei Tenant 0 + fehlende test_smtp.php ergaenzt 26aea1c
Behoben
mail Set_smtp_pass kann Port 465 (SSL) und setzt auch den Benutzernamen fa6c2a5
Neu
mail Helfer-Skript zum sicheren Setzen des System-SMTP-Passworts (Tenant 0) 335c6c6
Behoben
mail Leere SMTP-Settings (Tenant 31) ueberschreiben nicht mehr die globalen Werte 86f78b4
Neu
tenants Firmenname inline im Tenant-Detail bearbeitbar c4b7ee6
Intern
Tenant-Backup-Datei des Demo-Seeders gitignoren 87f7e28
Neu
partner Demo-Seeder setzt Tenant-Abos (mit Backup/Restore); echte Kundin 947218 ausgenommen 84bab56
Neu
partner Demo-Seeder erweitert — ~20 Eintraege je Partner-Tabelle inkl. Leads + Payment-Links 12e6d26
Neu
partner Demo-Daten-Seeder fuer Partner-Konto (rkkl) 93cc631
Behoben
dokumente Upload-INSERT auf AUTO_INCREMENT (keine doc-uniqid in BIGINT-id) 3191347
Behoben
pwa Manifest.php auf Singular-Tabelle setting umgestellt 10ed532
Intern
migration Bereits gelaufene Schritte aus run_migration entfernt d21d82e
Neu
design Login, Erfassen-Modal und PWA-Banner auf Marken-Design b1909eb
Behoben
zeit Time_entry-INSERT auf AUTO_INCREMENT (Fehler 1467 / Zeitkonto) c0d0e16
Behoben
demo Firmenname/Logo zeigen im Demo-Modus echte Tenant-Daten 74f4d02
Behoben
standorte Instyler API-Key wieder speicherbar (Spalte fehlte im Schema) 30212ca
Behoben
migration Nachzieher fuer abgebrochenen migrate_data (revenue/wawi) 4ea6ccd
Behoben
migration Activity_logs als Standalone-Phase (server has gone away) 999a810
Behoben
logs Impersonation-Protokolle im neuen Schema korrekt schreiben 733df7e
Neu
migration Sequenz-Runner fuer den Cutover (run_migration) cd2231f
Neu
migration Termine + Protokolle vollstaendig migrieren 6741841
11.06.2026
Neu
buchung Termin.ist als reine Buchungs-Domain im neuen System 29f2672
Neu
cutover Wartungsseite (maintenance/) fuer die Domain-Umstellung 6e8734e
Behoben
buchung Standort-Aufloesung mit employee_location-Fallback (Online-Buchung) 5899b41
Neu
emails EIN Vorlagen-System fuer System- und Buchungs-Mails 5b82296
Behoben
emails Signatur-Doppelung behoben + Buchungs-Vorlagen im E-Mail-Tab 12dd438
Neu
settings Zentrale API-Schluessel-Seite (alle Secrets an einem Ort) 7c01c31
Neu
emails Vorlagen in Settings, Empfaenger-Gruppen, HTML-Editor mit Vorschau 1fb6d1e
Neu
emails Nachfass-Mails nach dem Termin (after_appointment) im Cron 8e7c319
Neu
emails Terminerinnerungs-Cron (before_appointment-Vorlagen) f03a3a4
Neu
emails Hinweis an der Magic-Link-Vorlage (Versand immer serverseitig) 75696b0
Behoben
emails Storno-Versand implementiert, kein Default-Fallback, Dialog-UX b5c4912
Behoben
kalender TDZ-Crash durch falsch platzierten wizardMonth-Effekt d9bc8ec
Behoben
emails Vorlagen-UI schrieb in tote Legacy-Tabelle + Kalender-Punkte eea4f6e
Behoben
kunden Loeschen/Speichern kundenspezifischer Zeiten ging nicht 9678513
Behoben
kunden Crash im Tab Dienstleistungszeiten (service_id ist jetzt Zahl) 4d79897
Behoben
kunden Abweichender Name nur am Termin, Neukunden-Namenssplit, Instyler-Crash cfb312e
Neu
kalender Deutlicher Leer-Hinweis in der Listenansicht e452882
Neu
termine Modal als bewegliches Fenster + Kategorie-Kaskade + Stylist Beliebig 77343a8
Neu
termine Termin-Tab mit Monatskalender links + Zeiten rechts, Kopf schwarz 1a5488d
Neu
termine Dienstleistungs-Tab als Zeilen-Layout mit Dropdowns (wie Referenz) f0fc1bb
Neu
termine Freie Tab-Navigation, abweichende Zeiten sichtbar, konfigurierbare Kundenfelder cd5998c
Behoben
termine Variantenzeit gewinnt ueber gelernte Kundendauer + Block-Skalierung 108f208
Behoben
kalender Termin-Modal unterstuetzt Varianten + korrekte Zeit/Preis-Berechnung 7ef9d9a
Behoben
kalender Neuer Termin startet ohne vorherigen Kunden 0852882
Neu
kalender Ansichtsumschalter als kompaktes Dropdown, Navigation als Pfeile 394aea6
Neu
kalender Aus-/Einblenden-Liste zeigt Standort-Roster + Tages-Badge 1dad6e0
Neu
kalender Mitarbeiterauswahl zeigt tatsaechlichen Tages-Standort als Badge e341e06
Behoben
api Server-detail in Fehlermeldung durchreichen 2350d93
Behoben
standorte Tote loc-IDs aus Migration bereinigen + Kalender-Guard d6a4af8
Behoben
standorte Mitarbeiterauswahl und Wochentag-Zuordnung fuer Multi-Standort 77efe41
Neu
kalender Feiertags-Spalten ausgegraut und gesperrt 48a7119
Behoben
kalender Termin landete in der Wochenansicht immer auf heute 9b1189b
Neu
feiertage Global fuer alle Mandanten + Cron-Import + Buchungssperre fd0ee55
Behoben
kalender Leerer Kalender beim ersten Laden - fehlende Memo-Dependencies e97aee9
Intern
Upload/ (generiertes Deploy-Paket) aus der Versionierung ausschliessen 685f4ce
Behoben
pwa Sw.js + Manifest vom Caching ausnehmen (Update-Fenster minimieren) 72f9637
Behoben
api Uuid-in-BIGINT-Inserts gehaertet (Giftzeilen-Risiko nach Cutover) d164fc2
Behoben
migration Holiday/school_holiday AUTO_INCREMENT-Zaehler repariert (Fehler 1467) 70dd4b3
Behoben
migration Globale Beratungsfelder, Stripe-Settings-Phase, Feiertags-UUIDs 17c8950
Behoben
migration Profile_fields nutzten tenant_id=0 als global - 49 Felder kamen nie an ab574f3
Behoben
migration Probelauf-Fehler behoben (Alt-Duplikate, Template-Abbruch, EmailView-Crash) 40ac117
Behoben
migration Phase 0 deterministisch - CASCADE feuert nicht bei FK_CHECKS=0 455d4aa
Neu
migration Cutover-Scope auf 6 Mandanten festgelegt (5 Pilot + Neukundin) 1498ce9
Neu
migration Vollumzug ALT->NEU vorbereitet (Cutover-Runbook, alle Tabellen) 5e88053
Neu
superadmin Partner-Detailansicht ueberarbeitet (Status, breiter, aufgeraeumt) 9ef49c9
Behoben
superadmin Partner-Detailansicht crasht an tenant.plan-Spalte 06cb513
Neu
settings Dedizierter 'Globale Einstellungen'-View fuer SUPER_ADMIN 5ab889d
Neu
db System-Mandant auf tenant id=0 anlegen 9e3de64
Neu
email Tenant 31 steuert globale serverseitige Mail-Einstellungen b05d267
Behoben
superadmin Partner speichern + Aenderungen am Mandanten protokollieren ab09293
10.06.2026
Intern
Arbeitsstand Marketing-Website und Admin-/Demo-Tooling (Checkpoint) 0af6e98
Neu
crm Vollstaendiges Protokoll-Akkordeon in der Mandanten-Detailansicht 62e9042
Neu
email Lueckenloses Mail-Protokoll + Mandanten-Timeline zeigt System-Mails 50d2858
Behoben
api Verbleibende Plural-Tabellennamen systematisch auf Singular korrigiert d9cfd7a
Behoben
crm Lead-Konvertierung kaperte den Super-Admin-Tenant ebe5f44
Behoben
crm Lead-Abschluss scheiterte am eigenen Lead-Datensatz (Duplikat-Check) 3a519b5
Behoben
crm Lead verschwand beim Ziehen in Demo/Angebot-Spalte (ENUM kannte Werte nicht) 1a1db1f
Behoben
superadmin Tenant.contact_person und tenant.plan aus Queries entfernt (neues Schema) b114e13
Behoben
superadmin Notizen-SQL repariert, Lead-Anlage mit tenant_id, tenant.partner_id ergaenzt 960987e
Neu
migration Partner-Daten aus alter DB uebertragen (sales_partners + partner_*) 6e7f7f6
Neu
superadmin Neuer View Super-Admins listet alle Plattform-Administratoren 5bc1f02
Behoben
superadmin Plural-Tabellennamen brachen Team-Notizen, Mandanten-View und CRM deabfb4
Behoben
dokumente Nav-Badge zaehlt ungelesene zugeordnete Dokumente, verschwindet beim Oeffnen 216d3e0
Behoben
nav Aufgaben-Badge zaehlt offene Krankmeldungen mit 2fef7f6
Behoben
api Geburtstags-/Jubilaeums-Einwilligung wurde gespeichert aber nie zurueckgelesen 24f9582
Behoben
wawi Bestellungen-Tab crasht bei numerischer Bestell-ID 1161e34
Intern
design Migrationsstatus aktualisiert (WaWi, Kasse, Auth, Kiosk, Landing fertig) 844f78f
Neu
frontend Kiosk-Modus (Layout, Setup, Sperrbildschirm) auf Marken-Design c725e46
Neu
frontend Login, Passwort-Reset, oeffentliche Beratung und Partner-Landing auf Marken-Design 6a2c865
Neu
frontend Kasse (POS), Kassenabschluss und Beleg-Historie auf Marken-Design 7dd4bf7
Neu
frontend Warenwirtschaft auf Marken-Design Die Offensive umgestellt aedfc6f
Behoben
kalender Zugeordneter Standort wird zuverlaessig vorselektiert e4dc55d
Behoben
frontend Kunden fehlten beim Termin per Zeitraum-Markierung + Krankenkassen-Action d3a039d
Behoben
api Termin-Anlage scheiterte mit striktem sql_mode (String-IDs in BIGINT-Spalten) 97e4a9b
Neu
kalender Kundensuche im Termin-Modal auf globale SearchSelect umgestellt 9a420a2
Behoben
frontend NavMenu-Hover-Crash (currentTarget im rAF-Callback null) bca5239
Behoben
api Session-Refresh findet Nutzer mit gespeicherter Legacy-ID wieder cf88534
Behoben
kalender Doppel-Termine durch Mehrfachklick auf Speichern verhindern 8a5f06d
Neu
kalender Standortauswahl ohne Alle-Standorte-Option, Start auf eigenem Standort af1cd06
Behoben
api Letzte Schema-Altlasten in email_contacts, partners, time_blockers 87a3439
Behoben
calendar Mitarbeiterspalten erschienen nicht bei Standort-Filter c8b96e0
Behoben
api Kunden, Dienstleistungen und Kalender laden wieder 6958878
Behoben
api Restliche Alt-Tabellennamen in customers.php und utils.php umgestellt 7b9dea1
Intern
design Navigations-Konzept + Token wine-light dokumentiert 4ab6834
Neu
mobile Bottom-Nav + Menue-Sheet auf Marken-Design daf9761
Intern
nav Neue Clusterung Cockpit / Termine / Team / Finanzen 2529e93
Neu
sidebar Wortmarke DIE OFFENSIVE + kantiger Seitengriff 61ac8ac
Behoben
api UTF-8 BOM aus 5 Controllern entfernt - zerstoerte HTTP-Header/JSON-Antworten 9e98fcf
Behoben
db Email_template-Migration - FK-Konflikt mit globalen Templates (tenant_id=0) behoben 5461bd4
Intern
design Migrationsstand - Kalender und Kunden fertig 87e26cd
Intern
customers Kunden-Detail (CRM-Akte) auf Marken-Design-System c29834f
Behoben
api Plural-Tabellennamen aus alter DB auf neue Singular-Namen umgestellt c3142e2
Intern
calendar Terminkalender (UI-Chrom) auf Marken-Token b0402c3
Intern
services Dienstleistungen auf Marken-Design-System 737cf9c
Intern
customers Kundenverwaltung auf Marken-Design-System fa78898
Intern
calendar Kalender-Uebersicht + E-Mail-Vorlagen auf Marke 87d6a35
Intern
design Migrationsstand - Einstellungs-Bereich + Kleinkram fertig 57cf59b
Intern
settings Paket/Abo-Verwaltung auf Marken-Design-System 47252bf
Intern
settings Digital-Signage-Einstellungen auf Marken-Design 6ea0e43
Intern
settings Shell, Allgemein, Konto + Kiosk auf Marken-Design b9c2b01
Intern
settings E-Mail- und Kalender-Einstellungen auf Marke 7937ab7
Intern
settings Rollen, Feiertage, WaWi + Dokument-Kategorien auf Marke c3c85a1
Intern
settings Kassen-Einstellungen auf Marken-Design-System 34dd411
Intern
settings Import-Einstellungen auf Marken-Design-System 85e8d89
Intern
components EmployeeMultiSelect + MobileEntryCard auf Marke 95ca1a5
Neu
db Nachmigration Phase 6 - Services, Settings, Beziehungen, E-Mail-Templates 1cebae2
Intern
design Migrationsstand nach Grossbatch aktualisiert (31 Views) 8295174
Intern
superadmin Mandanten-Verwaltung auf Marken-Design-System 92461bb
Intern
partner Partner-Portal auf Marken-Design-System 14cfe3a
Intern
tools Backwash-Rechner auf Marken-Design-System 2ca16f3
Intern
superadmin Mandanten-Detail auf Marken-Design-System 98fb70b
Intern
tools Salon-Offensive-Kalkulationscenter auf Marken-Token ca016d1
Intern
dashboard Persoenliche Uebersicht auf Marken-Design-System dae16bd
Intern
finance Zahlungsuebersicht auf Marken-Design-System 1e4b219
Intern
profile Stammdaten-View auf Marken-Design-System 6bf891e
Intern
dashboard Firmen-Dashboard auf Marken-Design-System 75cf27d
Intern
consultations Beratungs-Editor + Einstellungen auf Marke 2d691ff
Intern
tools Margenrechner auf Marken-Design-System 42a394a
Intern
finance Tagesabschluss auf Marken-Design-System 1e8f7a3
Intern
finance CSV-Import auf Marken-Design-System 0dd52ea
Intern
finance Leistungsbericht auf Marken-Design-System 89e9c4d
Intern
logs System-Protokoll auf Marken-Design-System 574308c
Behoben
api Finance-Endpoints auf neues Party-Pattern-Schema 9557fea
Intern
finance Finanz-Bericht auf Marken-Design-System 81cf758
Intern
design Migrationsstand aktualisiert (Kommunikations-Block fertig) 614a386
Intern
cleanup Ungenutzte PlacetelCallRow-Komponente entfernt 514cea2
Intern
email E-Mail-View auf Marken-Design-System d741156
Intern
calls Telefonverlauf-View auf Marken-Design-System 824cc48
Intern
consultations Beratung-View auf Marken-Design-System dae541e
Neu
db Nachmigration working_hours - fehlte in migrate_data.php 5a2e085
Behoben
docs-view Mitarbeiter-Zuweisung im Upload-Modal ueber zentrale Suche 4532015
Behoben
api Leere extra-Strings verdecken person-Spalten nicht mehr 7aa3d94
Behoben
ui Jahresuebersicht auf Marke, Dokumente-Modal breiter + Sichtbarkeit als Liste a224b27
Behoben
api HR-Spalten als Quelle der Wahrheit beim Lesen UND Schreiben d2564a5
Behoben
employees Abbrechen im Editor-Kopf auf outline-ink 46dc9ec
Behoben
ui Editor-Kopfbuttons vereinheitlicht, Zurueck-Pfeil dezenter, Arbeitszeitplan auf Marke b05f014
Behoben
api Migrierte HR-Stammdaten wieder im Mitarbeiter-Output 810a371
Behoben
ui Avatare app-weit konsistent ueber zentralen avatarSrc-Helper dd60c01
Behoben
ui InitialsBox robust gegen Nicht-String-Namen c407b67
Behoben
api Schema-Migration fuer Arbeitszeitkonto und Korrektur-Anfragen 309b2f0
Intern
design Badge-Regel ergaenzt - einheitliche Metrik, MiniTag-Abgrenzung 7910a99
Behoben
ui Einheitliche Badge-Metrik app-weit ce1d4c7
Behoben
ui SelectableTile schmal-tauglich - Haken kollidiert nicht mehr 5fca852
Intern
design Migrationsstand aktualisiert (7 weitere Views fertig) 13ad6c9
Intern
commission Provisionskonto-View auf Marken-Design-System 9e3ef25
Intern
revenue Umsatz-View auf Marken-Design-System cd83950
Intern
docs-view Dokumente-View auf Marken-Design-System 9426787
Intern
vacation Urlaubsverwaltung auf Marken-Design-System 86a2b78
Intern
timeaccount Arbeitszeitkonto-View auf Marken-Design-System 25e4b52
Intern
tasks Aufgaben-View auf Marken-Design-System a660fcd
Intern
sick Arbeitsunfaehigkeit-View auf Marken-Design-System 96132b5
Intern
design Verbindliche Design-System-Dokumentation 76a5f61
Behoben
ui SegmentedControl optisch an Marken-Buttons angeglichen 49c1625
Behoben
employees Kanban/Tabelle-Umschalter in den Seitenkopf neben Export 1262a07
Behoben
time Filterleiste wie im Mitarbeiter-View angeordnet 0710f26
Behoben
ui SegmentedControl auf einheitliche Toolbar-Hoehe 42px gepinnt eafa622
Intern
time Arbeitszeit-View + Erfassen-Modal auf Markendesign 068f5ae
Intern
dev Launch-Konfiguration fuer lokale Dev-Server 4797122
Behoben
api Customers-Controller auf neue Tabelle location + Migrations-Skript 611a0bd
Neu
employees Volltext-Suche ueber alle Spalten + Toolbar-Hoehen angleichen 2d5bd95
Neu
ui Zentrale SearchSelect-Suchleiste mit Tastatur-Navigation f264485
Intern
employees Mitarbeiter-Detail-View komplett auf Markendesign d54ebee
Intern
ui Basis-Bausteine auf Markendesign + neue Form-Komponenten 44b0e04
Neu
employees Tabellen-Pagination mit Mehr-laden und Seitengroesse 5177153
Behoben
employees Kanban volle Hoehe + Suchfeld fuellt Toolbar-Restbreite 4d464b6
Intern
employees MitarbeiterView 1:1 auf Marken-Design-System b02b944
Intern
nav Sidebar + NavMenu vollstaendig auf Marken-Token 0dc8d81
Neu
ui Marken-Design-System Die Offensive in ui.tsx da7344d
Neu
design Marken-Token nach Design-Vorgabe in Tailwind-Config f83b8c7
Behoben
frontend Filterleiste frei ueber Tabellen-Card + Suchfeld breiter 67442b6
Behoben
frontend ANLEGEN-Button Bordeaux/schwarz + Tabellen-Ansicht aufgeraeumt 4b69789
Neu
frontend Mitarbeiterliste an Marken-Vorgabe angeglichen 50cd6af
Neu
ui Globale RoleBadge-Komponente (Marken-Rollenfarben) 4715506
Neu
frontend Kanban/Tabelle-Umschalter auf Mitarbeiter-Seite 4e92544
Behoben
db Stammdaten-Migration + Tenant-Plan-Zuweisung (Menue-Punkte gefehlt) b42f6ab
Behoben
backend GetEmployeeWorkingHoursForDate auf working_hour/person_id e003e53
Neu
frontend Sidebar + Mitarbeiterliste im Marken-Design 'Die Offensive' 24449bc
Intern
Refactor(backend) Rest: utils.php auf neues Schema (activity_log mit BIGINT AUTO_INCREMENT, person_id/target_person_id, location, service) 0de6508
Intern
Refactor(backend) Rest: Helpers auf neues Schema (working_hour, person+employee_profile.extra, time_entry, location, holiday; uuid-INSERTs -> AUTO_INCREMENT) 4f522bd
Neu
frontend Marken-Design-Tokens 'Die Offensive' in Tailwind-Config c27104d
Intern
Refactor(backend) Phase 3m: tenants/stripe/crm/tenant_crm auf neues Schema 7d63bed
Intern
Refactor(backend) Phase 3l: settings/onboarding/partners auf neues Schema f62e425
Intern
Refactor(backend) Phase 3k: booking + digital_signage auf neues Schema 55b8785
Intern
Refactor(backend) Phase 3j: calendar + customer_portal auf neues Schema 1b2e04e
Intern
Feat(db) Phase 5: Termin-Migration (Variante B) 768bcfe
Intern
Chore(backend) Phase 3i: 3 Vacation-Mail-Dubletten in Papierkorb 6ccf972
Intern
Refactor(backend) Phase 3h: E-Mail-System-Gruppe + utils.php Mail-Logging 92f7e2d
Intern
Refactor(backend) Phase 3g: finance_payments wawi_suppliers->wawi_supplier 4d0bffc
Intern
Refactor(backend) Phase 3f: grosse Brocken pos.php + wawi.php 399fd22
Intern
Refactor(backend) Phase 3e: triviale Tabellen-Reste (SINGULAR) 26c3218
Intern
Refactor(backend) Phase 3d: 14 weitere Controller auf neues Schema 81d031a
Intern
db Schema.sql mit eingespielter DB synchronisiert a2257b7
Intern
Refactor(backend) Phase 3c: Mail-Gruppe Teil 1 auf MailService + neues Schema f4f8654
Intern
Refactor(backend) Phase 3b: services/locations/roles auf neues Schema 9e17045
Intern
Refactor(backend) Phase 3a: Kern-Controller auf neues Schema 54d580c
Intern
Feat(auth) Phase 2: requireAuth + getUserPermissions auf neues Schema 4245ba4
Intern
Feat(backend) Phase 2: zentrale Schicht (DateHelper, MailService, PersonRepository) 85a692d
Intern
Chore(backend) Phase 1: Aufraeumen + Sicherheit 0071250
Intern
plan Detaillierter Backend-Repository-Umbauplan (4 Phasen) 2f0aa85
Intern
Backend-Aufraeum- & Repository-Plan (Dopplungs-Analyse) 9d0d76c
Neu
db Datenmigration Phase 1-4 komplett & robust 3a85f0b
09.06.2026
Neu
db Time_account-Tabelle (Arbeitszeitkonto-Salden) 7261c10
Intern
Design-Demo - einfahrbare Sidebar ergaenzt 30659ef
Intern
Design-System-Demo im DIE-OFFENSIVE-Look ab8d8d3
Intern
Interaktive Demo - Mitarbeiterliste im neuen Design (Pilot) 47333a1
Behoben
types Alle 18 TS-Typfehler behoben (sauber, kein as-any) f6ad23d
Neu
db Vollstaendiges Neuaufbau-Schema (128 Tabellen, 253 FKs) 0de7b83
Intern
db Domaenen-Check - jede Domaene auf Party/Redundanz geprueft 67c190d
Intern
.gitignore - db/schema.sql versionieren (Dumps bleiben ignoriert) 2bea3a9
Neu
db Kern-Schema v1 - Party-Pattern (Teil 1) 6658f0b
Intern
.gitignore - config.new.php (neue DB-Zugangsdaten) ausschliessen b6939b6
Intern
db Person-Modell um Tenant/Filialen-Hierarchie erweitert d205a6a
Intern
db Person-Modell als visuelles HTML-Schaubild e1a8c1d
Intern
db Datenbank-Konzept als interaktive HTML-Ansicht dfa66b2
Intern
db Datenbank-Konzept aus Live-Analyse (127 Tabellen) 6d8691e
Neu
ui Globale DataTable-Komponente (Phase 1b) d8e59bf
Intern
Maintenance/ entfernt + tsconfig include/exclude d39461c
Neu
ui Design-System erweitern (Phase 1a) f91cd06
Intern
Initial commit - Sicherheitsnetz vor Refactoring 3c072e2