Zum Inhalt springen

Kontingente (Quota)

Ein Kontingent (Quota) definiert, wie viele Minuten/Stunden eine Mitarbeiter:in für eine bestimmte Zeitklasse (z. B. Nachtarbeit, Sonntagsarbeit, Überstunden, etc.) in einem Zeitraum zur Verfügung hat. Chronapp verwendet Kontingente, um verbuchte Arbeitszeiten gegen verfügbare Zeit-Budgets abzugleichen.

Es gibt zwei Arten von Kontingenten:

  • Periodenkontingente: Gültig für ein beliebiges Start- und Enddatum innerhalb desselben Kalenderjahres.
  • Jahreskontingente: Gültig pro ganzem Kalenderjahr (01.01.–31.12.) und ggf. über mehrere Jahre fortlaufend.

Ein Kontingent besitzt u. a. folgende Felder:

  • user: Mitarbeiter:in, für die das Kontingent gilt.
  • timeclass: Zeitklasse, für die das Kontingent gilt. Nur Zeitklassen, die Kontingente erlauben, sind zulässig.
  • from / to: Gültigkeitszeitraum.
  • quotaInMinutes: Umfang des Kontingents in Minuten.
  • yearly: Kennzeichen, ob es sich um ein Jahreskontingent handelt.

Die wichtigsten fachlichen Regeln bei der Erstellung und Pflege von Kontingenten:

  1. Pflichtfelder

    • Beginn (from), Ende (to), Benutzer:in (user) und Zeitklasse (timeclass) müssen gesetzt sein.
    • quotaInMinutes muss > 0 sein.
  2. Zeitraumlogik

    • Beginn muss vor Ende liegen.
    • Periodenkontingente müssen innerhalb eines Kalenderjahres liegen.
    • Jahreskontingente müssen volle Kalenderjahre umfassen: exakt 01.01.–31.12.
  3. Zeitklassen-Eignung

    • Nur Zeitklassen, die in der jeweiligen Periode für Kontingente freigegeben sind, sind zulässig.
    • Nur Zeitklassen, welche für Jahreskontingente freigegeben sind, lassen sich als Dauerkontingente erfassen.
  4. Überschneidungen

    • Ein neues oder geändertes Kontingent darf sich nicht mit einem bestehenden Kontingent derselben Zeitklasse und derselben Person überschneiden.
    • Bei Massenerfassung für mehrere Personen wird die Überschneidungsprüfung pro Person durchgeführt.
  5. Restquoten und Änderungen

    • Bei Änderungen oder Aufteilungen prüft das System die Restkontingente gegenüber bereits verbuchten Arbeitszeiten.
    • Wird durch eine Änderung das Restkontingent negativ, wird die Änderung abgelehnt.
    • Beim Löschen von Kontingenten verhindert das System das Löschen, wenn Arbeitszeiten ausserhalb verbleibender Quoten liegen oder Restquoten-Regeln verletzt würden.
  • Jahreskontingente sind speziell, da sie oft über mehrere Jahre laufen können. Intern werden solche Kontingente für Berechnungen pro Jahr „virtuell“ aufgeteilt, damit Restquoten pro Jahr korrekt ermittelt werden.
  • Periodenkontingente sind flexibler (z. B. nur ein Monat, oder ein konkreter Sonntag), müssen aber innerhalb eines Jahres liegen.

Beim Aktualisieren eines Kontingents können zwei Fälle unterschieden werden:

  • Ändern (ohne Aufteilung): Zeitraum und Umfang werden angepasst. Dabei dürfen keine Restquoten negativ werden und es darf zu keinen Überschneidungen kommen.
  • Aufteilen (Split): Ein bestehendes Kontingent wird in zwei Abschnitte aufgeteilt (z. B. „Ändern ab“ Datum). Dabei gilt u. a.:
    • Die Zeitklasse darf nicht geändert werden.
    • Spezielle Regeln kontrollieren, dass das neue „Ändern ab“-Datum innerhalb des ursprünglichen Intervalls liegt und die Restquoten konsistent bleiben.

Die Sicht- und Schreibrechte für Kontingente werden differenziert geprüft. Relevante Permissions sind u. a.:

  • Lesen: quota.read, quota.read.self, quota.read.ou, quota.read.coco, quota.read.tenant
  • Schreiben: quota.write, quota.write.ou, quota.write.coco, quota.write.tenant
  • Zeitklassen lesen: timeclass.read (u. a. zur Auswahl geeigneter Zeitklassen)

Neben den oben genannten generischen Rechten prüft der Server bei der Anlage/Bearbeitung die Berechtigung pro Benutzer:in und ob die ausgewählte Zeitklasse für Quoten erlaubt ist.

  • Behördlich bewilligte Sonntagsarbeit
  • Weiterbildungsbudget pro Quartal/Jahr
  • angeordnete Überstunden
  • „Beginn muss vor Ende sein.“
  • „Beginn und Ende müssen im gleichen Kalenderjahr liegen (für nicht-jährliche Kontingente).“
  • „Jahreskontingente sind nur für volle Jahre erlaubt (01.01.–31.12.).“
  • „Zeitklasse ist ungültig (oder für Jahreskontingente nicht erlaubt).“
  • „Dieses Kontingent überschneidet sich mit einem anderen Kontingent.“
  • „Änderung würde zu negativem Restkontingent führen.“
  • „Kontingent kann nicht gelöscht werden, da Arbeitszeiten ausserhalb verbleibender Quoten liegen.“
  • Jahreskontingente verwenden, wenn Budgets pro Kalenderjahr geführt werden sollen.
  • Periodenkontingente einsetzen, wenn temporäre Budgets benötigt werden (z. B. projektspezifisch innerhalb eines Jahres).
  • Zeitklassen sorgfältig konfigurieren (Freigabe für Quoten bzw. Jahresquoten), um ungültige Kombinationen zu vermeiden.
  • Bei Änderungen zuerst prüfen, ob bereits viele Zeiten verbucht sind; ggf. mit „Aufteilen ab Datum“ arbeiten.