Zeitscheibe

Beispiel:

<timeSliceModel> <!-- Wenn Sonderzeiten auch berechnet werden sollen, obwohl diese nicht abgeschlossen sind (Haken), so sind diese oben im TimeSliceModel anzugeben mittels der Option "unconfirmedSonderzeit" --> <unconfirmedSonderzeit>Urlaub</unconfirmedSonderzeit> <unconfirmedSonderzeit>Krankenstand</unconfirmedSonderzeit> <!-- Mit der Option "<acceptAllUnconfirmedSonderzeit>" kann eingestellt werden, dass alle Sonderzeiten nicht abgeschlossen werden müssen.--> <acceptAllUnconfirmedSonderzeit>true</acceptAllUnconfirmedSonderzeit> <useDayBordersForTagTuples>true</useDayBordersForTagTuples> <!-- FIRST_ACTION_IS_DRIVE, LAST_ACTION_IS_DRIVE, ... Markierungen werden für jeden Tagesbeginn (bsp. Bereitschaftseinsatz am Abend) erneut gesetzt --> <!-- wegzeit --> <DistanceAddOn> <pourAddOnLast>true</pourAddOnLast> <zipCodeMapping>ZipCodesMappingAngestellte</zipCodeMapping> <addOnAlsoIfArrivalDriveBooked>true</addOnAlsoIfArrivalDriveBooked> <!--default=false / wegzeiten auch wenn eine Fahrt zum ersten Einsatz gebucht wurde --> <addOnAlsoIfDepartureDriveBooked>true</addOnAlsoIfDepartureDriveBooked> <!--default=false / wegzeiten auch wenn eine Fahrt nach dem letzten Einsatz gebucht wurde --> </DistanceAddOn> <ruleSet> <fromTime>00:00</fromTime> <endTime>24:00</endTime> <dayOfWeek>sonntag</dayOfWeek> <tupleType>wegzeit</tupleType> <maxWorkday>false</maxWorkday> <minWorkday>false</minWorkday> <matchingWT>WzAng100</matchingWT> </ruleSet> <!-- ende wegzeiten bsp. --> <ruleSet> <fromTime>00:00</fromTime> <endTime>24:00</endTime> <dayOfWeek>*</dayOfWeek> <tupleType>active</tupleType> <maxWorkday>false</maxWorkday> <minWorkday>false</minWorkday> <matchingWT>001</matchingWT> <suppressTaskAssignment>false</suppressTaskAssignment> <!-- default: false, erlaubt Buchungen die auf dieser Regel basieren explizit nicht an eine Aufgabe zu binden; so werden ggf. Lohn-relevante aber nicht Faktur-relevante Buchungen erzeugt --> <!-- hourlyBased=true ist der default; false liefert anstatt der Anzahl der Stunden die der Regel entsprechen den Wert 1 (oder "factor"), unabhängig von der Dauer Zudem werden Lohnbuchungen die aus hourlyBased=false Regeln enstehen auch ohne zugehörige Töpfe angelegt; gibt es passende Töpfe durchlaufen sie die Topflogik --> <hourlyBased>true</hourlyBased> <!-- optional kann bei hourlyBased = false noch folgendes definiert werden --> <factor>79.03</factor> <!-- ohne "factor" wird 1 angenommen; anderenfalls der factor-wert --> <!-- wird nonHourlyAddOn mit true übergeben (default=false), dann zieht diese Regel zusätzlich; weitere Regeln darunter werden ebefalls durchlaufen; könnte Bsp. für einen Zuschlag für Tätigkeiten mit einer bestimmten Aufgabenart dienen --> <nonHourlyAddOn>true</nonHourlyAddOn> <!-- mit "onlyWithTag" kann die Regel auf Buchungen mit bestimmter Markierung eingeschränkt werden --> <!-- mögliche Markierungen sind: AUTODAY_CLOSE, NOT_BILLABLE, BILLABLE, HOMEOFFICE, HOME_DRIVE, FIRST_DRIVE, FIRST_TE_DRIVE, LAST_DRIVE, LAST_TE_DRIVE, FIRST_TE_WORK, LAST_TE_WORK, IN_COMPANY --> <onlyWithTag>HOMEOFFICE</onlyWithTag> <tasktype>Montage</tasktype> <!-- Einschränkung der Regel auf einen oder mehrere (Komma getrennt) Aufgabenarten --> <removeTaskentry>true</removeTaskentry> <!-- default=false; wird hier true übergeben, dann wird Lohnbuchung jedenfalls ohne Auftragszuordnung erzeugt --> </ruleSet> <ruleSet> <fromTime>07:00</fromTime> <fromTimeOH>06:00</fromTimeOH> <!-- wenn auf mindestens einem Termin an dem Tag die Option "Überstunden erlaubt" aktiviert wurde, dann gelten die erweiterten Zeiten (OH = Überstunden/OverHours) --> <endTime>16:00</endTime> <endTimeOH>20:00</endTimeOH> <dayOfWeek>sunday</dayOfWeek> <tupleType>work</tupleType> <!-- work | drive | co_drive | active | standbytime | break --> <standbytime>Rufbereitschaft</standbytime> <!-- wenn der Typ standbytime gewählt wurde kann hier auf die jew. Bereitschaftszeit eingeschränkt werden; ohne Einschränkungen gilt die Regel für alle Bereitschaftszeiten (ohne Arbeitszeit) --> <hourlyBased>false</hourlyBased> <!-- damit wird ein Pauschalwert von 1.00 ausgewiesen; unabhängig von der Stundenanzahl --> <addOn>false</addOn> <!-- addOn = true bedeutet dass diese Regel zusätzliche Werte zu etwaigen anderen Regeln auslöst; also weitere Regeln durchlaufen werden; addOn Regeln müssen üblicherweise über nicht-addOn Regeln stehen --> <maxWorkday>false</maxWorkday> <!-- alternativ zu "true" kann hier auch ein Stundenwert angegeben werden; ist der Wert größer als die Sollarbeitszeit lt. AZM, dann zieht das AZM; anderenfalls der Wert als Obergrenze --> <minWorkday>false</minWorkday> <!-- alterantiv zu "true" kann auch hier ein Stundenwert angegeben werden; es zieht jw. der größere Wert; bei einem Konflikt mit maxWorkday, hat maxWorkday den Vorrang --> <matchingWT>001</matchingWT> <tasktype>Montage,Installation</tasktype> <!-- Einschränkung der Regel auf einen oder mehrere (Komma getrennt) Aufgabenarten --> </ruleSet> </timeSliceModel>

 

