Versions Compared

Key

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

Beispiel:

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>
        <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:

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.

...

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>