Repository navigation
PraxisZeit 1.22.0
Minor-Release mit zwei großen Neuerungen: verkürzte Tage (z. B. Heiligabend
und Silvester nur bis 12 Uhr) und ein Vertragsverlauf für Urlaubsanspruch,
Stundenzählung und Minijob-Einstellungen. Update aus 1.21.x ohne
Zwischenschritte. Enthält zwei Datenbank-Migrationen (074_reduced_days,
075_contract_history). Sie legen eine neue Tabelle an und übernehmen die
heutigen Werte jeder Person in ihren Arbeitszeit-Verlauf — Salden,
Urlaubskonten und Exporte aller bestehenden Daten bleiben unverändert (geprüft
gegen eine echte Praxis-Datenbank). Vor dem Update ein Backup ziehen
(UPDATE.md).
✨ Verkürzte Tage
Für einzelne Tage lässt sich das Soll auf eine Höchststundenzahl begrenzen —
„wer an dem Tag Dienst hat, arbeitet höchstens X Stunden“.
- Heiligabend und Silvester: Unter Einstellungen → „Sondertage (24./31.12.)“
gibt es neben „normaler Arbeitstag“, „halber Feiertag“ und „frei“ die neue
Einstellung „Verkürzt auf X Stunden“ (Feld „Höchstens (Stunden)“,
0,25–12 Stunden in Viertelstunden, Vorgabe 4). - Eigene Tage: Die neue Karte „Verkürzte Tage“ auf derselben Seite nimmt
beliebige weitere Tage auf, z. B. Rosenmontag (Datum, Bezeichnung,
Höchststunden). - So wird gerechnet: Das Tagessoll ist die kleinere Zahl aus dem normalen
Tagessoll und X. Wer an dem Tag ohnehin weniger Soll hat, behält es; wer an
dem Tag nicht arbeitet, hat weiter kein Soll. Ein Feiertag geht vor, am
Wochenende hat der Tag keine Wirkung. Gestempelte Zeit wird voll angerechnet
— wer länger bleibt, baut Überstunden auf. - Urlaub an einem verkürzten Tag kostet einen halben Tag, Krankheit und
Fortbildung werden mit dem verkürzten Soll gutgeschrieben, Betriebsferien
buchen das verkürzte Soll. Das feste Monats-Soll für Minijobs bleibt
unverändert. - Anzeige: Kalender und Stempelkarte zeigen „verkürzter Tag (max. 4 h)“.
- Betriebsferien werden automatisch neu gebucht, sobald Sie einen
verkürzten Tag oder die 24./31.12.-Einstellung ändern (siehe „Geändertes
Verhalten“).
✨ Vertragsverlauf: Urlaubsanspruch, Stundenzählung und Minijob ab Datum
Urlaubsanspruch, „Stundenzählung aktiv“, MiLoG-Arbeitszeitkonto, vereinbarte
Monatszeit und festes Monats-Soll gelten jetzt — wie die Wochenstunden — ab
einem Datum. Frühere Monate rechnen weiter mit dem alten Stand.
- Ein Ort zum Ändern: Der Dialog „Arbeitszeit anpassen…“ hat den neuen
Abschnitt „Urlaub und Abrechnung“ mit „Urlaubsanspruch pro Jahr ab
diesem Datum“, der Stundenzählung und den Minijob-Einstellungen. Im Formular
„Benutzer bearbeiten“ werden die Werte nur noch angezeigt (beim Anlegen
bleiben sie dort eingebbar). - Vorschlag für den Urlaubsanspruch: Ändern sich die Arbeitstage, schlägt
der Dialog den passenden Anspruch vor (alter Anspruch × neue Arbeitstage ÷
alte Arbeitstage, z. B. 24 Tage bei 4 Tagen → 30 bei 5 Tagen). Der Wert ist
überschreibbar; „Vorschlag übernehmen (30)“ holt ihn zurück. - Anteilig im Wechseljahr: Wechselt der Anspruch während des Jahres, zählt
jeder Abschnitt nach Monaten. Beispiel: 24 Tage bis Oktober, 30 ab November
→ 2026 = 24 × 10/12 + 30 × 2/12 = 25 Tage, ab 2027 30 Tage. - Vorschau: Die Auswirkungen zeigen jetzt „Urlaubsanspruch {Jahr}“ vorher →
nachher für das betroffene und das folgende Jahr (die bisherige Zeile heißt
„Urlaub verbraucht {Jahr}“). - Stundenzählung ab Datum: Wird die Stundenzählung ab einem Datum an- oder
ausgeschaltet, gilt das genau ab diesem Tag; rückwirkend rechnet PraxisZeit
die betroffenen Tage neu (Zeiteinträge und Abwesenheiten — mit Vorschau,
Begründung und Protokoll wie jede rückwirkende Änderung). - Minijob-Einstellungen ab Monatsanfang: MiLoG-Konto, vereinbarte
Monatszeit und festes Monats-Soll wirken je Monat. - Korrektur der ersten Zeile: Eine Änderung genau zum Datum der frühesten
Verlaufszeile korrigiert diese Zeile, statt mit „Datum schon belegt“
abzulehnen.
⚠️ Geändertes Verhalten
- Urlaubsanspruch, Stundenzählung und Minijob-Einstellungen ändern Sie nur
noch über „Arbeitszeit anpassen…“. Die Schnittstelle
PUT /api/admin/users/{id}lehnt diese fünf Felder mit 400 ab. - Minijob-Einstellungen gelten immer ab dem Monatsersten. Ein anderes Datum
wird abgelehnt: „Änderungen an Minijob-Einstellungen gelten immer ab dem
Monatsersten.“ Das gilt auch, wenn eine spätere Verlaufszeile dadurch mitten
im Monat andere Minijob-Werte erben würde. - Rückwirkend sinkender Urlaubsanspruch braucht eine Begründung — wie jede
rückwirkende Verkürzung (Grund, Begründung, Bestätigung). Das gilt auch, wenn
Sie eine frühere Erhöhung des Anspruchs löschen oder zurücksetzen. - Betriebsferien werden automatisch neu gebucht, wenn Sie die
24./31.12.-Einstellung oder einen verkürzten Tag ändern (bisher: von Hand
erneut speichern). Neu gebucht werden nur aktive Teilnehmende an Tagen ohne
Zeiteintrag; in abgeschlossenen Jahren wird nichts geändert, dort erscheint
nur der Hinweis auf den veralteten Übertrag. - Personen, deren Stundenzählung wechselt: Monatsbericht, Exporte und
Journal zählen an Tagen ohne Stundenzählung kein Ist mehr; die Tagesspalte
„Differenz“ ist dort 0, Netto und Stempel bleiben sichtbar. Wer nie
Stundenzählung hatte, sieht keine Änderung. - MiLoG-Prüfungen (50-%-Grenze, Monatsgrenze, 12-Monats-Frist) richten sich
nach dem Monat des Eintrags und gelten nur für Monate mit MiLoG-Konto und
Stundenzählung. - Wochenübersicht meldet fehlende Buchungen nur an Tagen mit
Stundenzählung. - Rundung: Urlaubsanspruch und vereinbarte Monatszeit werden auf eine
Nachkommastelle gerundet.
🐛 Fehlerbehebungen
- Betriebsferien am halben Feiertag (24./31.12.) behalten ihre Stunden. Eine
spätere Arbeitszeit-Änderung zog den gebuchten Betriebsferien-Tag auf das
volle Tagessoll hoch (z. B. 4 → 8 Stunden; seit 1.18.1). Urlaubstage und
Saldo waren richtig, die Stundenangabe in Exporten („Urlaub (8.0h)“) und im
klassischen Jahresbericht aber falsch. Bestehende Zeilen korrigiert ein
erneutes Speichern der betroffenen Betriebsferien. - Stundenvorschlag im Abwesenheitsformular berücksichtigt jetzt halben
Feiertag, freien Sondertag und verkürzten Tag. - Benutzerliste und Dashboard zeigen Stundenzählung und Minijob-Status nach
dem heute gültigen Vertragsstand. - DSGVO-Auskunft und §16-Notfallexport enthalten die fünf neuen
Vertragsfelder. - Benutzerübersicht lädt für Minijob-Mitarbeitende deutlich schneller (eine
statt bis zu 82 Abfragen der Vertragshistorie je Aufruf).
🔧 Update-Hinweise und Technik
- Nach dem Update einmal die Betriebsferien speichern, die über den
24./31.12. gehen, falls die Sondertage auf „halber Feiertag“ stehen (siehe
Fehlerbehebung oben). - Urlaubsanspruch nachträglich korrigieren: Wurde ein Wechsel der
Arbeitstage bisher per Hand im Übertrag ausgeglichen, tragen Sie die
Änderung jetzt im Dialog „Arbeitszeit anpassen…“ mit dem richtigen
Gültig-ab-Datum ein und nehmen den Handausgleich zurück. - Nach dem Update Seite neu laden: Ein vor dem Update im Browser geöffneter
Arbeitszeit-Dialog kann beim Zurücksetzen mit „Der vorherige Stand hat sich
inzwischen geändert“ (409) abbrechen. - Neue Schnittstellen:
/api/admin/reduced-days(Verwaltung) und
GET /api/reduced-days?year=(angemeldet). Verkürzte Tage stehen bewusst
nicht im öffentlichen/api/settings./time-entries/clock-status
liefert zusätzlichtoday_special_day_label. - Migrationen:
074_reduced_days(Tabellereduced_daysmit
Mandanten-Schutz),075_contract_history(fünf Spalten in
working_hours_changes, aususersbefüllt). Bitgleichheit geprüft mit
tools/migration-075/probe_075.py. - Getestet: Update 1.21.1 → 1.22.0 mit Docker-Paket, nativer Installation
und im Windows-Emulator (Update, Neuinstallation, Neustart); Backend 4574,
PostgreSQL 91, Frontend 1067 Tests grün; Installationsprüfung auf 5
Linux-Distributionen.