Um alle Sonderzeiten pauschal auch ohne Abschluss für die Berechnung heranzuziehen:

<acceptAllUnconfirmedSonderzeit>true</acceptAllUnconfirmedSonderzeit> 

 

Wochentage

Für den <dayOfWeek> -Tag sind folgende Werte zulässig:

Deutsch

Englisch

Beschreibung

Deutsch

Englisch

Beschreibung

*

*

Regel zieht für jeden Tag

montag

monday

Nur Montage

dienstag

tuesday

Nur Dienstage

mittwoch

wednesday

Nur Mittwoche

donnerstag

thursday

Nur Donnerstage

freitag

friday

Nur Freitage

montag-donnerstag

monday-thursday

Montag bis inkl. Donnerstag

montag-freitag

monday-friday

Montag bis inkl. Freitag

montag-samstag

monday-saturday

Montag bis inkl. Samstag

samstag

saturday

Samstag

sonntag

sunday

Sonn- und Feiertage

nur sonntag

sunday only

Nur Sonntage wenn kein Feiertag

feiertag

holiday

Jeder Feiertag

hlabendsylvester

24th31st

Regel zieht für den 24.12. sowie 31.12.

feiertag am samstag

holiday on saturday

Regel zieht für Feiertage an einem Samstag

feiertag am sonntag

holiday on sunday

Regel zieht für Feiertage an einem Sonntag

Die Bezeichner können beliebig deutsch oder englisch verwendet werden; die Groß-Kleinschreibung spielt keine Rolle.

 

TupleType

Unter dem Begriff TupleType <tupleType> ist die Art der Tätigkeit zu verstehen die mit der Regel adressiert werden soll.

Zur Auswahl stehen:

TupleType

Beschreibung

TupleType

Beschreibung

arbeit (work)

Arbeit an einem Termin

aktiv (active)

Arbeitszeit (d.h. zwischen Tagesbeginn-Buchung und Tagesende-Buchung) die nicht auf einem Termin gearbeitet wird (work)

fahren bzw. beifahren (drive / co_drive)

Fahrzeit, entweder als Fahrer (kleines Lenkrad-Symbol das an einen Fußball erinnert) bzw. Beifahrer

