Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
breakoutModewide
languagexml
 <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
languagexml
<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:

Code Block
languagexml
<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-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

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

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

{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 https://regex101.com/ austesten.

(Achtung: Groß-Kleinschreibung beachten!)

Beispiel

Code Block
languagejson
  <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>