Die Buchungen eines Tages werden in Scheiben zerschnitten (also Anfang & Ende zusammen gesucht)
Die Scheiben werden mit den Regeln für einen Tag abgeglichen (z.B. Samstag Ü50, vor 06:00 Ü50, Fahrten zw. 07:00 und 15:12 Fahrzeitlohnart, …)
Die Buchungen werden dann entsprechend in den jeweiligen Topf eingekippt, wobei jeder Topf für mehrere verschiedene Lohnarten fassen kann; so z.B.: der Normalarbeitszeittopf auch mit Urlaubsbuchungen und Fahrten befüllt wird.
Topf
Hat einen Zeitraum, so gibt es Tagestöpfe, Wochentöpfe, Monatstöpfe und Jahrestöpfe
Eine oder mehrere Lohnarten die er aufnimmt
Faktor: im Verhältnis z.B.: zur Normalarbeitszeit um etwaige Zuschläge/Abschläge errechnen zu können; Ü50-Topf = 150; ZA15-Topf = 115
Optional: max. Füllmenge, z.B. Normalarbeitszeittopf-Tag = 7.7h, NAZ-Woche = 38.5h, MAZ-Tag = 1.3h, MAZ-Woche = 1.5h max.
Optional: min. Füllmenge, z.B. Normalarbeitszeittopf-Woche = 38.5h
Wenn ein Topf seine Max.Grenze erreicht läuft er nach rechts über.
Jeder Topf „X“ der am Ende seiner Periode die Mindestfüllmenge nicht erreicht hat wird wie folgt gefüllt:
Der Algorithmus geht nach rechts (vom Topf „X“ aus) bis der Faktor steigt; bsp. von NAZ aus gehen wir über MAZ zu ZA0, dahinter wäre der Faktor > 100%
Dann wird aus dem Topf so viel wie möglich/erforderlich entnommen – in diesem Bsp. aus ZA0
Fehlt nach Schritt (a+b) noch etwas, wird auf den nächsten Topf mit dem gleichen Faktor entnommen – in diesem Bsp. aus MAZ
Fehlt nach Schritt ( c) noch etwas wird wieder bei Schritt (a) begonnen mit dem nächst höheren Faktor
Bsp. Töpfe in Reihenfolge:
FZ außerhalb NAZ (1) NAZ (2) MAZ (3) ZA0 (4) ZA15 (5) ZA20 (6) Ü50 (7) Ü100
Mögliche Parameter
Boolean skip
auf dieser Ebene (z.B. Woche) wird dieser Topf nicht benötigt; alle Stunden gehen direkt weiter in den darunterliegenden Topf
String balance
Boolean blockWithdraw
wenn einem anderen Topf Stunden fehlen (durch
minValue
oder weil der Topf im Minus ist undbalance
für den Topf aktiviert wurde), dann werden Stunden aus den benachbarten Töpfen gesammelt; ein Topf mitblockWithdraw = true
wird dabei aber ignoriert;
Ausnahme: wenn bei dem Topf, dem Stunden fehlen einewithdrawOrder
angegeben wurde, dann werden (soweit vorhanden) auch Stunden aus einem Topf mitblockWithdraw
gezogen.
Boolean blockSpillover
Boolean leftWithdraw
Lohnarten-Liste:
withdrawOrder
,gibt die Reihenfolge der Töpfe zurück aus denen etwaige Fehlbeträge genommen werden können; sollte der Fehlbetrag aus den angegebenen Töpfen nicht bedient werden können, dann wird in standard-Reihenfolge weiter eingezogen. Bsp.: <withdrawOrder
>120,130,400</withdrawOrder
>wird bei der
withdrawOrder
ein Topf referenziert bei demblockWithdraw = true
hinterlegt ist, so wird dasblockWithdraw
zugunsten derwithdrawOrder
ignoriert
Lohnarten-Liste:
withdrawOrderLimited
,gibt die Reihenfolge der Töpfe zurück aus denen etwaige Fehlbeträge genommen werden können; sollte der Fehlbetrag aus den angegebenen Töpfen nicht bedient werden können, dann wird abgebrochen. Bsp.: <withdrawOrderLimited
>120,130,400</withdrawOrderLimited
>Boolean forcePrimaryWagetype
BigDecimal minValueOffset
BigDecimal maxValueOffset
BigDecimal minValueAzmFactor
BigDecimal maxValueAzmFactor
BigDecimal maxValuePPeriodOffset
BigDecimal maxValuePPeriodAzmFactor