Ferienguthaben auf der Lohnabrechnung
Hallo zusammen, wir haben eine etwas komplexere Einrichtung für die Darstellung der Ferienguthaben auf der Lohnabrechnung entwickelt, damit diese wie gewünscht angezeigt werden.
Vorgehensweise in CashCtrl:
1. Lohnkonfiguration öffnen:
Unter Einstellungen die Lohnkonfiguration aufrufen.
2. Neue Summe erstellen:
o Summe «9800» mit dem Namen Ferienguthaben anlegen.
o Variable: $Ferienguthaben
o Option Als Spalte im Lohnartenstamm aktivieren.
3. Neue Lohnarten erfassen:
a. Nr. 8000 – Ferienguthaben pro Jahr
o Berechnung: $FerienguthabenJahrErfasst
o Variable: $FerienguthabenJahr
o Summe: Nur «Ferienguthaben» aktivieren
o Feld: Neues Zahlenfeld «Ferienguthaben pro Jahr» mit Variable $FerienguthabenJahrErfasst
b. Nr. 8100 – Ferienbezug aktueller Monat
o Berechnung: 0-$FerienbezugEingabe
o Variable: $Ferienbezug
o Summe: Nur «Ferienguthaben» aktivieren
o Feld: Neues Zahlenfeld «Ferienbezug aktueller Monat» mit Variable $FerienbezugEingabe
c. Nr. 8150 – Feriensaldo anfangs Monat
o Berechnung:
if (!$FerienguthabenJahr) {return $FerienguthabenCuml-$Ferienbezug}
else { return $FerienguthabenCuml-$Ferienbezug-$FerienguthabenJahr}
o Variable: $FerienSaldoAnfang
o Summe: Keine aktivieren
o Vorberechnung: «Ferienguthaben kumuliert» mit Berechnung cuml.$Ferienguthaben und mit Variable $FerienguthabenCuml
d. Nr. 8200 – aktueller Feriensaldo
o Berechnung: $FerienguthabenCumlEnd
o Variable: $FerienSaldoEnde
o Summe: Keine aktivieren
o Vorberechnung: «Feriensaldo Ende» mit Berechnung cuml.$Ferienguthaben und mit Variable $FerienguthabenCumlEnd
4. Lohnabrechnung anpassen:
o Im Bearbeitungsmodus der Lohnabrechnung die vier neuen Lohnarten hinzufügen (ohne Werteingabe).
o Diese Lohnarten bleiben dauerhaft in jeder Lohnabrechnung, auch wenn sie im aktuellen Monat nicht verwendet werden.
Erfassung der Werte:
• In der ersten Lohnabrechnung des Jahres wird bei der Lohnart «8000 Ferienguthaben pro Jahr» das gesamte Ferienguthaben in Tagen für das aktuelle Jahr eingetragen.
• Bei Ferienbezug im Monat wird bei der Lohnart «8100 Ferienbezug aktueller Monat» die Anzahl bezogener Ferientage erfasst.
Darstellung auf der Lohnabrechnung:
• In der Ansicht der Lohnabrechnung über die drei Punkte beim Layout das aktuelle Layout kopieren und umbenennen.
• Im Reiter HTML/CSS die Lohntabelle auswählen und den HTML-Code durch den folgenden Code ersetzen.
<table class="items $itemsCls">
<tr>
<th class="description">$i18n.description2</th>
#if ($displayBase) <th class="base right">$i18n.base</th> #end
#if ($displayQuantity) <th class="quantity right">$i18n.quantity</th> #end
#if ($displayRate) <th class="rate right">$i18n.rate</th> #end
<th class="amount right">$i18n.amount $currency</th>
</tr>
#set($labelBeg = "Feriensaldo anfangs Monat")
#set($labelCurr = "aktueller Feriensaldo")
#set($labelAnchSrc = "Ferienbezug aktueller Monat")
#set($labelYearSrc = "Ferienguthaben pro Jahr")
#set($labelAnchOut = "- Ferienbezug aktueller Monat")
#set($labelYearOut = "+ Ferienguthaben aktuelles Jahr")
#set($begNorm = $labelBeg.toString().trim().toLowerCase())
#set($currNorm = $labelCurr.toString().trim().toLowerCase())
#set($anchNorm = $labelAnchSrc.toString().trim().toLowerCase())
#set($yearNorm = $labelYearSrc.toString().trim().toLowerCase())
#set($begAmount = "0.00")
#set($currAmount = "0.00")
#set($anchAmount = "0.00")
#set($yearAmount = "") ## leer = nicht gefunden; sonst amount (z. B. 25)
#foreach($it in $items)
#set($rowNorm = "")
#if ($it.rowName)
#set($rowNorm = $it.rowName.toString().trim().toLowerCase())
#end
#if ($begAmount == "0.00" and ($rowNorm == $begNorm or $rowNorm.contains($begNorm)))
#set($begAmount = $it.amount)
#end
#if ($currAmount == "0.00" and $rowNorm == $currNorm)
#set($currAmount = $it.amount)
#end
#if ($anchAmount == "0.00" and ($rowNorm == $anchNorm or $rowNorm.contains($anchNorm)))
#set($anchAmount = $it.amount)
#end
#if ($yearAmount == "" and ($rowNorm == $yearNorm or $rowNorm.contains($yearNorm)))
#set($yearAmount = $it.amount)
#end
#end
<!-- DEBUG: beg="$!begAmount" | year="$!yearAmount" | anch="$!anchAmount" | curr="$!currAmount" -->
#foreach($item in $items)
#set($rowNorm = "")
#if ($item.rowName)
#set($rowNorm = $item.rowName.toString().trim().toLowerCase())
#end
#set($isBeg = ($rowNorm == $begNorm or $rowNorm.contains($begNorm)))
#set($isCurr = ($rowNorm == $currNorm))
#set($isAnch = ($rowNorm == $anchNorm or $rowNorm.contains($anchNorm)))
#set($isYear = ($rowNorm == $yearNorm or $rowNorm.contains($yearNorm)))
#if ($isBeg or $isCurr or $isAnch or $isYear)
#else
<tr class="item $!item.rowCls">
<td class="row-name">
#if ($displayNr and !$item.isSum) $item.number #end
$item.rowName
</td>
#if ($displayBase) <td class="base right">$!item.base</td> #end
#if ($displayQuantity) <td class="quantity right">$!item.quantity</td> #end
#if ($displayRate) <td class="rate right">$!item.rate</td> #end
<td class="amount right">$!item.amount</td>
</tr>
#if ($item.description)
<tr class="description">
<td colspan="$itemFullColspan">$!item.description</td>
</tr>
#end
#end
#end
</table>
#set($vacCols = 2) ## Bezeichnung + Amount
#if ($displayBase) #set($vacCols = $vacCols + 1) #end
#if ($displayQuantity) #set($vacCols = $vacCols + 1) #end
#if ($displayRate) #set($vacCols = $vacCols + 1) #end
<table class="items $itemsCls" style="width:50%; margin-left:0;">
<tr class="separator vacation-header">
<td colspan="$vacCols"
class="row-name"
style="padding-left:6px; text-align:left; font-weight:bold;">
<br/><br/><br/><br/>Ferienguthaben
</td>
</tr>
<tr>
<th class="description" style="text-align:left;">Bezeichnung</th>
<th class="amount right" style="text-align:right;">Tage</th>
</tr>
<tr class="item">
<td class="row-name">$labelBeg</td>
<td class="amount right" style="text-align:right;">$!begAmount</td>
</tr>
#if ($yearAmount != "")
<tr class="item">
<td class="row-name">$labelYearOut</td>
<td class="amount right" style="text-align:right;">$!yearAmount</td>
</tr>
#end
<tr class="item">
<td class="row-name">$labelAnchOut</td>
<td class="amount right" style="text-align:right;">$!anchAmount</td>
</tr>
<tr class="item total-row">
<td class="row-name">$labelCurr</td>
<td class="amount right" style="text-align:right;">$!currAmount</td>
</tr>
</table>
• Layout speichern und in der Lohnabrechnungsansicht auswählen.
Nun wird das Ferienguthaben auf der Lohnabrechnung übersichtlich dargestellt:
• Feriensaldo anfangs Monat
• Ferienbezug aktueller Monat
• Aktueller Feriensaldo