...
Code Block | ||||
---|---|---|---|---|
| ||||
<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> </DistanceAddOn> <addOnAlsoIfArrivalDriveBooked>true</addOnAlsoIfArrivalDriveBooked> <!--default=false / wegzeiten auch <ruleSet>wenn eine Fahrt zum ersten Einsatz gebucht wurde <fromTime>00:00</fromTime>--> <endTime>24:00</endTime> <dayOfWeek>sonntag</dayOfWeek> <addOnAlsoIfDepartureDriveBooked>true</addOnAlsoIfDepartureDriveBooked> <!--default=false / wegzeiten auch wenn eine Fahrt nach dem letzten Einsatz gebucht wurde --> <tupleType>wegzeit<</tupleType>DistanceAddOn> <maxWorkday>false</maxWorkday> <ruleSet> <minWorkday>false<<fromTime>00:00</minWorkday>fromTime> <matchingWT>WzAng100<<endTime>24:00</matchingWT>endTime> </ruleSet> <!-- ende wegzeiten bsp. --><dayOfWeek>sonntag</dayOfWeek> <tupleType>wegzeit</tupleType> <ruleSet> <maxWorkday>false</maxWorkday> <fromTime>00:00</fromTime> <minWorkday>false</minWorkday> <endTime>24:00<<matchingWT>WzAng100</endTime>matchingWT> </ruleSet> <dayOfWeek>*</dayOfWeek> <!-- ende wegzeiten bsp. --> <tupleType>active</tupleType><ruleSet> <maxWorkday>false<<fromTime>00:00</maxWorkday>fromTime> <minWorkday>false<<endTime>24:00</minWorkday>endTime> <matchingWT>001<<dayOfWeek>*</matchingWT>dayOfWeek> <tupleType>active</tupleType> <!-- hourlyBased=true ist der default; false liefert anstatt der Anzahl der <maxWorkday>false</maxWorkday> <minWorkday>false</minWorkday> Stunden die der<matchingWT>001</matchingWT> Regel entsprechen den Wert 1 (oder "factor"), unabhängig von der Dauer Zudem werden Lohnbuchungen die aus hourlyBased=false Regeln enstehen auch ohne<suppressTaskAssignment>false</suppressTaskAssignment> <!-- default: false, erlaubt Buchungen die auf zugehörigedieser TöpfeRegel angelegt;basieren gibtexplizit esnicht passendean Töpfeeine durchlaufenAufgabe siezu diebinden; Topflogikso werden ggf. Lohn-relevante aber nicht Faktur-relevante Buchungen erzeugt --> <hourlyBased>true</hourlyBased> <!-- optionalhourlyBased=true kannist bei hourlyBased =der default; false nochliefert folgendesanstatt definiertder werdenAnzahl -->der <factor>79.03</factor> Stunden <!-- ohne "factor" wird 1 angenommen; anderenfalls der factor-wert -->die der Regel entsprechen den Wert 1 (oder "factor"), unabhängig von der Dauer <!-- wird nonHourlyAddOn mit true übergeben (default=false), dann zieht diese Regel zusätzlich;Zudem werden Lohnbuchungen die aus hourlyBased=false Regeln enstehen auch ohne zugehörige Töpfe angelegt; gibt weiterees Regeln darunter werden ebefallspassende Töpfe durchlaufen; könntesie Bsp. für einen Zuschlagdie Topflogik für Tätigkeiten mit einer bestimmten Aufgabenart dienen --> <nonHourlyAddOn>true<<hourlyBased>true</nonHourlyAddOn>hourlyBased> <!-- optional kann bei hourlyBased = false noch folgendes definiert werden <!--> mit "onlyWithTag" kann die Regel auf Buchungen mit bestimmter Markierung <factor>79.03</factor> <!-- ohne "factor" wird 1 angenommen; anderenfalls eingeschränkt werdender factor-wert --> <!-- möglichewird MarkierungennonHourlyAddOn sind: AUTODAY_CLOSE, NOT_BILLABLE, BILLABLE, mit true übergeben (default=false), dann zieht diese Regel zusätzlich; HOMEOFFICE, HOME_DRIVE, FIRST_DRIVE, FIRST_TE_DRIVE, weitere Regeln darunter werden ebefalls durchlaufen; könnte Bsp. für einen Zuschlag LAST_DRIVE, LAST_TE_DRIVE, FIRST_TE_WORK, LAST_TE_WORK, IN_COMPANY --> für Tätigkeiten mit <onlyWithTag>HOMEOFFICE</onlyWithTag>einer bestimmten Aufgabenart dienen --> <tasktype>Montage</tasktype> <!-- Einschränkung der<nonHourlyAddOn>true</nonHourlyAddOn> Regel auf einen oder mehrere (Komma getrennt) Aufgabenarten --> <!-- mit "onlyWithTag" kann die Regel auf Buchungen mit <removeTaskentry>true</removeTaskentry> <!-- default=false; wird hier truebestimmter Markierung übergeben, dann wird Lohnbuchung jedenfalls ohne Auftragszuordnung erzeugteingeschränkt werden --> </ruleSet> <ruleSet> <!-- mögliche Markierungen sind: AUTODAY_CLOSE, NOT_BILLABLE, BILLABLE, <fromTime>07:00</fromTime> <fromTimeOH>06:00</fromTimeOH> <!-- wenn auf mindestens einem Termin an dem Tag dieHOMEOFFICE, HOME_DRIVE, FIRST_DRIVE, FIRST_TE_DRIVE, Option "Überstunden erlaubt" aktiviert wurde, dann gelten die erweiterten Zeiten (OH = Überstunden/OverHours) LAST_DRIVE, LAST_TE_DRIVE, FIRST_TE_WORK, LAST_TE_WORK, IN_COMPANY --> <endTime>16:00</endTime> <onlyWithTag>HOMEOFFICE</onlyWithTag> <endTimeOH>20:00</endTimeOH> <dayOfWeek>sunday</dayOfWeek> <tupleType>work</tupleType><tasktype>Montage</tasktype> <!-- Einschränkung workder |Regel driveauf |einen co_driveoder | active | standbytime | break --> mehrere <standbytime>Rufbereitschaft</standbytime> <!(Komma getrennt) Aufgabenarten --> wenn der Typ standbytime gewählt <removeTaskentry>true</removeTaskentry> wurde kann<!-- default=false; wird hier auftrue die jew. Bereitschaftszeit eingeschränkt werden; ohne übergeben, Einschränkungendann giltwird dieLohnbuchung Regeljedenfalls fürohne alle Bereitschaftszeiten (ohne Arbeitszeit)Auftragszuordnung erzeugt --> </ruleSet> <hourlyBased>false</hourlyBased> <!-- damit wird<ruleSet> ein Pauschalwert von 1.00 ausgewiesen; unabhängig von der <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 Stundenanzahl= Überstunden/OverHours) --> <addOn>false<<endTime>16:00</addOn>endTime> <!-- addOn = true bedeutet dass diese Regel zusätzliche<endTimeOH>20:00</endTimeOH> Werte zu etwaigen anderen Regeln <dayOfWeek>sunday</dayOfWeek> <tupleType>work</tupleType> <!-- work | drive | co_drive | active | standbytime | break --> <standbytime>Rufbereitschaft</standbytime> auslöst; also weitere Regeln durchlaufen werden; addOn Regeln müssen üblicherweise über <!-- 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) --> nicht-addOn Regeln stehen --> <maxWorkday>false</maxWorkday><hourlyBased>false</hourlyBased> <!-- alternativdamit wird zuein "true"Pauschalwert kannvon hier auch ein Stundenwert angegeben werden; ist der Wert größer1.00 ausgewiesen; unabhängig von der Stundenanzahl --> als die Sollarbeitszeit lt. AZM, dann zieht das AZM; anderenfalls der Wert als <addOn>false</addOn> <!-- addOn = true bedeutet dass diese Regel zusätzliche Werte zu etwaigen anderen Regeln auslöst; also Obergrenzeweitere -->Regeln durchlaufen werden; addOn Regeln müssen üblicherweise über <minWorkday>false</minWorkday> <!-- alterantiv zu "true" kann auch hier ein Stundenwert angegeben werden; es zieht nicht-addOn Regeln stehen --> <maxWorkday>false</maxWorkday> <!-- alternativ zu "true" kann hier auch ein Stundenwert angegeben werden; jw.ist der größere Wert; beigrößer einem Konflikt mit maxWorkday, hat maxWorkday den als die Sollarbeitszeit lt. AZM, dann zieht das Vorrang --> AZM; anderenfalls der Wert als <matchingWT>001</matchingWT> <tasktype>Montage,Installation</tasktype> <!-- Einschränkung der Regel auf einen oder mehrere (Komma getrennt) Obergrenze --> <minWorkday>false</minWorkday> <!-- alterantiv zu "true" kann auch hier ein Stundenwert angegeben werden; es zieht Aufgabenarten --> </ruleSet> </timeSliceModel> jw. |
Um alle Sonderzeiten pauschal auch ohne Abschluss für die Berechnung heranzuziehen:
...
Code Block | ||
---|---|---|
| ||
<acceptAllUnconfirmedSonderzeit>true</acceptAllUnconfirmedSonderzeit> |
Wochentage
Für den <dayOfWeek>
-Tag sind folgende Werte zulässig:
...
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-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
...
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
...
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
...
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.
...
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:
|
Wochentage
Für den <dayOfWeek>
-Tag sind folgende Werte zulässig:
Deutsch | Englisch | Beschreibung |
---|---|---|
|
| Regel zieht für jeden Tag |
|
| Nur Montage |
|
| Nur Dienstage |
|
| Nur Mittwoche |
|
| Nur Donnerstage |
|
| Nur Freitage |
|
| Montag bis inkl. Donnerstag |
|
| Montag bis inkl. Freitag |
|
| Montag bis inkl. Samstag |
|
| Samstag |
|
| Sonn- und Feiertage |
|
| Nur Sonntage wenn kein Feiertag |
|
| Jeder Feiertag |
|
| Regel zieht für den 24.12. sowie 31.12. |
|
| Regel zieht für Feiertage an einem Samstag |
|
| 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 |
---|---|
| Arbeit an einem Termin |
| Arbeitszeit (d.h. zwischen Tagesbeginn-Buchung und Tagesende-Buchung) die nicht auf einem Termin gearbeitet wird (work) |
| Fahrzeit, entweder als Fahrer (kleines Lenkrad-Symbol das an einen Fußball erinnert) bzw. Beifahrer |
| Wenn die Fahrt- und Arbeitszeiten gleich geregelt sind, können diese in einer Regel zusammengefasst werden. Aktivzeiten gehören einzeln geregelt! |
| Zeit auf einer Sonderzeit; die Sonderzeit ist in dem Fall in einem Tag anzugeben. Bsp.:
|
| Gebuchte Bereitschaften werden von dieser Regel erfasst. Optional kann die Regel auf eine bestimmte Art von Bereitschaft eingeschränkt werden. Bsp.:
|
| 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 |
---|---|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| 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. |
|
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 | |
---|---|---|
|
| wie bei allen Attributen in der Zeitscheibe werden auch hier Mitarbeiter-OptionParameter vorab durch die Werte des jw. MA ersetzt |
|
| 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. |
|
(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 https://regex101.com/ austesten.
(Achtung: Groß-Kleinschreibung beachten!)
Beispiel
Code Block | ||
---|---|---|
| ||
<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> |