Arbeiten und (Bei-)Fahren (work_drive_codrive)

Wenn die Fahrt- und Arbeitszeiten gleich geregelt sind, können diese in einer Regel zusammengefasst werden. Aktivzeiten gehören einzeln geregelt!

sonderzeit (specialtime)

Zeit auf einer Sonderzeit; die Sonderzeit ist in dem Fall in einem Tag anzugeben.

Bsp.:

<tupleType>Sonderzeit</tupleType>
<sonderzeit>Sonderurlaub</sonderzeit>

bereitschaft (standbytime)

Gebuchte Bereitschaften werden von dieser Regel erfasst.

Optional kann die Regel auf eine bestimmte Art von Bereitschaft eingeschränkt werden.

Bsp.:

<tupleType>Bereitschaft</tupleType>
<standbytime>Rufbereitschaft</standbytime>

pause (break)

Gebuchte Pausen können damit auf Lohnbuchungen umgelegt werden; bspw. um bei Pausen zw. Lohn- und Faktur zu unterscheiden

 

Tags

Mit den “Tags” <<onlyWithTag>> kann die Art der Tätigkeit noch weiter untergliedert werden.

Zur Auswahl stehen:

Tag

Beschreibung

Tag

Beschreibung

AUTODAY_CLOSE

 

BILLABLE

 

FIRST_DRIVE

 

FIRST_TE_DRIVE

 

FIRST_TE_WORK

 

HOME_DRIVE

 

HOMEOFFICE

 

LAST_DRIVE

 

LAST_TE_DRIVE

 

LAST_TE_WORK

 

IN_COMPANY

kann in Kombination mit dem TupeType Work verwendet werden, um in der Regel Arbeiten an einem Auftrag welche in der Firma verrichtet werden eigens zu behandeln.

NOT_BILLABLE

 

Regel abhängig von Objekt und Auftragsdaten

Mitunter ist es notwendig unterschiedliche Lohnarten oder Zeit-Regeln für verschiedene Auftrags/Objekt/Kunden zu hinterlegen.

So könnten Großkunden andere Faktur-Lohnarten zugeordnet haben oder abhängig von der erforderlichen Qualifikation bei einem Auftrag andere Regeln angewendet werden.

Dazu ist es möglich bei jeder Regel <ruleSet> ein Filter-Kriterium anzugeben. Bitte beachten: es zieht wie immer die erste Regel; d.h. Regeln mit zusätzlichen Einschränkungen immer über die generellen Regeln legen.

Syntax filterTerm

filterTerm

Beispiel

 

filterTerm

Beispiel

 

{Mitarbeiter-Optionparameter}

{Qualifikation}

wie bei allen Attributen in der Zeitscheibe werden auch hier Mitarbeiter-OptionParameter vorab durch die Werte des jw. MA ersetzt

{task.attribute}

{project.attribute}

{customer.attribute}

{project.zip}

auf alle Attribute (PLZ, Bezeichnung, Nummer, …) kann mit dieser einfachen Punkt-Syntax zugegriffen werden.

Ausgenommen ist der Verrechnungskunde/Billing-Customer; dieser wir aktuell nicht unterstützt.

{task.optionparameterParameterName}

...

{project.optionparameterKategorie}

 

(Achtung: Groß-Kleinschreibung beachten!)

wie bei den internen Attributen (siehe oben) ist es auch möglich auf OptionParameter der jw. Entitäten (Aufgabe/Objekt/Kunde) zuzugreifen.

Syntax filterRegEx

Der filterRegEx Parameter erlaubt ein Regular-Expression-Muster. Am besten auf regex101: build, test, and debug regex austesten.

(Achtung: Groß-Kleinschreibung beachten!)

Beispiel

<ruleSet filterRegEx="Wohnung" filterTerm="{project.optionparameterKategorie}"> <fromTime>00:00</fromTime> <endTime>00:00</endTime> <dayOfWeek>montag-freitag</dayOfWeek> <tupleType>work</tupleType> <maxWorkday>false</maxWorkday> <minWorkday>false</minWorkday> <matchingWT>012</matchingWT> </ruleSet> <ruleSet> <fromTime>00:00</fromTime> <endTime>00:00</endTime> <dayOfWeek>montag-freitag</dayOfWeek> <tupleType>work</tupleType> <maxWorkday>false</maxWorkday> <minWorkday>false</minWorkday> <matchingWT>001</matchingWT> </ruleSet>