Skip to content

Time Data

Jani Giannoudis edited this page Jul 3, 2023 · 28 revisions

Payroll Time Data

Mit der Payroll Engine werden die lohnrelevanten Daten zum Zeitpunkt des Lohnlaufes ausgewertet und nicht zum Zeiptunkt der Eingabe. Zum Vergleich die beiden Ansätze

  • Konventionelle Dateneingbe: der Mitarbeiter hat im Monat Mai 3 Tage Sonderzulage
  • Time Data Eingabe: der Mitarbeiter hat im 4. bis 6. Mai eine Sonderzulage

Die folgende Illustration zeigt die Auswirkung für den Anwender in der Dateneingabe:
Time Data

Durch die Eingabe ab wann und bei wie lange der Wert gelten soll, bieten sich neue Möglichkeit in der Betrachtung und Verwaltung von Falldaten:

  • Die Dauer der Mutation lässt sich befristen (Enddatum)
  • Eine Mutation kann für die Zukunft terminiert werden (Startdatum)
  • Eine Mutation kann in der Vergangehit starten (Startdatum, automatisch Rückrechnung)
  • Jede Mutation kann rückwirkend storniert werden (Undo)
  • Mehrfachmutationen mit zeitüberlagernde Datumsbereichen werden automatisch berechnet
  • Die Auswertungszeitpunkt der Falldaten ist wählbar (was galt damals, wie sehen die Falldaten am Jahresende aus)
  • Jede Mutation kann mittels Forecast simmuliert werden


Time Types

Type Description Period Start Period End Period Values Example
Timeless Value without time commitment - - 1 Pension obligation
Moment Value which is assigned to a point in time x - 1..n 3) Bonus
Period Value assigned to a period x (x) 1) 2) n 4) Working hours
Scaled Period Value distributed to the calendar period x (x) 1) 2) n 4) Monthly wage

1) A period without end date indicates an endless/open period
2) Eine zwingend geschlossene Periode wird mittels Scripting (Validierung) oder Case Actions (SetFieldEndRequired, SetEndRequired) erreicht.
3) Wahlweise die Summe oder der letzte aller Periodenwerte
4) Unlimited overlap support



Time Calculations

Das folgende Beispiel zeigt ein Szenario, wo sich die Mutationen vom Monatslohn und Risikobonus überlagern:
Time Calculations

Die Berechnung der Zeitwerte unter Berücksichtigung von Überlappungen ist mit den vier Basisoperatoren möglich:

  • Addition
  • Subtraktion
  • Multiplikation
  • Division

Mit dem folgenden Lohnarten-Script wird das obige Beispiel korrekt berechnet:

01 var values = GetCaseValues("Salary", "RiskBonus");
02 decimal baseSalary = values["Salary"];
03 return baseSalary + (values["Salary"] * values["RiskBonus"]);

In der Zeile #01 werden die zu berechnenden Werte abgefragt, in diesem Fall Salary und RiskBonus. Für komplexere Szenarien ist die Parameterlsite entsprechend zu erweitern. Zeile #02 berechnet den Basis-Monatslohn, zu welchem in der Zeile #03 der Risikobonus addiert wird. Zu beachten ist der Mutliplikations-Operator welcher die Werte in Teilperioden aufteilt und die Werte pro Teilperiode multipliziert. Das Ergbnis ist die Summe aller Teilperioden-Produktwerte.

Die Umwandlung in Zeile 02 in decimal ist notwendig um den Wert in Zeile 03 als Zahlenwert zu erhalten.

Clone this wiki locally