Inhaltsverzeichnis
Lohnartenstamm
Wird ein neuer Mandant eröffnet, ist der Lohnartenstamm des Mandanten leer wenn beim Mandant initialisieren keine Lohnarten initialisiert wurden.
Durch die Funktionen "übernehmen" und "kopieren" werden Lohnarten aus dem Stammlohnartenstamm - als Mandant 99 gekennzeichnet und nur in der Baumstruktur sichtbar - in den aktuellen Lohnartenstamm übernommen. Die Lohnarten des Mandanten sind anschliessend sowohl über die Listenansicht als auch über die Baumstruktur anwählbar.
Im Grid werden folgende Werte einer Lohnart angezeigt:
Lohnarten-Nr. Bezeichnung Status Soll Haben
LAW-Code Auszahlungsbetrag BFS-Code BVG-Berechnung BVG-Faktor
Tab Lohnart
Feldbezeichnung |
Bedeutung |
---|---|
Lohnarten-Nr. |
Lohnarten-Nummer: "theoretisch" alphanumerisch, siehe nachfolgende Bemerkung |
Status |
Aktiv / Inaktiv |
Stamm-Lohnart |
ü unveränderte (übernommene) Lohnart aus den Stamm-Lohnarten |
Bezeichnung |
Name der Lohnart im Programm (auf Lohnabrechnung: Bezeichnung Resultat) |
Zuordnung |
Einordnung in den Strukturbaum |
LAW-Code |
Für jede Lohnart, die auf dem Lohnausweis auszugeben ist, muss eine Zahl eingesetzt werden. Es können für mehrere Lohnarten dieselbe Ziffer eingesetzt werden. |
LAW-Text |
Auf dem Lohnausweis muss bei diversen Ziffern die Art, aus denen sich der Betrag der entsprechenden Zeile zusammensetzt, genauer angegeben werden. Dafür ist der Lohnausweistext. |
Ansatz |
Ansatz Teil, siehe nachfolgende Bemerkungen |
Faktor |
Faktor Teil, siehe nachfolgende Bemerkungen |
Resultat |
Resultat Teil, siehe nachfolgende Bemerkungen |
buchungswirksam |
ü beim Erfassen der Lohndaten können Veränderungen an den Konten resp. Kostenstellen vorgenommen werden (Zusammenhang mit Kontierung) Die Lohndaten dürfen in diesem Fall bei übersteuerten Daten nur pro Monat erfasst werden. |
Fibukontierung |
ü Auslösen eines Buchungssatzes |
Personalstamm |
ü für die Kontierung werden die im Tab Organisation (Stammdaten/ Personenstamm) eingetragenen Konten verwendet |
Endung |
ü die im Personenstamm eingetragenen Konti werden mit der eingetragenen Endung ergänzt (zusammengesetztes Konto) |
Steuerwirksam |
ü Kennzeichnung einer Lohnart auf die Mehrwertsteuer abgerechnet wird |
|
Combobox zur Auswahl des Mehrwertsteuersatzes |
|
Es werden nur Brutto-Steuerdatensätze angezeigt. Die Anwendung unterstützt nur diese Variante. |
Kostenrechnungs-Verteilung |
ü Kostenrechnung wird aktiviert |
Personalstamm (ohne Fibukonto) |
ü im Tab Organisation (Stammdaten/ Personalstamm) wird die erfasste Kostenstelle unter der Verteilungsart "ohne Fibukonto verwendet |
(mit Fibukonto) |
ü im Tab Organisation (Stammdaten/ Personalstamm) wird die erfasste Kostenstelle unter der Verteilungsart "mit Fibukonto verwendet |
Allgemein |
ohne Link auf Personalstamm, |
Bezugsgruppe |
Combobox zur Auswahl der Bezugsgruppe |
Übersetzung
Mit dem Button Weltkugel kann das Resultat des Lohnartentextes übersetzt werden.
Übernehmen, Kopieren, Neu
Wie oben erwähnt, werden zum Aufbau eines Lohnartenstamms 3 verschiedene Varianten zur Verfügung gestellt:
Übernehmen: Die übernommene Lohnart verweist auf eine Stammlohnart, dies hat zur Konsequenz, dass einige Werte dieser Lohnart nicht verändert werden können. Diese unveränderbaren Felder werden in den einzelnen Tabs grau angezeigt. Insbesondere ist die für diese Lohnart hinterlegte Formel nicht veränderbar.
Kopieren: Die kopierte Lohnart ist eine eigenständige Kopie der Stammlohnart und kann in allen Werten verändert werden.
Neu: Eine Lohnart kann von Grund auf neu aufgebaut werden.
Lohnarten in den Bereichen AHV/ALV, NBU sind zu übernehmen. Für die Art der Aufnahme der übrigen Lohnarten sind die kundenspezifischen Anforderungen massgebend, in der Regel werden diese Lohnarten kopiert, um eine maximale Flexibilität zu erhalten.
Es wird empfohlen, folgende Lohnarten zu übernehmen:
6000 AHV / IV / EO – Beitrag
6075 AHV-Nichtpflichtig
6080 AHV-Freibetrag
6085 AHV-Nicht-Pflicht-Spezial
6090 Aufrechnung AHV / ALV
6100 ALV-Beitrag 1
6110 ALV-Beitrag 2
6200 NBUV-Beitrag AN
8000 AHV / IV / EO – Beitrag AG
8100 ALV-Beitrag 1 AG
8110 ALV-Beitrag 2 AG
8200 BU / NBUV-Beitrag AG
Muss eine neue Anforderung mit einer Lohnart erfasst werden, empfiehlt es sich, eine möglichst ähnliche Lohnart aus dem Stammlohnartenstamm zu kopieren und sie entsprechend anzupassen.
Lohnausweiscode und Lohnausweistext
Damit der Lohnausweis korrekt ausgedruckt werden kann, müssen entsprechende Konventionen eingehalten werden. Diese Bedingungen sind im Kapitel Ansicht – Teilkapitel Lohnausweis detailliert aufgeführt. Die Erfassung dieser Werte kann auch erst unmittelbar vor der Erstellung des Lohnausweises durchgeführt werden.
Lohnartenteile
Jede Lohnart besteht im Wesentlichen aus den 3 Teilen Faktor (z. B. Anzahl Stunden), Ansatz (z. B. Stundenansatz) und Resultat (errechneter Stundenlohn). Die Teile Faktor und Ansatz können jeweils die folgende Typisierung aufweisen:
Konstant: keine manuelle Eingabe für diesen Teil
Fest: manuelle Eingabe in den festen Lohndaten (z. B. Stundenansatz in Fr.)
Variabel: manuelle Eingabe in den variablen Lohndaten (z. B. Anzahl Stunden)
Steuerwirksam
Es werden folgende Steuerarten unterstützt: Vorsteuer, Mehrwertsteuer und Pauschalmehrwertsteuer.
Kontierung
Die Kontierung verläuft in verschiedenen Stufen.
Stufe 1: Grundsätzlich wird durch die entsprechende Checkbox entschieden, ob eine Lohnart kontiert wird (z. B. Monatslohn) oder nicht (z. B. Ferien).
Stufe 2: Wird die Lohnart kontiert, muss ein Soll- und Habenkonto erfasst werden. Mit dieser Kontierung wird eine Lohnart kontiert, falls keine der nachfolgenden Stufen aktiviert wird.
Stufe 3: In den Mitarbeiterlohnarten kann die einer Person zugeteilten Lohnart neu kontiert werden. Diese Kontierung gilt nur für diese Person und den festgelegten Zeitraum.
Stufe 4: Wird bei einer Lohnart die Checkbox Personalstamm aktiviert, hat dies zur Folge, dass die Lohnart mit den Eingaben im Personalstamm (Tab Organisation) kontiert wird.
Stufe 5: Wird das Flag "buchungswirksam" beim Ansatz oder Faktor der Lohnart-Teile gesetzt, kann beim Lohndaten erfassen die Kontierung übersteuert werden. In diesem Fall müssen jedoch die Lohndaten pro Monat erfasst werden.
Lohnartensortierung für Lohndatenerfassung
Über diesen Button kann die Sortierung der Lohnarten definiert werden. Diese Sortierung gilt für die Dialoge "Lohndaten erfassen". Die praktische Anwendung liegt darin, dass bei vielen zugeteilten Lohnarten die Häufigsten (Bsp. Ferienlohnart) oben angezeigt werden.
Tab Parameter
In diesem Tab werden die zur Berechnung und Präsentation (Lohnabrechnung) relevanten Werte erfasst. Es werden hier einige genauer erläutert:
Feldbezeichnung |
Bedeutung |
---|---|
Grundtyp |
Abzug, Zulage |
Grundgruppe |
Lohnart ist der Person oder einer Pflichtigkeit zugeordnet |
Auszahlungsbetrag |
siehe nachfolgende Bemerkungen |
Berechnungstyp |
Abhängigkeit |
BerechnungsNr |
siehe nachfolgende Bemerkungen |
Beschäft.-Grad |
Berücksichtigung des Beschäftigungsgrades |
Pro Rata |
Soll Lohnart Pro Rata gekürzt werden (Ein-/Austritt) |
Basisbezug |
siehe nachfolgende Bemerkungen |
Resultat-Ausgabe |
Wie soll das Resultat auf der Lohnabrechnung präsentiert werden. |
Ansatz-Ausgabe |
Wie soll der Ansatzteil auf der Lohnabrechnung präsentiert werden. |
Faktor-Ausgabe |
Wie soll der Faktorteil auf der Lohnabrechnung präsentiert werden. |
Lohnlauf |
Bestimmung in welchen Lohnläufen die Lohnart gerechnet werden soll. |
BVG-Berechnung |
Bestimmung ob Beträge auf dieser Lohnart relevant sind für die Berechnung des BVG-Jahreslohnes, und zwar mit dem alten Jahreswert oder mit dem Betrag im neuen Jahr und dem entsprechenden Faktor |
Faktor |
Falls im Feld BVG-Berechnung „voraussichtliche Betrachtung“ gewählt ist, muss definiert werden, wie oft z.B. ein Monatslohn multipliziert werden soll (*12 oder *13) um den Jahreslohn zu errechnen. |
Report |
Standardreport |
Reportgruppe |
In welcher Reportgruppe auf der Lohnabrechnung soll die Lohnart präsentiert werden. |
Bemerkungen
Ferien -> Nein,
Berechnungslohnarten -> Nein
Berechnungstyp: Hier wird festgelegt in welcher Reihenfolge die Resultate der Lohnarten innerhalb eines Lohnlaufs berechnet werden.
1. Stufe: Lohnart unabhängig
-> werden zuerst berechnet
2. Stufe: Lohnart abhängig
-> bauen auf unabhängigen Lohnarten auf
3. Stufe: Lohnbasis abhängig
-> benutzen vollständig erfasste Basiswerte
4. Stufe: Lohnbasis komplex abhängig
-> letzte Berechnungsstufe
Berechnungsnr: Innerhalb der obigen Gruppen kann (sofern nötig) eine Feingliederung vorgenommen werden. Es gilt: Je höher die Nummer, je später wird die Lohnart innerhalb dieser Gruppe berechnet.
Basisbezug: Für Lohnarten (z. B. ALV-Beitrag AN, ALV-Beitrag AG), die bei der Berechnung auf eine analoge Basis (ALV-Basis, ALV-Lohn) zugreifen, muss hier diese Zuordnung vorgenommen werden, um mit weiteren Funktionen Berechnungen durchführen zu können.
Nachfolgend eine Checkliste:
6000 AHV -> AHV-Basis
6100 ALV-Beitrag -> ALV-Basis (ALV1-Basis)
6110 ALVZ-Beitrag -> ALVZ-Basis (ALV2-Basis)
6200 NBU-Beitrag -> UVG-Basis
6300 KTG-Versicherungs-Beitrag -> KTG1-Basis
6320 KK-Versicherungs-Beitrag -> KK-Basis
6500 BVG-Beitrag AN -> BVG-Basis
6530 BVG-Risikobeitrag -> BVG-Risiko-Basis
8000 AHV Beitrag AG -> AHV-Lohn
8100 ALV-Beitrag AG -> ALV-Lohn (ALV1-Lohn)
8110 ALVZ-Beitrag AG -> ALVZ-Lohn (ALV2-Lohn)
8200 BU/NBU-Beitrag AG -> UVG-Lohn
8300 KTG-Vers.-Beitrag AG -> KTG1-Lohn
Tab Basenzuteilung
Hier wird festgelegt welche Lohnarten-Resultate in eine Basis hineinfliessen, um anschliessend als Berechnungsgrundlage verwendet zu werden (z. B. Stundenlohn, Überstunden in AHV-Basis / Kilometerentschädigung nicht in AHV-Basis). Die Auswahl aller Basen (Status aktiv im Basisstamm) werden links, die für eine Lohnart massgebenden Basen werden rechts dargestellt.
Es können mehrere Lohnarten gleichzeitig markiert werden, um mehrere Lohnbasen auf einmal zuteilen zu können.
Im Basisstamm (Registerkarte Lohnstammdaten / Gruppe Stammdaten / Lohnbasenstamm) können eigene Basen erfasst werden.
Feldbezeichnung |
Bedeutung |
---|---|
Basen |
vorhandene Basen |
zugeteilte Basen |
Lohnart läuft in die zugeteilten Basen |
Gültig von/ bis |
Gültigkeitsdauer |
Tab Lohnartenformel
In diesem Dialog wird die Formel für eine Lohnart programmiert. Die Schaltfläche Standard (zuerst muss die Schaltfläche Bearbeiten angeklickt werden) definiert aufgrund der Eingaben in den Lohnartenteilen im Tab Lohnart eine (einfache) Vorschlagsformel, die entsprechend verfeinert werden kann.
Handelt es sich um eine komplexere Formel wird via die Schaltfläche Programm in einen Texteditor (Bearbeitungen analog der Bearbeitung im Notepad) verzweigt, wo die Formel programmiert werden kann.
Das Startdatum, bzw. Enddatum einer Formel ist auf den ersten, bzw. letzten Tag des Monats zu legen.
Wichtige Hilfsmittel zur Programmierung von Lohnarten stellen Konstanten und Tabellen dar. Der Zugriff auf diese Strukturen ist im Kapitel Lohnartenprogrammierung erläutert.
Feldbezeichnung |
Bedeutung |
---|---|
Beschreibung |
Beschreibung der Formel |
Gültig von/ bis |
Gültigkeitsdauer der Formel (immer 1., bzw. letzter Tag des Monats) |
Ansatzteil |
Anzeige eines Ausschnitts des Formelteils Ansatz |
Faktorteil |
Anzeige eines Ausschnitts des Formelteils Faktor |
Resultatteil |
Anzeige eines Ausschnitts des Formelteils Resultat |
Standard |
Standardformel aufgrund der Typen des Ansatz- und Faktorteils |
Programm |
Formeleditor |
Spezielle Lohnarten und Lohnartenformeln
LA-Nr. |
Besonderheiten |
Formeldat. |
Basisbezug |
---|---|---|---|
1100 |
Stundenlohn |
|
|
4500 |
Kinderzulage Mit 3 Lohnarten und den jeweiligen Kantonstabellen wird die gesamte Problematik der Kinder-/Ausbildungszulagen (Zusatzbeträge für Anzahl Kinder, Maximalbeträge, Reduktion bei Teilzeit, …) gelöst. |
30.05.2001 |
|
4510 |
Kinderzulage Grundberäge Siehe LA-Nr. 4500 Kinderzulage |
15.08.2002 |
|
4600 |
Ausbildungszulage Siehe LA-Nr. 4500 Kinderzulage |
15.08.2002 |
|
6000 |
AHV-Beitrag AN - Jahreslöhner Eintritt / Pensionierung unterjährig - Unterstützung Jahreslohn Diese Lohnart berechnet den AHV-Abzug einer Person in Abhängigkeit seines Alters, des Geschlechts und unter Berücksichtigung des entsprechenden AHV-Freibetrags (Voraussetzung: korrekte Lohnartenzuteilung in der Pflichtigkeit AHV/ALV-Pflicht, siehe nachfolgendes Kapitel). |
21.08.2013 24.08.2011 |
AHV_BAS |
6100 |
ALV-Beitrag AN (ALV1-Beitrag) - Bei Nachzahlung im Folgejahr Höchstgrenze des Austrittsjahres berücksichtigen - Unterstützung Jahreslohn Diese Lohnarten berechnen die entsprechenden Abzüge unter Berücksichtigung des Alters und des Geschlechts sowie der entsprechenden Höchstgrenzen der Person automatisch (Voraussetzung: korrekte Lohnartenzuteilung in der Pflichtigkeit AHV/ALV-Pflicht, siehe nachfolgendes Kapitel). Die ALV-Beiträge werden jeweils monatlich ausgeglichen (dynamische Methode). |
17.09.2014 24.08.2011 |
ALV1_BAS |
6110 |
ALVZ-Beitrag AN (ALV2-Beitrag) Siehe LA-Nr. 6100 ALV-Beitrag |
17.09.2014 24.08.2011 |
ALV2_BAS |
6200 |
NBUV-Beitrag AN - Bei Nachzahlung im Folgejahr Höchstgrenze des Austrittsjahres berücksichtigen - Unterstützung Jahreslohn - Unterstützung der UVG-Codes A,B,C,D,E,Z Variante: Aufteilung der NBU Beiträge auch nach UVG-Code A, B oder Z. 1. Aktivierung über eine Konstante Code UVG_NBU_CODE_SPLITTING 2. Konstanten erfassen für NBU-%-Werte nach A/B/Z und Aufteilung nach Männern und Frauen Code UVG_AN_NBU_M_A Code UVG_AN_NBU_M_B Code UVG_AN_NBU_M_Z Code UVG_AN_NBU_F_A Code UVG_AN_NBU_F_B Code UVG_AN_NBU_F_Z Nur Konstanten erfassen, welche benötigt werden. 3. Nach dem Einrichten zur Kontrolle Testberechnungen durchführen. |
17.09.2014 24.08.2011 |
UVG_BAS |
6300 |
KTG-Vers.-Beitrag AN - Bei Nachzahlung im Folgejahr Höchstgrenze des Austrittsjahres berücksichtigen - Unterstützung Jahreslohn |
17.09.2014 24.08.2011 |
KTG_1_BAS |
6320 |
KK-Vers.-Beitrag AN |
01.02.2000 |
KK_BAS |
6500 |
BVG-Beitrag AN |
06.05.2003 |
BVG_BAS |
6530 |
BVG-Risikobeitrag AN |
20.04.1999 |
BVGR_BAS |
8000 |
AHV-Beitrag AG Siehe LA-Nr. 6000 AHV-Beitrag AN |
28.10.2008 |
AHV_LOHN |
8100 |
ALV-Beitrag AG (ALV1-Beitrag) Siehe LA-Nr. 6100 ALV-Beitrag AN |
28.10.2008 |
ALV1_LOHN |
8110 |
ALVZ-Beitrag AG (ALV2-Beitrag) Siehe LA-Nr. 6110 ALVZ-Beitrag AN |
28.10.2008 |
ALV2_LOHN |
8200 |
BU/NBU-Beitrag AG Siehe LA-Nr. 6200 NBUV-Beitrag AN |
29.09.2010 |
UVG_LOHN |
8300 |
KTG-Vers.-Beitrag AG Siehe LA-Nr. 6300 KTG-Vers.-Beitrag AN |
28.10.2008 |
KTG_1_LOHN |
QST Lohnarten 2021
Lohnart |
Typ |
Beschreibung |
Monatsmodell |
Jahresmodell |
---|---|---|---|---|
QST-AT-CH |
Zuweisungslohnart |
Mit dieser Lohnart werden die Arbeitstage in der Schweiz erfasst. Dem Mitarbeiter muss diese Lohnart zugewiesen werden, wenn der Mitarbeiter auch im Ausland beschäftigt ist. |
X |
X |
QST-AT-EFF |
Zuweisungslohnart |
Diese Lohnart ermittelt automatisch für jeden Lohnlauf die effektiven Arbeitstage in der Schweiz. Dem Mitarbeiter muss diese Lohnart zugewiesen werden, wenn der Mitarbeiter auch im Ausland beschäftigt ist. |
X |
X |
QST-AUSGL |
Berechnungslohnart |
Berechnet den Ausgleichsbetrag für das Jahresmodell. |
|
X |
QST-BETRAG |
Berechnungslohnart |
Quellensteuerbetrag |
X (QST-Lohn X QST-Satz) |
X (QST Lohn kumul. X QST Satz aktueller Monat) – QST Betrag Vormonat |
QST-LOHN |
Berechnungslohnart |
Total aller quellensteuerpflichtigen Lohnarten des aktuellen Monats, keine Berücksichtigung von früheren Monaten |
X |
X |
QST-SB-LOJ |
Berechnungslohnart |
Satzbestimmenden Jahreseinkommen |
|
X |
QST-SB-LOH |
Berechnungslohnart |
Satzbestimmenden Monatseinkommen |
X (QST SB periodisch / SV Tage) X QST Tage) + QST SB aperiodisch |
X QST SB Lohn Jahr / 12 |
QST-SB-PER |
Berechnungslohnart |
Total aller regelmässigen Einkünfte im aktuellen Monat. Falls mehrere Beschäftigungen vorhanden: Ergebnis dividiert durch BG und multipliziert mit BG-Total. |
X |
X
|
QST-TAGE |
Berechnungslohnart |
Anzahl Quellensteuertage |
X (Total pro Monat immer 30 Tage) |
X (Total pro Jahr immer 360 Tage) |
SV-TAGE |
Berechnungslohnart |
Anzahl Sozialversicherungstage im aktuellen Monat. |
X |
X |
Pflichtigkeiten
Pflichtigkeiten Allgemein
Feldbezeichnung |
Bedeutung |
---|---|
Code |
Relevant für Listen und ELM siehe auch Kapitel Pflichtigkeiten - ELM |
Status |
Aktiv/Inaktiv |
Pflichtigkeit |
Name der Pflichtigkeit |
Beschreibung |
Beschreibender Text |
Institution |
Zugehörige Institution |
Versicherungscode |
2-Stelliges Zeichen à Zwingend zu erfassen für UVGZ, KTG und BVG. Wird von der Versicherung mitgeteilt. Diese Info wird auf den Jahreslisten und in der XML-Datei vom ELM angedruckt. 1. Zeichen = Personengruppe / 2. Zeichen = Kategorie |
Lohnart |
Lohnart zu Pflichtigkeit zuteilen |
Gültig von/ bis |
Gültigkeitsdauer |
Mit Pflichtigkeiten werden (meist) gesetzliche Vorgaben, die keine manuelle Erfassung von Daten erfordern, sondern auf Lohnbasen oder bereits gerechneten Resultaten basieren, abgebildet. Dabei besteht eine Pflichtigkeit meist aus einem Set von Lohnarten, die, falls diese Pflichtigkeit im Personalstamm einer Person zugeteilt wurde, alle automatisch ablaufen. Ein typisches Beispiel dafür ist die AHV/ALV-Pflichtigkeit.
Damit eine Lohnart einer Pflichtigkeit zugeordnet werden kann, muss sie im Lohnartenstamm entsprechend definiert werden (Tab Parameter: Grundgruppe = Pflichtigkeit zugeteilt oder Firma zugeteilt).
In der Praxis ist es nicht immer einfach zu entscheiden, ob Lohnarten, welche keine manuelle Eingabe erfordern, via Pflichtigkeit oder direkt (Lohnartenzuteilung) der Person zugeteilt werden sollen. Diese Problematik stellt sich beispielsweise bei den Lohnarten Kinder-/Ausbildungszulagen (vergleiche oben), die durchaus auch zu einer Pflichtigkeit zusammengefasst werden können (Voraussetzungen beachten!).
Siehe auch Kapitel: Pflichtigkeiten - ELM
UVG-Pflicht
Die UVG-Pflicht wird mit den Lohnarten 6200 und 8200 abgedeckt.
Diese Formeln decken die UVG-Codes A0 bis A3, B0 bisB3 und Z0 bis Z3 ab, vorausgesetzt die entsprechenden Konstantenwerte sind erfasst.
Jede Person muss die UVG-Pflicht zugeteilt haben. Falls die Person nicht UVG-Versichert ist, wird im Personalstamm bei Tab Anstellung im Bereich Beschäftigung ein UVG-Code A0, B0 oder Z0 hinterlegt.
AHV/ALV-Pflichtigkeit
Die AHV/ALV-Pflicht sollte in der Regel folgende Lohnarten (gemäss Stamm) umfassen:
AHV-Beitrag 6000
AHV-Nichtpflichtig 6075
AHV-Freibetrag 6080
ALV-Beitrag (ALV1-Beitrag) 6100
ALVZ-Beitrag (ALV2-Beitrag) 6110
AHV Beitrag AG 8000
AHV-VK-Beitrag AG 8010
FAK Beitrag 8020
ALV-Beitrag AG (ALV1-Beitrag AG) 8100
ALVZ-Beitrag AG (ALV2-Beitrag AG) 8110
Jede Person hat normalerweise die AHV/ALV-Pflicht zugeteilt. Ausnahmen sind Spezialfälle.
Siehe Z-AHV-Nichtpflicht-Spezial-Pflichtigkeit
Z-AHV-Nichtpflicht-Spezial-Pflichtigkeit
AHV-Nichtpflicht-Spezial Lohnart 6085
Die Lohnart AHV-Nichtpflicht-Spezial braucht es nur in ganz wenigen Fällen. Sie darf NICHT der normalen AHV/ALV-Pflichtigkeit zugeteilt werden. Wenn eine Person die Z-AHV-Nichtpflicht-Spezial-Pflichtigkeit braucht, darf die normale AHV/ALV-Pflichtigkeit nicht derselben Person zugewiesen sein.
Anwendung: Die Z-AHV-Nichtpflicht-Spezial-Pflichtigkeit kommt zur Anwendung, wenn eine Person ein Abkommen hat, dass sie keine AHV bezahlen muss.
Dieser Person muss die Z-AHV-Nichtpflicht-Spezial-Pflichtigkeit zugeteilt sein. Die AHV/ALV-Pflicht darf nicht zugeteilt sein.
AHV-Nebenerwerb
Die Definition des AHV-Nebenerwerbs kann in folgendem Merkblatt der AHV nachgelesen werden:
2.04 - Beiträge an die AHV, die IV, die EO und die ALV auf geringfügigen Löhnen
www.ahv-iv.ch/p/2.04.d
Für den AHV-Nebenerwerb gibt es im Standard nicht eine automatisierte Lösung. Wird eine automatisierte Lösung benötigt, bitte beim PM Personal melden.
Damit bei der Liste "AHV-freie Personen" und im ELM die Lohnsummen des AHV-Nebenerwerbs (nur beim Einsatz der automatisierten, kostenpflichtigen Lösung) angezeigt werden, muss die Konstante "AHV_NE_LOHNART" erfasst werden. Der Wert der Konstante entspricht der Nummer der AHV-Nebenerwerbslohnart.
Konstanten Konstantenwerte
Code |
Name |
Gruppe |
Typ |
Wert |
Einheit |
Gültig von |
bis |
---|---|---|---|---|---|---|---|
AHV_NE_LOHNART |
AHV-Nebenerwerb-Lohnart |
AHV/ALV |
Text |
6001 à richtige Nummer der Lohnart hinterlegen |
LA |
01.01.2000 |
00.00.0000 |
QST-Pflicht 21
Dem QST-pflichtigen Mitarbeiter muss ab 1. Januar 2021 zwingend die Pflichtigkeit "QST-Pflicht 21" im Personalstamm zugewiesen werden, damit beim Lohnlauf die Quellensteuer berechnet wird.
Die Pflichtigkeit "QST-Pflicht 21" ist im Dialog Pflichtigkeiten erfasst. Dieser Pflichtigkeit werden alle QST-relevanten Berechnungslohnarten zugewiesen:
-
QST-BETRAG – QST-Betrag
-
QST-LOHN – QST-Lohn
-
QST-SB-LOH – QST-SB-Lohn
-
QST-SB-LOJ – QST-SB-Lohn Jahr
-
QST-SB-PER – QST-SB-Periodisch
-
SV-TAGE – SV-Tage
Pflichtigkeiten in Personalstamm
Sobald die Pflichtigkeiten korrekt erfasst sind, können sie den Personen im Personalstamm entsprechend zugeordnet werden. (Siehe auch Kapitel Pflichtigkeiten)
Massenmutation für Erstzuweisung ist möglich.
Lohnbasenstamm
Feldbezeichnung |
Bedeutung |
---|---|
Basiscode |
Code für Zugriff durch den Formelgenerator |
Basisname |
Name der Basis |
Beschreibung |
Beschreibender Text |
Zeiteinheit |
Basisbemessungseinheit (z. B. Tage) |
Status |
Aktiv / Inaktiv |
Einheit |
Einheit der Werte in der Basis (z. B. Fr., Std.) |
Anspruchsbasis |
Anspruchbasen erscheinen unter Registerkarte Person / Gruppe Person / Stammdaten / Tab Basisanspruch. |
Basis für Bezugsgruppe |
Diese Basen dienen als Grundlage für Bezugsbuchungen und können Lohnarten zugewiesen werden für eine weitere Variante von Kostenrechnungsbuchungen. |
Lohnbasen, die als "Basis für Bezugsgruppe" dienen und im Lohnartenstamm verwendet werden, können nicht gelöscht werden.
Lohnbasen für QST 2021
Statische Lohnbasen
Alle Quellensteuerberechnung relevante Lohnbasen sind ab dem 01.01.2021 mit dem Präfix „QST-“ erfasst.
Lohnbase |
Beschreibung |
Monatsmodell |
Jahresmodell |
---|---|---|---|
QST-SB-Periodisch |
Bezugsgruppe für die Lohnart "QST-SB-PER" |
|
|
QST-SB-Aperiodisch |
Bezugsgruppe für die aperiodischen/unregelmässigen Lohnarten. Also Lohnleistungen die der Mitarbeiter nicht regelmässig bekommt. |
|
|
QST-PFL-JAHR |
Bezugsgruppe für die Lohnleistungen wie 13. Monatslohn, Bonus usw. |
|
|
QST-PFL-VJAHR |
Bezugsgruppe für die Lohnleistungen im Vorjahr |
|
|
QST-SB-Lohn |
|
QST-SB-periodisch dividiert durch SV Tage und multipliziert mit 30 Tagen (QST-Tage) und QST-SB 13. Monatslohn sowie QST-SB aperiodisch addiert |
QST-SB-Lohn-Jahr durch 12 dividieren |
Nachzahlung Austrittsmonat |
Leistungsanspruch mit dem Austritt |
|
|
Nachzahlung Auszahlungsmonat |
Leistungsanspruch nach dem Austritt |
|
|
Dynamische Lohnbasen
Eine QST-LOHN Base (QST-LOHN-A0) wird pro Tarifcode benötigt. Damit man diese nicht immer manuell erfassen muss, werden sie beim Tarifwechsel automatisch erstellt. Diese Lohnbasen werden ebenfalls im Dialog Lohnbasenstamm angezeigt.
Lohnbase |
Beschreibung |
Monatsmodell |
Jahresmodell |
---|---|---|---|
QST-SATZ |
Der anhand des QST-SB-Lohnes und des anwendbaren QST-Tarifcodes ermittelte Prozentsatz gemäss kantonalem QST-Tarif |
X |
X |
QST-TOT_Tarifcode |
|
Total aller QST-Beträge des aktuellen Monats |
QST-AUSGL-tarifcode + QST-BETRAG_tarifode |
QST-BETRAG_Tarifcode |
QST-BETRAG-Tarifcode ist Betrag für den aktiven Tarifcode |
|
|
QST-LOHN_Tarifcode |
QST-LOHN-Tarifcode beinhaltet steuerbarer Lohn pro Monat und Tarif. Bsp. QST-LOHN-A0 |
|
|
QST-Ausgleich_Tarifcode |
QST-Lohn-kumul. des entsprechenden QST-Tarifcodes multipliziert mit dem für die QST-Tarifcodes der Vormonate mit dem aktuell ermittelten QST-SB-Lohn eruierten QST-Satz abzüglich QST-Betrag-kumul. des Vormonates des entsprechenden QST-Tarifcodes |
|
X (QST-AUSGL-tarifcode ist Ausgleich pro code und Monat) |
Lohnartenset
In diversen Bereichen von Infoniqa ONE 200 Personal wird mit Lohnartensets gearbeitet. Über diesen Menüpunkt können diese erfasst und verwaltet werden. Die Sets werden z.B. in Lohnartenzuteilung, ELM, ISEL, freie Lohnartenliste, Quellensteuerabrechnung, usw. benötigt.
Lohnartenset |
Bedeutung |
---|---|
¤ Lohnartenset für Auswertungen ¡ Lohnartenset für Lohnartenzuteilung |
Wird ein Set neu erstellt, muss gewählt werden, ob es sich um ein Set für die Lohnartenzuteilung handelt oder eines für Auswertungen/Gruppierungen. Bei einem bestehenden Set kann im Nachhinein die Option "Auswertungen" oder "Lohnartenzuteilung" nicht mehr verändert werden. |
Lohnartenset |
Auswahl eines bestehenden Sets |
Name |
Bezeichnung des Lohnartensets |
Code |
Je nach Verwendung ist ein bestimmter Code Vorgeschrieben. Z.B. in ELM, ISEL, freie Lohnartenliste, Quellensteuerabrechnung, …) |
Lohnarten |
Flag oben gesetzt bei "LA-Set für Auswertungen" Flag oben gesetzt bei "LA-Set für Lohnartenzuteilung" |
Zugeteilte Lohnarten |
Lohnarten die diesem Set zugeteilt sind. |
Im Linken Bereich "Lohnarten" die gewünschten Lohnarten markiert (mit gedrückter Ctrl-Taste zusätzliche Lohnarten markieren) und über Zuteilen in "Zugeteilte Lohnarten" verschieben.
QST-Tarife einlesen
Registerkarte Lohnstammdaten / Gruppe Stammdaten / QST-Tarife einlesen
Ein Dialog, um QST-Tabellen einzulesen. Die QST-Dateien können über den Link (Schritt 1) direkt aus dem Internet geholt werden. Die abgelegten ZIP-Files können danach direkt über den Button „Einlesen“ ausgewählt werden, und so eingelesen werden.
Die Internetadresse ist hinterlegt unter:
Infoniqa ONE 200 Schaltfläche, Einstellungen / Personal-Tab 2/2 / Feld Quellensteuer
Beispiel:
In der Quellensteuertabelle sind die Tarife von 2019 und 2020 gespeichert. Es müssen neuen Tarife, die ab 01.05.2021 gültig sind, eingelesen werden.
Beim Einlesen der neuen Quellensteuertarife werden die von 2019 gelöscht, die von 2020 mit einem Bis-Datum von 30.04.2021 abgeschlossen und die neuen Tarife mit dem Von-Datum von 01.05.2021 in die Quellensteuertabelle geschrieben.
KIZ-Tabellen einlesen
Dialog, um die Kinder- und Ausbildungszulagen-Tabellen einzulesen.
Über [Download] gelangt man zur Website der Infoniqa Switzerland Software and Services AG, auf der die aktuell gültigen Kinderzulagentabellen für Infoniqa ONE 200 Personal zur Verfügung gestellt werden.
(Die Internetadresse ist hinterlegt unter:
Infoniqa ONE 200 Schaltfläche, Einstellungen / Personal-Tab 2/2 / Feld Kinderzulagen)
Die gewünschten Dateien (einzelnen Kantone oder ganze Schweiz) werden angeklickt und lokal auf dem PC abgespeichert. Die abgelegten ZIP-Files können danach direkt über den Button [Einlesen] ausgewählt und so eingelesen werden.
Weiter Informationen zu den Kinderzulagen findet man unter Prozess Kinderzulagen
Lohnarten Update
Die Lohnartenformel der Quellensteuer-Lohnarten wird bei einem Upgrade in eine höhere Version nicht automatisch aktualisiert.
Die Aktualisierung der Lohnartenformel muss manuell auf der Datenbank mit der Funktion «ps_upd_qst» für die Mandanten vorgenommen werden. Hier muss darauf geachtet werden, dass die Funktion mit dem User Infoniqa ONE 200admin oder mit einem User mit den entsprechenden Rechten ausgeführt wird.
Update-Aufruf: exec ps_upd_qst @mandidin = `AA`
Nach der Aktualisierung wird die alte Formel mit einem Enddatum abgeschlossen und die neue Formel mit einem Startdatum eingefügt.
Auswerten (Gruppe Stammdaten)
Stammblatt Lohnart
Mit dieser Liste werden die Einstellungen sowie die Lohnformeln der ausgewählten Lohnarten angezeigt.
Stammblatt Lohnart |
Bedeutung |
---|---|
Lohnart |
Lohnart von / Lohnart bis |
Datum |
Stichdatum für Lohnbasen (Als Default wird das aktuelle Datum abgefüllt) |
Lohnformel |
þ Lohnformel wird angezeigt o Lohnformel wird nicht angezeigt |
Lohnarten Firma
Lohnarten Firma |
Bedeutung |
---|---|
Lohnarten |
Lohnart von / Lohnart bis |
Lohnbasen Firma
Lohnbasen Firma |
Bedeutung |
---|---|
Status |
inaktiv, aktiv, alle |
|
Unter Lohnbasis erfassen (Registerkarte Lohnstammdaten / Gruppe Stammdaten / Lohnbasenstamm ) wird das Statusfeld (aktiv, inaktiv) bei der Anzeige berücksichtigt. |
Zugeteilte Lohnbasen
Kontrollblatt Zugeteilte Lohnbasen |
Bedeutung |
---|---|
Stichdatum |
|
Bezugsgruppe einrichten
Mit der Bezugsgruppe hat man die Möglichkeit die KST/KTR-Verteilung bei den Arbeitgeber-Sozialkosten nach gleichem Verhältnis wie bei den Erfassungsdaten zu verteilen.
-> 50% KST Verwaltung und 50% KST Administration (Buchungsplan)
-> 40 Std. auf KST Lager (Erfassung via Übersteuerung in Lohndaten)
Lohnart |
|
Wert |
---|---|---|
1000 -Stundenlohn |
100 Std. à 30.00 |
Fr.3'000.00 |
8000 -AHV AG |
|
Fr.151.50 |
KST - Verteilung der |
AHV AG |
Wert 151.50 |
---|---|---|
Lager |
40 Std. à 30.00 * 5.05 % |
Fr.60.60 |
Verwaltung |
50 % von 90.90 |
Fr.45.45 |
Administration |
50 % von 90.90 |
Fr.45.45 |
Voraussetzungen
Standardmässig ist diese Option nicht aktiviert. Damit diese KST-Verbuchungsvariante benutzt werden kann, muss eine entsprechende Parametrisierung in den Konstanten, Lohnarten und Lohnbasen vorgenommen werden. Ebenfalls ist der Detaillierungsgrad entsprechend zu definieren (z.B. Sinn oder Unsinn Verteilung nach Bezugsgruppe der Lohnart 8010 - Verwaltungskosten AHV AG; im Rappenbereich?)
Installation / Benutzung
Aktivierung über Konstante BUCH_GRUPPEN
Feldbezeichnung |
Bedeutung |
---|---|
Code |
BUCH_GRUPPEN |
Name |
Aktivierung Bezugsgruppe |
Gruppe |
Firma |
Typ |
Zahl |
Wert |
1 1 = Option Buchungsgruppe aktiv |
Einheit |
Code |
Gültig von |
gültiges Datum |
Gültig bis |
gültiges Datum |
Erstellen der Bezugsbasis
Erstellen einer neuen Basis. Diese dient als Grundlage für den Verteilungsschlüssel. Alle Lohnarten, welche für den Verteilschlüssel relevant sind müssen in diese Basis fliessen.
Lohnbasenstamm
Basiscode |
Status |
Basisname |
Einheit |
Beschreibung |
Zeiteinheit |
Anspruchsbas. |
---|---|---|---|---|---|---|
BEZUGS_BAS |
Aktiv |
BEZUGS-Basis |
CHF |
Bezugsbasis |
Tage |
leer |
Anwählen: Basis für Bezugsgruppe (vormals Kontierungsbasis)
Als "Basis für Bezugsgruppe" kann auch eine bestehende Lohnbasis verwendet werden. Wir empfehlen jedoch eine eigene Basis zu eröffnen (BEZUGS_BAS).
In der Regel muss man allen Erfolgswirksamen Konten die Bezugsbasis zuteilen, da ansonsten keine Verteilung vorgenommen werden kann und dies somit zu Buchungsfehlern führt!
Bezugsbasis den Verteilungs-Lohnarten zuteilen
Registerkarte Lohnstammdaten / Stammdaten / Lohnartenstamm / Tab Basenzuteilung
Alle Lohnarten, welche für den Verteilschlüssel relevant sind müssen diese Bezugsbasis zugeteilt haben.
-
Alle benötigten Lohnarten markieren (z.B. Monatslohn, Stundenlohn, Provision, 13. Monatslohn, Wegentschädigung, usw. Nach Definition der Firma)
-
Bezugsbasis im linken Bereich markieren
-
Gewünschtes Datum von: [ ] eingeben (z.B. 01.01.2009)
-
Bezugsbasis über [ > ] zuweisen.
Kontrollmöglichkeit über die Liste Registerkarte Lohnstammdaten / Stammdaten / Auswerten / Zugeteilte Lohnbasen
KORE-Kontierung nach Bezugsgruppe
Bei den Sozialkostenlohnarten des Arbeitgebers kann nun die KORE-Verteilung nach Bezugsgruppe hinterlegt werden.
Bitte überlegen Sie sich im vornherein welche Lohnarten aktiviert werden sollen, bei Lohnarten mit kleinen Beträgen lohnt es sich nicht Rappen-Buchungen zu generieren (z.B. FAK-Beitrag AG).
-
Gewünschte AG-Lohnart anwählen
-
Im Bereich der KORE-Kontierung das Flag bei Bezugsgruppe þ aktivieren und rechts davon die Bezugsbasis auswählen.
-
[ Speichern ]
-
Schritt 1 bis 3 für entsprechende Lohnarten wiederholen.
Fehlende Grundlage für Bezugsgruppenbuchungen
Gibt es in der Firma die Konstellation, dass in einem Lohnlauf keine Lohnarten verwendet werden, welche in die Bezugsbasis fliessen, also die Grundlage für die Erstellung der Bezugsgruppen-buchungen fehlt, müssen Hilfslohnarten eingerichtet werden.
Die Lohnarten können beim PM Personal angefordert werden. (Lösung funktioniert auch bei Mehrfachlohnlauf)
Folgende Fehlermeldung erschein im Fehlerprotokoll "Lohnbuchungen" bei dieser Konstellation: Es fehlen Basisbuchungen, um entsprechende Bezugsgruppenbuchungen zu erstellen.
Lohnartenprogrammierung
Die Sprache richtet sich im Allgemeinen nach der C-Syntax.
Sie wurde mit lohnspezifischen Funktionen erweitert.
Wichtige Unterschiede: Zuordnung mit := (anstelle des C-Standards = )
Operator ungleich: <> (anstelle des C-Standards != )
Kein Case – Statement
Logische Verknüpfungen mit AND und OR (anstelle des C-Standards || und &&)
Ablaufstrukturen
IF ..THEN ... ELSE
IF Bedingung THEN Anweisung(en) ELSE Anweisung(en) END;
if a = 100 if x <> 0
then then
a:= a + 10; x := 0;
else end;
a:= a - 10;
end;
FOR .. DO
FOR Start TO Ende STEP Schrittgrösse DO Anweisung END;
for i:= 1 to 5 step 1 do
a:= 2 * a;
end;
WHILE .. DO
WHILE Bedingung DO Anweisung END; while a > b do
b:= b + 1;
end;
Programmierung
Variablen
Variablen, Konstanten und Strukturen können an beliebiger Stelle im Programm definiert werden. Sie sind nur innerhalb des definierten Blocks sichtbar. Es findet keine Typenüberprüfung statt.
Es sind sprechende Namen für die Variablen zu verwenden (Bsp. : alter, suvacode)
var count := 1;
const pi := 3.14;
struct abc {a, b, c}
abc test;
Arithmetische Funktionen
wie gewohnt: z. B.: ((2+3)-1)*6/2
Es gilt die Regel Punkt vor Strich, im Zweifelsfall Klammern verwenden!
Funktionen und Prozeduren
Funktionen und Prozeduren müssen vor ihrem Aufruf beschrieben sein.
Die Argumente müssen nicht beschrieben sein. Der Aufruf von Argumenten mit Referenz erfolgt durch *.
Kommentare
Kommentare müssen mit // gekennzeichnet werden.
Das schrittweise auskommentieren ist eine Möglichkeit Syntaxfehler schneller ausfindig zu machen.
Return
Jede Prozedur hat einen Rückgabewert. Dieser wird mit dem Befehl Return Resultat zurückgegeben.
Innerhalb einer Funktion kann an mehreren Stellen ein Return gesetzt werden. Dies bewirkt, dass keine weitere Anweisung in dieser Prozedur mehr ausgeführt wird.
; als Zeilenabschlusszeichen
Jede Programmzeile ist mit einem «;» abzuschliessen (Ausnahmen: Funktionen, Ablaufstrukturen (Bsp. if then else)
Gross-/Kleinschreibung
Grundsätzlich wird keine Unterscheidung zwischen Gross und Kleinschreibung gemacht.
Darstellung
Die Darstellung (Bsp. Anzahl Leerzeichen) zu Beginn einer Zeile spielen keine Rolle, im Gegenteil, konsequentes "Einrücken" bei Ablaufstrukturen erhöht die Lesbarkeit und damit die Wartbarkeit des Programms sehr stark.
Programmbeispiel in Infoniqa ONE 200 Personal
Feldbezeichnung |
Bedeutung |
---|---|
function getbase() |
Funktion getbase à Diese Funktion liefert den Ansatzteil, der je nach Steuerung im Tab Parameter entsprechend angezeigt wird. |
var a; |
Angabe der benutzten Variablen mit dem Schlüsselwort var. |
a := |
Der Variable a wird das Resultat von READBASE() |
//@BASE |
Spezieller Kommentar: Alles was sich zwischen //@BASE und //@END befindet wird in der Programmübersicht im Ansatzteil angezeigt |
READBASE() |
Funktion READBASE à holt manuell erfassten Ansatzwert dieser Lohnart |
//@END |
Abschluss des dargestellten Programmteils in der Programmübersicht |
; |
Abschluss der Zeile READBASE() |
return a; |
Der Wert a wird an die aufrufende Funktion zurückgegeben. |
end; |
Abschluss der Funktion mit end; |
function getfactor() |
Funktion getfactor à Diese Funktion liefert den Faktorteil, der je nach Steuerung im Tab Parameter entsprechend angezeigt wird. |
var f, anzahl; |
Angabe der benutzten Variablen (durch Komma getrennt) |
//@FACTOR |
|
anzahl:=READFACTOR(); |
Funktion READFACTOR à holt manuell erfassten Faktorwert dieser Lohnart |
if anzahl < 5 |
Falls der erfasste Faktorwert kleiner als 5 ist, |
if anzahl < 10 |
Falls der erfasste Faktorwert kleiner als 10 (logischerweise grösser = 4 ist) |
//@END |
|
return f; |
Die Funktion wird mit dem zugeteilten Wert ( 2 oder 3) verlassen |
end; |
Abschluss der Funktion |
function result() |
Funktion result à Diese Funktion liefert den Resultatteil |
var b, base, factor; |
Angabe der benutzten Variablen (durch Komma getrennt) |
base := getbase(); |
Der Variable base wird das Resultat der Funktion getbase zugeordnet |
factor:=getfactor(); |
Der Variable factor wird das Resultat der Funktion getfactor zugeordnet |
b := |
Der Variable b wird ... |
//@RESULT |
|
base * factor |
das Produkt der Variablen base * factor zugeordnet |
//@END |
|
; |
|
return b; |
Das Resultat wird über die Variable b ans Hauptprogramm zurückgegeben |
end; |
Abschluss der Funktion result; |
proc main() |
Beginn Hauptprogramm (angepasst auf Bedürfnisse Infoniqa ONE 200 Personal) |
end; |
Ende des Hauptprogramms |
Funktionen Lohnartenprogrammierung
Datentypen
Decimal Dezimalzahl Ausgabe im Resultat möglich
Int Ganzzahl Ausgabe im Resultat möglich
String Zeichenkette Keine Ausgabe im Resultat möglich (Weiterverarbeitung in Funktion nötig)
Date Datum Keine Ausgabe im Resultat möglich (Weiterverarbeitung in Funktion nötig)
Funktionen
Liste aller Funktionen
1. Zugriff auf Übergabeparameter |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
readbase() --> (decimal) manuell erfasster Ansatzwert einer Lohnart bezüglich der aktuellen Periode |
b := readbase(); |
|
Spezialfall Nachzahlung: Falls der Ansatz als Fest definiert ist, wird der Wert aus der Austrittsperiode geholt. |
readfactor() --> (decimal) manuell erfasster Faktorwert einer Lohnart bezüglich der aktuellen Periode |
f := readfactor(); |
|
Spezialfall Nachzahlung: Falls der Faktor als Fest definiert ist, wird der Wert aus der Austrittsperiode geholt. |
readpersid() --> (int) (interne DB-) Personal-ID einer Person |
---- |
|
Es handelt sich hier nicht um die Personalnummer. |
readperid() --> (int) aktuelle Abrechnungsperioden-ID des Lohnlaufs |
|
à einfachere Funktionen unter: 6. Funktionen zur aktuellen Periode |
Zusammensetzung Abrechnungsperiode: YYYYTTEEE à 199812001 |
readlartid() --> (int) (interne DB-) Lohnarten-ID einer Lohnart |
--- |
|
Rückgabewert: Es handelt sich hier nicht um die Lohnartennummer. |
readlolatyp() --> (int) Art des Lohnlauftyps |
if readlolatyp() = 4 then b := 0; end; |
Falls es sich um eine Nachzahlung handelt wird der errechnete Betrag auf 0 gesetzt. (Bsp. Lohnart konstant – konstant) |
1 = Normaler Lohnlauf 2 = Eintrittslohnlauf 3 = Austritt 4 = Nachzahlung |
countlola(int, int) --> (int) Anzahl definitiver Lohnläufe in der entspr. Periode (YYYY120MM) und des Lohnlauftyps (à Bemerkung) |
if countlola(readperid(), -1) >= 1 then b := 0; end; |
Falls in der aktuellen Periode bereits mindestens 1 definitiver Lohnlauf gerechnet wurde, wird der Betrag auf 0 gesetzt (Bsp. Lohnart K / K und einmalige Berechnung) |
Eingabewerte (2. Parameter): -1 = gemäss Feld Lohnlauf im Tab Parameter 0 = Normallohnlauf (Feld Lohnlauf in Param.) 1 = Speziallohnlauf (Feld Lohnlauf in Param.) 2 = Normal- und Speziallohnlauf (Feld Lohnl.) |
isnachzahlung()--> (bool) Gibt true zurück, wenn der Lohnlauf ist eine Nachyahlung |
|
Gleich wie readlolatyp() = 4 Eine Abkürzung für Formeln welche mit Nachzahlung arbeiten. |
|
isaustrittnachzahlung() -> (bool) Gibt true zurück, wenn in Nachzahlung nur Austrittsmonat-Leistungen sind |
|
Wenn true sind in der Abrechnungsperiode nur Austrittsmonat Leistungen vorhanden Wenn false sind in der Abrechnungsperiode keine Austrittsmonat vorhanden |
Wenn beide Austritts- und Auszahlungs-Monat Leistungen vorhanden sind, generiert die Funktion eine Ausnahme. |
2. Funktionen zu Datum |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
now() --> (date) Aktuelles System Datum |
|
|
|
diffday(date, date) --> (int) Anzahl Tage zwischen 2 Daten Bedingung D1 <= D2 |
|
|
|
diffmonth(date, date) --> (int) Anzahl Monate zwischen 2 Daten Bedingung D1 <= D2 |
|
|
|
dateyyyy(date) --> (int) Jahr eines Datums |
|
|
|
datemm(date) --> (int) Monate eines Datums |
|
|
|
datedd(date) --> (int) Tage eines Datums |
|
|
|
addday(date, Tage) --> (date) Addition von Tage zu einem Datum |
|
|
|
subday(date, Tage) --> (date) Subtraktion von Tage von einem Datum |
|
|
|
Aufruf in Formelgenerator DATE("28.02.1998")
Vergleich von Daten via getdiffday(…)!
3. Funktionen zu Zahlen |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
trunc(decimal) --> (decimal) Abschneiden der Nachkommastellen |
b := base * factor; b := trunc(b); |
b := 127.56 b := 127.0 |
Das Argument muss zwingend eine Dezimalzahl sein, dies kann wie folgt sichergestellt werden: b := b * 1.0; b := trunc(b) |
absolut(decimal) --> (decimal) Absolutwert |
b := absolut(b) |
absolut (-21.7) = 21.7 absolut (21.7) = 21.7 |
siehe Bemerkungen zu trunc() |
round(decimal, int, int) Runden eines Wertes auf Stellen und Genauigkeit (5=kaufm., 0=dezimal) |
b := base * factor b := round(b, 0, 5) |
round(34.729,2,5) = 34.75 kaufmänn. 2 St. round(34.729,2,0) = 34.73 dezimal 2 Stellen round(12.85, 0, 0) = 13.00 Ganzzahl |
Achtung: Die Rundung des Resultats kann durch Pro Rata oder BG-Abhängigkeit wieder verändert werden. siehe Bemerkungen zu trunc() |
ltoa(int) -->String Eine Zahl vom Typ Ganzzahl in einen String konvertieren |
|
|
Eventuell im Zusammenhang mit addstring |
ltod(int) --> (decimal) Eine Zahl vom Typ Ganzzahl in eine Zahl des Typen Dezimalzahl konvertieren |
tabval('PK', ltod(persage()), 1.0) |
Der Befehl tabval verlangt als Parameter eine Dezimalzahl, persage() liefert eine Ganzzahl, daher muss konvertiert werden. |
|
dtol(decimal) --> (int) Eine Zahl vom Typ Dezimal in eine Zahl des Typen Ganzzahl konvertieren |
|
|
|
atol(String) --> (int) Eine Zahl vom Typ String wird in eine Zahl vom Typ Ganzzahl konvertiert |
atol(addstring('19', '99')) |
Die Zeichenketten 19 und 99 werden zusammengesetzt und in die Zahl 1999 umgewandelt. |
Achtung: Ausschliesslich für Ganzzahlen String verwenden |
4. Funktionen zu String |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
substring (String, int, int) --> (String) Bildung eines Teilstrings. Die beiden ganzzahligen Werte geben die Von-Stelle, bzw.Bis-Stelle an. |
substring('WALTER', 2, 5) substring(perssuvacode(),2,2) |
ab Stelle 2 bis 5: 'ALTE' 2. Teil des Suvacodes einer Person (0,1,2,3) |
|
addstring(String, String) --> (String) 2 Strings zu einem String zusammenhängen |
addstring('W', 'ALTER') |
'WALTER' |
|
5. Mandanten /Geschäftsjahr/Lohnjahr |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
mandant() --> (String) Holt aktuellen Mandanten |
|
|
|
6. Funktionen zur aktuellen Periode |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
|||
---|---|---|---|---|---|---|
perdatefrom() --> (date) Anfangsdatum Abrechnungsperiode |
|
|
|
|||
perdateto() --> (date) Enddatum Abrechnungsperiode |
|
|
Bei der Funktion "perszfwert" hat es ein Beispiel wo diese Funktion eingebunden ist. |
|||
peryear() --> (int) Jahr der aktuellen Perioden |
|
|
|
|||
permonth() --> (int) Anzahl Monate seit Beginn Kalenderjahr (inkl. aktuelle Periode) |
if permonth() = 12 then .... |
Falls der aktuelle Monat Dezember, dann ...
|
Auslösung der Zahlung des 13. Monatslohn |
|||
perperdayeff() -->(dezimal) Anzahl Tage der aktuellen Abrechnungsperiode |
|
|
|
|||
perperdaybas() --> (int) Anzahl Bemessungs-Tage der Abrechnungsperiode |
|
|
|
|||
convfromsimper(int)--> (int) Konvertierung von Infoniqa ONE 200-Periode in Format JJJJMM |
convfromsimper(199912009) |
Konvertierung von JJJJTTEEE zu JJJJMM Ergebnis Beispiel: 199909 (Sept. 1999) |
|
|||
convtosimper(int)--> (int) Konvertierung von Format JJJJMM in Infoniqa ONE 200-Periode |
convfromsimper(199909) |
Konvertierung von JJJJMM zu JJJJTTEEE Ergebnis Beispiel: 199912009 |
|
|||
addtosimper(int, int)--> (int) Addieren/(subtrahieren) von Perioden zu einer Ausgangsperiode |
addtosimper(199912009, 1) addtosimper(199912009, -1) addtosimper(readperid(), -12) |
Ergebnis: 199912008 Ergebnis: 199912010 Ergebnis: gleiche Periode des Vojahres |
|
|||
pernachz() à (int) Austrittsperiode bei Nachzahlung |
|
Für Nachzahlung Berechnungen welche in Austrittsmonat zugreifen |
|
|||
issameyearnachz() -> (bool) Gibt true zurück wenn Nachzahlung in gleichem Jahr wie Austritt passiert |
Abrechnungsperiode 2021-08 Austrittsperiode 2021-06
Abrechnungsperiode 2021-12 Austrittsperiode 2022-01
|
Ergebnis: true
Ergebnis: false |
|
|||
perdateto_or_out() --> (date) Enddatum Abrechnungsperiode oder Austrittsdatum wenn während Abrechnungsperiode |
|
|
Ab V2021 SP2/ V2020 SP6 |
|||
periodedadd (int, int) --> (int) Addiert n Monate zu Periode und gibt das Resultat zurück |
periodeadd(202112012, 1) = 202212001 periodeadd(202112001, -2) = 202012011
|
Vereinfacht die Arithmetik mit Abrechnungsperioden, Inkrement usw. |
Ab V2022 SP2/ V2021 SP6 |
7. Funktionen zu erfassten Lohndatenpositionen (MLD) |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
mldval(String, int) --> (dezimal) manuell erfasster Ansatzwert / Faktorwert einer Lohnart in der aktuellen Abrechnungsperiode |
mldval('1100', 0) |
(Kumulierte) erfasste Stunden der Lohnart Stundenlohn (Nr 1100) in der aktuellen Abrechnungsperiode |
Typ 0 = Faktor 1 = Ansatz Diese Lohnart muss noch nicht gerechnet sein. |
mldvalper(String, int, String) --> (dezimal) manuell erfasster Ansatzwert / Faktorwert einer Lohnart in der angegebenen Periode |
mldvalper('1100', 0, '200611') |
(Kumulierte) erfasste Stunden der Lohnart Stundenlohn (Nr 1100) in der Periode November 2006 |
ab Version 2006.1 Typ 0 = Faktor 1 = Ansatz Diese Lohnart muss noch nicht gerechnet sein. |
8. Funktionen zu Abrechnungsposition/ Auszahlung |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
laresult(String) --> (dezimal) Resultat einer Lohnart (Abrechnungsposition) |
laresult('1100') |
Resultat der Lohnart Stundenlohn: 2400.00
|
Voraussetzung: Die Bezugslohnart muss bereits gerechnet sein. |
laresultper(String, int) --> (dezimal) Resultat einer Lohnart in einer Periode (Format Infoniqa ONE 200-Periode) |
laresultper('1100', 199912001) |
Resultat der Lohnart Stundenlohn (1100) im Januar 1999 |
Voraussetzung: Die Bezugslohnart muss bereits gerechnet sein. Gut kombinierbar mit addtosimper() ! |
laresultexact(String) --> (dezimal) Exaktes, ungerundestes, 4-stelliges Resultat einer Lohnart |
laresultexact('1100') |
4-stelliges Resultat der Lohnart Stundenlohn (1100) |
Voraussetzung: Die Bezugslohnart muss bereits gerechnet sein.
|
laresultexactper (String, int) --> (dez) Exaktes, ungerundetes, 4-stelliges Resultat einer Lohnart einer Periode |
laresultexactper('1100',199912001) |
4-stelliges Resultat der Lohnart Stundenlohn (1100) im Januar 1999 |
Voraussetzung: Die Bezugslohnart muss bereits gerechnet sein. Gut kombinierbar mit addtosimper() ! |
labase(String) --> (dezimal) Erfasster Ansatzwert einer Lohnart |
labase('1100') |
Stundenansatz: 20.00 |
Voraussetzung: Die Bezugslohnart muss bereits gerechnet sein. |
labaseper(String, int) --> (dezimal) Erfasster Ansatzwert einer Lohnart in einer Periode (Infoniqa ONE 200-Periode) |
labaseper('1100', 199912001) |
Stundenansatz im Januar 1999 |
Voraussetzung: Die Bezugslohnart muss bereits gerechnet sein. Gut kombinierbar mit addtosimper() ! |
lafactor(String) --> (dezimal) Erfasster Faktorwert einer Lohnart |
lafactor('1100') |
Anzahl Stunden: 120.00 |
Voraussetzung: Die Bezugslohnart muss bereits gerechnet sein. |
lafactorper(String, int) --> (dezimal) Erfasster Faktorwert einer Lohnart in einer Periode (Infoniqa ONE 200-Periode) |
lafactorper('1100', 199912001) |
Anzahl Stunden im Januar 1999 |
Voraussetzung: Die Bezugslohnart muss bereits gerechnet sein. Gut kombinierbar mit addtosimper() ! |
laresbase(String) --> (decimal) Errechneter Ansatzwert einer Lohnart (Abrechnungsposition) |
laresbase('1100') |
|
Voraussetzung: Die Bezugslohnart muss bereits gerechnet sein. |
laresbaseper(String, int) --> (decimal) Errechneter Ansatzwert einer Lohnart (Abrechnungsposition) in einer Periode (Infoniqa ONE 200-Periode) |
laresbaseper('1100', 199912001) |
|
Voraussetzung: Die Bezugslohnart muss bereits gerechnet sein. Gut kombinierbar mit addtosimper() ! |
laresfactor(String) --> (decimal) Errechneter Faktorwert einer Lohnart (Abrechnungsposition) |
laresfactor('1100') |
|
Voraussetzung: Die Bezugslohnart muss bereits gerechnet sein. |
laresfactorper(String, int) --> (decimal) Errechneter Faktorwert einer Lohnart in einer Abrechnungsperiode (Infoniqa ONE 200-Periode) |
laresfactorper('1100', 199912001) |
|
Voraussetzung: Die Bezugslohnart muss bereits gerechnet sein. Gut kombinierbar mit addtosimper() ! |
lakum(String) --> (decimal) kumuliertes Resultat einer Lohnart seit Beginn Kalenderjahr |
lakum('1100') |
|
Resultat inklusive der aktuellen Periode (falls die Bezugslohnart bereits berechnet wurde) |
laresultpp(String)--> (decimal) Resultat einer Lohnart der Vorperiode |
laresultpp('1100') |
|
|
laressaldo()--> (decimal) Saldo aller (bis zu diesem Zeitpunkt gerechneten) Auszahlungslohnarten der akutellen Abrechnungsperiode |
laressaldo() |
|
|
laressaldo(int)--> (decimal) Saldo aller (bis zu diesem Zeitpunkt gerechneten) Auszahlungslohnarten zu einer Periode |
laressaldo(199912001) |
|
|
salarypayout(int)--> (decimal) Auszahlungsbetrag aus einer Vorperiode (Format Infoniqa ONE 200-Periode) |
salarypayout(199912001)
|
Auszahlungsbetrag im Januar 1999 Beispiel 2: salarypayout(addtosimper(readperid(), -1)) Ergebnis: Auszahlungsbetrag Vormonat |
Achtung: Auf den aktuellen Auszahlungsbetrag kann mit dieser Funktion nicht zugegriffen werden (noch nicht bekannt!) à Resultat 0.00. "Lösung" via Funktion: laressaldo() |
lasetresult (string)--> (decimal)
lasetresultper(string, int)--> (decimal) … lasetbase lasetbaseper lasetfactor lasetfactorper lasetresbase lasetresbaseper lasetresfactor lasetresfactorper |
lasetfactor(‘QST-STD-LOHN’) |
Eine Gruppe von Funktionen welche als Parameter einen Lohnartenset-Code nehmen. Sie verhalten sich genau wie Lohnart-orientierte Funktionen, z.B.
lasetfactor vs. lafactor
Sie auswerten die ganze Gruppe, nicht einzelne Lohnart |
Auch wenn hier die ganze Gruppe von Lohnarten ausgewertet wird, ist dem MA typischerweise nur 1 Lohnart zugewiesen. Z.B. kann eine solche Gruppe Stundenlohn relevante LA beinhalten |
9. Funktionen zu Konstantenwert |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
constnum(String) --> (dezimal) Wert numerischer Konstante zur Abrechnungs-Periode |
constnum('AHV_AN') = 5.05 |
|
|
constnump(String, int) --> (dezimal) Wert numerischer Konstante zur bestimmten Abrechnungs-Periode |
constnum('AHV_AN')
ist gleich wie
constnump('AHV_AN', readperiid()) |
|
|
conststring(String) --> (string) Wert Text-Konstante zur Abrechnungs-Periode |
|
|
Achtung: Ein Stringwert kann nicht ausgegeben werden, sondern nur weiterverarbeitet werden |
conststringp(String, int) --> (string) Wert Text-Konstante zur bestimmten Abrechnungs-Periode |
conststring(‘KIZ_LA_4500’)
ist gleich wie
conststringp(‘KIZ_LA_4500’, readperiid())
|
|
Achtung: Ein Stringwert kann nicht ausgegeben werden, sondern nur weiterverarbeitet werden |
constdate(String) --> (date) Wert Datums Konstante zur Abrechnungs-Periode |
|
|
Achtung: Ein Datumswert kann nicht ausgegeben werden, sondern nur weiterverarbeitet werden |
10. Funktionen zu Basiswerten |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
salarybase(String) --> (dezimal) Basiswert der aktuellen Abrechnungsperiode |
|
|
salarybase("AHV_BAS") = 7500.80 |
salarybaseper(String, int) à (dezimal) Basiswert der bestimmten Periode |
salarybaseper(‘QST-SB-PER’, pernachz()) |
Basiswert Periodische Leistungen in Austrittsmonat |
Für Nachzahlung Berechnungen |
salarybasekum(String) --> (dezimal) kumulierte Basiswerte von Beginn Kalenderjahrs bis zur Abrechnungs-periode |
|
|
|
salarybaseval(String) --> (dezimal) Abrechnungsbetrag der Basis bez. Abrechnungsperiode |
|
|
|
salarybasevalkum(String) --> (dezimal) kumulierte Abrechnungsbeträge von Beginn Kalenderjahrs bis zur Abrechnungs-periode |
|
|
|
salarybasebasval(String)-->(dezimal) Ansatz-Abrechnungsbetrag der Basis bez. Abrechnungsperiode |
|
|
Die entsprechende Basis muss im Lohnartenstamm im Tab Parameter über einen Basisbezug abgefüllt worden sein. |
salarybasebasvalkum(String)-->(dez.) kumulierte Ansatz-Abrech.Beträge der Basis von Beginn Kalenderjahrs bis zur Abrechnungsperiode |
|
|
Die entsprechende Basis muss im Lohnartenstamm im Tab Parameter über einen Basisbezug abgefüllt worden sein. |
salarybasebasvalkumpp(Str) --> (dez) kumulierte Ansatz-Abrech.Beträge von Beginn Kalenderjahrs bis zur Periode vor der Abrechnungsperiode. |
|
|
Die entsprechende Basis muss im Lohnartenstamm im Tab Parameter über einen Basisbezug abgefüllt worden sein. |
salarybasebassaldopp(Str,int) ->(dez) kumulierte Ansatz-Abrech.Beträge von Beginn einer Periode (JJJJMM) bis zur Periode vor der Abrechnungsperiode. |
|
|
Die entsprechende Basis muss im Lohnartenstamm im Tab Parameter über einen Basisbezug abgefüllt worden sein. |
salarybasefacval(String) --> (dezimal) Faktor-Abrechnungsbetrag der Basis bez. Abrechnungsperiode |
|
|
Die entsprechende Basis muss im Lohnartenstamm im Tab Parameter über einen Basisbezug abgefüllt worden sein. |
salarybasefacvalkum(String) --> (dez) kumulierte Faktor-Abrech.Beträge von Beginn Kalenderjahrs bis zur Abrechnungsperiode. |
|
|
Die entsprechende Basis muss im Lohnartenstamm im Tab Parameter über einen Basisbezug abgefüllt worden sein. |
salarybasefacvalkumpp(Str.) --> (dez) kumulierte Faktor-Abrech.Beträge von Beginn Kalenderjahrs bis zur Periode vor der Abrechnungsperiode. |
|
|
Die entsprechende Basis muss im Lohnartenstamm im Tab Parameter über einen Basisbezug abgefüllt worden sein. |
salarybasefacsaldopp(Str,int) -> (dez) kumulierte Faktor-Abrech. Beträge von Beginn einer Periode (JJJJMM) bis zur Periode vor der Abrechnungsperiode. |
|
|
Die entsprechende Basis muss im Lohnartenstamm im Tab Parameter über einen Basisbezug abgefüllt worden sein. |
salarybasetime(String) --> (dezimal) Anzahl Basistage der Basis bez. Abrechnungsperiode |
|
|
|
salarybasetimekum(String) --> (dez) kumulierte Basistage des Kalenderjahrs bez.Abrechnungsper |
|
. |
|
salarybasesaldo(String, int) --> (dez) kumulierte Basiswerte von Beginn der eingegebenen Periode (JJJJMM) bis zur Abrechnungsperiode |
salarybasesaldo('D_BAS', 199806) alarybasesaldo('AHV_BAS', dtol(einperiode)) |
1) kumulierter Basiswert seit Juni 1998 2) Bei der Verwendung von Variabeln ist eine Konvertierung (dtol) nötig, falls mit dieser Variablen Berechnungen durchgeführt wurden |
Spezialfall: Eintrittsperiode wird 0 gesetzt salarybasesaldo('D_BAS', 0) è Resultat ist der Saldo dieser Basis!
|
salarybasebassaldo(String, int) -> (dez) kumulierte Ansatz-Abrech.Beträge der Basis von Beginn der eingegebenen Periode bis zur Abrechnungsperiode |
. |
à Erläuterungen/Bemerkungen in salarybasesaldo |
1) Die entsprechende Basis muss im Lohnartenstamm im Tab Parameter über einen Basisbezug abgefüllt worden sein. 2) Saldo mit Eintrittsperiode 0 |
salarybasefacsaldo(String, int) --> (dez) kumulierte Faktor-Abrech.Beträge der Basis von Beginn der eingegebenen Periode (JJJJMM) bis zur aktuellen Abrechnungsperiode |
. |
à Erläuterungen/Bemerkungen in salarybasesaldo |
1) Die entsprechende Basis muss im Lohnartenstamm im Tab Parameter über einen Basisbezug abgefüllt worden sein. 2) Saldo mit Eintrittsperiode 0 |
11. Funktionen zu Personalstamm |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
perssex() --> (int) Geschlecht einer Person |
|
1 = männlich 2 = weiblich |
|
persbirthdat() --> (date) Geburtsdatum einer Person |
|
|
|
perscivil() --> (int) Zivilstand einer Person |
|
Codes gemäss Beilage 2) |
|
perscivildat(string) --> (int) Zivilstand einer Person anhand eines Stichdatums |
perscivildat(’20060914’) |
|
ab Version 2006.1 |
persjubdat() --> (date) Datum Jubiläumsbasis |
|
|
|
persjubtechdat() --> (date) Datum Dienstjahrbasis |
|
|
|
perszulagenkt() --> (int) Zulagen Kanton |
|
Codes gemäss Beilage 1) |
|
perszulagenalleinerz() --> (int) Erziehungstyp für Kinderzulagen |
|
1 = nicht alleinerziehend 2 = alleinerziehend |
|
perszulagenanteil() --> (dezimal) Prozentanteil der Kinderzulagen |
|
|
|
perschildcount(int) -->(int) Anzahl Kinder bezüglich Zulagenart (1=KIZ, 2=AZ, 0 = KIZ + AZ) |
|
|
|
perschildbonus(int, String) -->(dec) Zulagenbetrag bezüglich Zulagenart |
perschildbonus(1, 'KIZ1998_') perschildbonus(-1,'KIZ1998_') |
|
Parameter -1 ab Version 2009.1 verfügbar |
perschildbonuskt(int, String) -->(dec) Zulagenbetrag bez. Zulagenart (1=KIZ, 2=AZ) und Tabellenname |
perschildbonuskt(1, 'KIZ1998_6') |
Zugriff auf KIZ-Betrag Kanton Zürich
|
|
perssalarytyp() --> (int) Beschäftigungs-Lohntyp (4=Jahr, 3=Monat, 2=Tag, 1=Stunden, 0=keine A.) |
|
|
|
perssuvacode() --> (String) Suva-Code |
|
|
|
perssuvacodeperiode(int) --> (String) Suva-Code |
|
Übergabe ist ein Korrekturwert bezüglich der Abrechnungsperiode. Beispiele für Korrekturwerte : 0 = akt. Abrechnungsperiode (z.B. Juli 2006) 1 = ein Monat nach Abrechnungsperiode (August 2006) -1 = ein Monat vor Abrechnungsperiode (Juni 2006) |
|
perssuvachange() --> (Date) Gueltigkeitsdatum (Von) des letzten SUVA-Codes bezüglich der aktuellen Periode |
|
|
|
perspensval() --> (dezimal) Beschäftigungsgrad (zu Basis perspensbase()) |
|
|
|
perspensbase() --> (dezimal) Basis Beschäftigungsgrad |
|
|
|
perspenscheck() --> (int) Lohnlaufabhängigkeit (0=nein, 1=ja) |
|
|
|
persage() --> (int) Alter bezüglich dem Abrechnungs-Periodenende |
|
|
|
persdaybas() --> (int) Anzahl Anwesenheits-Bemessungstage der Abrechnungsperiode |
|
|
|
persdayeff() --> (int) Anzahl effektive Anwesenheitstage der aktuellen Periode |
|
|
|
perskummonthbas() --> (int) Anzahl Anw.-Bemessungsmonate seit Beginn Kalenderjahr (inkl. akt Periode) |
|
|
|
perskumdaybas() --> (int) Anzahl Anw.-Bemessungstage seit Beginn Kalenderjahr (inkl. akt Periode) |
|
|
|
perskumdayeff() --> (int) Anzahl effektive Anwesenheitstage seit Beginn Kalenderjahr (inkl.akt. Periode) |
|
|
|
persbaseval(String)--> (dezimal) Anspruchswert einer Basis bezüglich dem Periodenenddatum |
|
|
|
persbasevalcount(String, int)--> (int) Anzahl Anspruchswert-Datensätze einer Basis in einer Periode (JJJJMM) |
persbasevalcount(‚FER_BEZUG’, 200205) |
à 2 Datensatz 1: 28.04.02 – 05.05.02, Wert 4.25 Datensatz 2: 10.05.02 – 20.05.02, Wert 0.00 |
|
persbasevalvon(String, int, int)--> (date) Von-Datum des gewünschten Anspruchswert-Datensatzes einer Basis in einer Periode (JJJJMM) |
persbasevalvon(‚FER_BEZUG’, 200205, 1) |
à 01.05.2002 |
Falls eine Überschneidung über die Periode vorliegt, wird das Anfangs- bzw. Enddatum der Periode ausgegeben. |
persbasevalbis(String, int, int)--> (date) Bis-Datum des gewünschten Anspruchswert-Datensatzes einer Basis in einer Periode (JJJJMM) |
persbasevalbis(‚FER_BEZUG’, 200205, 2) |
à 20.05.2002 |
Wird eine Datensatz-Nummer eingegeben, die nicht vorhanden ist, wird das Ausgabedatum auf 01.01.1900 gesetzt. |
persbasevalvalue(String, int, int)--> (dezimal) Anspruchswert des gewünschten Datensatzes einer Basis in einer Periode (JJJJMM) |
persbasevalvalue(‚FER_BEZUG’, 200205, 1) |
à 4.25 |
|
perstarifvon(int) à (date) Gültigkeitsdatum (Von) des Tarif-datums bezüglich der aktuellen Periode |
perstarifvon(103) |
Code Tariffunktion 103 = Bibliothekar Falls Tariffunktion nicht im Einsatz à perstarifvon(0) |
! Ab Version 5.0.0 (ohne Übergabewert) Achtung: Ein Datum kann nicht ausgegeben werden, sondern nur weiterverarbeitet. Ab Version 8.0.0 mit Übergabewert. |
perstarifbis(int) à (date) Gültigkeitsdatum (Bis) des Tarif-datums bezüglich der aktuellen Periode |
perstarifbis(103) |
Code Tariffunktion 103 = Bibliothekar Falls Tariffunktion nicht im Einsatz à perstarifvbis(0) |
! Ab Version 5.0.0 (ohne Übergabewert) Achtung: Ein Datum kann nicht ausgegeben werden, sondern nur weiterverarbeitet. Ab Version 8.0.0 mit Übergabewert. |
perstariflolaabh(int) à (int) Lohnlauf Tarifabhänig (1=ja / 0=nein) |
perstariflolaabh(103) |
Code Tariffunktion 103 = Bibliothekar Falls Tariffunktion nicht im Einsatz à perstariflolaabh(0) |
! Ab Version 5.0.0 (ohne Übergabewert) Ab Version 8.0.0 mit Übergabewert. |
perstarifdate(int) à (date) Lohn Tarifdatum |
perstarifdate(103) |
Code Tariffunktion 103 = Bibliothekar Falls Tariffunktion nicht im Einsatz à perstarifdate(0) |
! Ab Version 5.0.0 (ohne Übergabewert) Achtung: Ein Datum kann nicht ausgegeben werden, sondern nur weiterverarbeitet werden. Ab Version 8.0.0 mit Übergabewert. |
perstarifautoerh(int) à (string) Automatische Stufenerhöhung) |
perstarifautoerh(103) |
Code Tariffunktion 103 = Bibliothekar Falls Tariffunktion nicht im Einsatz à perstarifautoerh(0) |
! Ab Version 5.0.0 (ohne Übergabewert) Achtung: Ein Stringwert kann nicht ausgegeben werden, sondern nur weiterverarbeitet werden. Ab Version 8.0.0 mit Übergabewert. |
perstarifstufe(int) à (string) Tarifstufe |
perstarifstufe(103) |
Code Tariffunktion 103 = Bibliothekar Falls Tariffunktion nicht im Einsatz à perstarifstufe(0) |
! Ab Version 5.0.0 (ohne Übergabewert) Achtung: Ein Stringwert kann nicht ausgegeben werden, sondern nur weiterverarbeitet werden. Ab Version 8.0.0 mit Übergabewert. |
perstarifklasse(int) à (string) Tarifklasse |
perstarifklasse(103) |
Code Tariffunktion 103 = Bibliothekar Falls Tariffunktion nicht im Einsatz à perstarifklasse(0) |
! Ab Version 5.0.0 (ohne Übergabewert) Achtung: Ein Stringwert kann nicht ausgegeben werden, sondern nur weiterverarbeitet werden. Ab Version 8.0.0 mit Übergabewert. |
perstariftab (int) à (string) Tariftabelle |
perstariftab(103) |
Code Tariffunktion 103 = Bibliothekar Falls Tariffunktion nicht im Einsatz à perstariftab(0) |
! Ab Version 5.0.0 (ohne Übergabewert) Achtung: Ein Stringwert kann nicht ausgegeben werden, sondern nur weiterverarbeitet werden. Ab Version 8.0.0 mit Übergabewert. |
perstarifpercent (int) à (string) Tarifprozentsatz |
perstarifpercent(103) |
Code Tariffunktion 103 = Bibliothekar Falls Tariffunktion nicht im Einsatz à perstarifpercent(0) |
Ab Version 8.0.0 mit Übergabewert. |
perstariffunktion (int) à (int) Ausgabe: Wert von Code Tariffunktion |
perstariffunktion(1) |
erfasste Tariffunktionen: TF0 (Wert = 0), TF1 (Wert = 100), TF2 (Wert = 101) perstariffunktion(1) -> 0 perstariffunktion(2) -> 100 perstariffunktion(0) -> -1 perstariffunktion(4) -> -1 |
Eingabe Nummer (beginnend mit 1), die Nummer bestimmt die Ausgabe des Codewertes Die Tariffunktionen werden nach Wert aufsteigend sortiert Falls die Ausgabe -1 ergibt, wurde kein Wert gefunden |
perssalarytypchange() à (date) Gültigkeitsdatum (von) des Lohntyps bezüglich der aktuellen Periode |
|
|
! Ab Version 5.0.0 Achtung: Ein Datum kann nicht ausgegeben werden, sondern nur weiterverarbeitet werden. |
persanggebdat(int) à (date) Geburtsdatum des Angehörigentyps |
|
|
! Ab Version 5.0.0 Falls mehrere Einträge vorhanden sind oder eine ungültige Nummer abgefragt wird, erfolgt die Ausgabe mit dem Datum 1.1.1900 |
perspflichtvon(string) à (date) Gültigkeitsdatum (von) der Pflichtigkeit bezüglich der aktuellen Periode |
|
Übergabewert ist die Pflichtigkeit |
! Ab Version 5.0.0 Achtung: Ein Datum kann nicht ausgegeben werden, sondern nur weiterverarbeitet werden. |
perspflichtbis(string) à (date) Gültigkeitsdatum (bis) der Pflichtigkeit bezüglich der aktuellen Periode |
|
Übergabewert ist die Pflichtigkeit |
! Ab Version 5.0.0 Achtung: Ein Datum kann nicht ausgegeben werden, sondern nur weiterverarbeitet werden. |
perspflichtcodevon(string) à (date) Gültigkeitsdatum (von) der Pflichtigkeit bezüglich der aktuellen Periode |
|
Übergabewert ist der Pflichtigkeits-Code |
Ab Version 2006.1 |
perspflichtcodebis(string) à (date) Gültigkeitsdatum (bis) der Pflichtigkeit bezüglich der aktuellen Periode |
|
Übergabewert ist der Pflichtigkeits-Code |
Ab Version 2006.1 |
persinqstap() à (date) Von-Datum des QST-Datensatzes, falls das Datum innerhalb der aktuellen Periode |
|
Falls das Von-Datum nicht innerhalb der aktuellen Abrechnungsperiode liegt, wird das Datum 1.1.1900 ausgegeben. |
! Ab Version 5.0.0 Achtung: Ein Datum kann nicht ausgegeben werden, sondern nur weiterverarbeitet werden. |
persoutqstap() à (date) Bis-Datum des QST-Datensatzes, falls das Datum innerhalb der aktuellen Periode |
|
Falls das Bis-Datum nicht innerhalb der aktuellen Abrechnungsperiode liegt, wird das Datum 31.12.9999 ausgegeben. |
! Ab Version 5.0.0 Achtung: Ein Datum kann nicht ausgegeben werden, sondern nur weiterverarbeitet werden. |
12. Funktionen zu Ein-/Austritt |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
persinapcount() --> (int) Anzahl Eintrittsdaten in Abrechnungsperiode |
if persinapcount() <> 0 then |
Falls Eintritt in diesem Monat, dann ... |
|
persoutapcount() --> (int) Anzahl Austrittsdaten in der Abrechnungsperiode |
if persoutapcount() <> 0 |
Falls Austritt in diesem Monat, dann ... |
|
persoutap() --> (date) Letztes Austrittsdatum bis zum Ende der aktuellen Abrechnungsperiode |
|
|
Kein Austrittsdatum bis zur akt. Per.--> 31.12.9999 |
persout() --> (date) Letztes Austrittsdatum seit Beginn der aktuellen Abrechnungsperiode |
|
|
Falls Austrittsdatum auf unendlich: 99991231 Falls kein Austrittsdatensatz (Beispiel Nachzahlung): 19000101 |
persinap() --> (date) Letztes Eintrittsdatum bis zum Ende der aktuellen Abrechnungsperiode |
|
|
|
persoutper()--> (int) Letztes Austrittsdatum bis zum Ende der aktuellen Abrechnungsperiode als Periode |
|
z.B. 202101208 = der letzte Austritt in Periode 2021/8 |
Eine «Abkürzung» für Funktionen welche als Parameter Austrittsperiode brauchen. |
13. Funktionen zu Zusatzwerten |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
perszwnum(string) --> (dezimal) Numerischen Zusatzwert zu Code |
perszwnum('SBEITRAG') |
|
|
perszwdat(string) --> (date) Datums-Zusatzwert zu Code |
|
|
Achtung: Ein Datumswert kann nicht ausge-geben werden, sondern nur weiterverarbeitet werden |
perszwstr(string) --> (string) String-Zusatzwert zu Code |
if perszwstr('ARBCODE') = 'S' then |
|
Achtung: Ein Stringwert kann nicht ausgegeben werden, sondern nur weiterverarbeitet werden. |
perszfcwert(string) à (int) Resultat gemäss Eintrag in Codes (im Admin) im Feld Wert. |
|
|
! ab Version 5.0.0 |
perszfckurztxt (string, int) à (string) Resultat gemäss Eintrag in Codes (im Admin) im Feld Kurztext und des entsprechenden Sprachcodes. |
if perszfckurztxt('AUTO', 2055) = 'Opel' then ... |
Sprachcodes siehe Beilage 5 Praxishinweis: Gegebenenfalls im Admin die Werte in einer "neutralen" Formelsprache erfassen (Bsp. 1038 (Ungarn), 0 = Mandantensprache). |
! Ab Version 5.0.0 Achtung: Ein Stringwert kann nicht ausgegeben werden, sondern nur weiterverarbeitet werden. |
perszfclangtxt (string, int) à (string) Resultat gemäss Eintrag in Codes (im Admin) im Feld Langtext und des entsprechenden Sprachcodes |
if perszfclangtxt('AUTO', 2055) = 'Opel Omega' then ... |
Sprachcodes siehe Beilage 5 Praxishinweis: Gegebenenfalls im Admin die Werte in einer "neutralen" Formelsprache erfassen (Bsp. 1038 (Ungarn), 0 = Mandantensprache). |
! Ab Version 5.0.0 Achtung: Ein Stringwert kann nicht ausgegeben werden, sondern nur weiterverarbeitet werden. |
perszfcdokutxt (string, int) à (string) Resultat gemäss Eintrag in Codes (im Admin) im Feld Dokutext und des entsprechenden Sprachcodes. |
If perszfcdokutxt('AUTO', 2055) = 'Opel Passat Jahrgang 1998' then … |
Sprachcodes siehe Beilage 5 Praxishinweis: Gegebenenfalls im Admin die Werte in einer "neutralen" Formelsprache erfassen (Bsp. 1038 (Ungarn), 0 = Mandantensprache). |
! Ab Version 5.0.0 Achtung: Ein Stringwert kann nicht ausgegeben werden, sondern nur weiterverarbeitet werden. |
perszfwert (string, string) à (dezimal) |
perszfwert ('Code', '20060914') var datumstr, kaderstufe; datumstr := ltoa( dateyyyy(perdateto()) * 10000 + datemm(perdateto()) * 100 + datedd(perdateto()) ); kaderstufe := perszfwert(’KADER’, datumstr); |
Eingaben: Code und Stichdatum Achtung: Das Datum muss vorgängig in einen String vom Format 'JJJJMMTT' umgewandelt werden! Als Resultat des Beispiel wird der Wert des Feldes „Zahl“ des Datensatzes mit dem Code KADER bezüglich des aktuellen Periodenddatums ausgegeben. |
ab Version 2006.1 Personalstamm/Tab Zusatzfelder Eingabe: Feld [Code], Stichdatum Ausgabe: Feld [Zahl] Stichdatum muss im Bereich des Von-/Bis-Datum liegen. |
perszftxt (string, string) à (string) |
|
|
ab Version 2006.1 Personalstamm/Tab Zusatzfelder |
perszfdat (string, string) à (date) |
|
|
ab Version 2006.1 Personalstamm/Tab Zusatzfelder |
perszfcombo (string, string) à (int)
|
perszfcombo('Code', '20080131') |
|
ab Version 2006.1 Personalstamm/Tab Zusatzfelder Eingabe: Feld [Code], Stichdatum Ausgabe: Wert aus den Codes in Bezug auf's Feld [Auswahl] Stichdatum muss im Bereich des Von-/Bis-Datum liegen. |
perszfdatvon (string, string) à (date) |
|
|
ab Version 2006.1 Personalstamm/Tab Zusatzfelder |
perszfdatbis (string, string) à (date) |
|
|
ab Version 2006.1 Personalstamm/Tab Zusatzfelder |
perszftxtbez (string, string) à (string) |
|
|
ab Version 2006.1 Personalstamm/Tab Zusatzfelder |
14. Check-Funktionen |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
ahvcheck(dec(18.0),dec(62.0),dec (65.0)) ->(int) AHV-Status einer Person |
|
0 = Alter < 18 1 = Pflicht 2 = Alter>62/65 |
|
15. Funktionen zu Lohntabellen |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
tabval(String, decimal, decimal)--> (dec) Tabellenwert einer Tabelle gemäss Code, X-Wert, Y-Wert |
tabval('PK', ltod(persage()), 1.0) |
|
Achtung: int-Werte konvertieren mit ltod |
tabval99(String, dec, dec) -->(dec) Tabellenwert einer Tabelle des Mandanten 99 gemäss Code, X-Wert, Y-Wert |
tabval99('BVG', ltod(persage()), 1.0) |
|
Achtung: int-Werte konvertieren mit ltod |
16. Funktionen zu Quellensteuertabellen |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
qsttabpercent(decimal) à (decimal) Prozentsatz der Quellensteuertabelle |
qsttabpercent(salarybase('QST_Z_BAS')) |
|
|
qsttabpercentdate(decimal, string) à (decimal) Prozentsatz der Quellensteuertabelle |
qsttabpercentdate((salarybase('QST_Z_BAS')), '201401') |
Zweiter Parameter 'String' entspricht Datum im Format YYYYMM |
|
qsttabvalue(decimal) à (decimal) Effektiver Betrag aus Quellensteuertabelle |
|
|
! Ab Version 5.0.0 |
qsttabpercentcode(decimal, string) Gibt den %-Satz aus der Quellensteuertabelle zurück. |
qsttabpercentcode(4500.0, 'PEL') |
Der erste Parameter ist das Einkommen (Wertebereich zwischen 1.0 und 9999999.90), der zweite Parameter ist der Tarifcode. Die Periode (Bis-Datum von Abrechnungsperiode) ist implizit -> wird bei der Berechnung ermittelt. |
|
Qsttabpercentcodeper(decimal, string ', int) Gibt den %-Satz aus der Quellensteuertabelle zurück. |
Qsttabpercentcodeper(4500.0, 'PEL', readperid()) |
Der erste Parameter ist das Einkommen (Wertebereich zwischen 1.0 und 9999999.90), der zweite Parameter ist der Tarifcode, der dritte Parameter ist die Periode |
|
qstpercent() à (decimal) Prozentsatz aus Personalstamm (Tab Quellensteuer) |
|
|
|
isqstmodelyear() à (bool) Gibt zurück, ob der Quellensteuerkanton nach Jahresmodel rechnet. |
if isqstmodelyear() then b := 0; end; |
Wenn es sich um das Jahresmodel bei der Quellensteuerberechnung handelt, setze b auf 0. |
Rückgabewert: true oder false |
isqstmodelyearper(int) à (bool) Gibt zurück, ob der Quellensteuerkanton in bestimmter Abrechnungsperiode nach Jahresmodel rechnet. |
if isqstmodelyearper(pernachz()) then b := 0; end; |
|
Relevant für Nachzahlungen |
getexternjobtype() à (string) Gibt zurück, wie der externe Job erfasst ist. |
a := getexternjobtype() if a = ‘p’ then b := getexternjobvalue() end; |
Wenn der externe Job mit einem Beschäftigungsgrad angegeben ist, speichere den Prozentsatz in b.
|
Rückgabewert: u - unbekannt, p - prozent, b - bruttoeinkommen, n - nicht aktiv |
getexternjobvalue() à (double) Gibt das Bruttoeinkommen oder den Beschäftigungsgrad des externen Jobs zurück. |
a := getexternjobtype() if a = ‘b’ then b := getexternjobvalue() end; |
Wenn der externe Job mit einem Bruttoeinkommen angegeben ist, speichere das monatliche Einkommen in b. |
Rückgabewert: Bruttoeinkommen oder Beschäftigungsgrad in Prozent Wenn kein externer Job oder unbekannt, wird 0 zurückgegeben. |
qsttarifcode()à (string) Gibt den aktuellen QST-Tarifcode zurück. |
code := qsttarifcode(), |
z.B. ‘A0N’ |
|
qsttarifcodeat(int)à (string) Gibt den QST-Tarifcode für die bestimmte Abrechnungsperiode zurück. |
code := qsttarifcodeat(202101202), |
der Tarifcode gültig für die Abrechnungsperiode 2021/2 |
|
getusedqstcodescount()à (int) Gibt zurück Anzahl von benutzten QST Tarifcodes seit dem letzten Kantonwechsel bzw. Beginn Kalenderjahr |
|
Wenn kein QST relevanter Kantonwechsel vorhanden dann ab Beginn des Kalenderjahres |
Die Funktion wird für die Berechnung vom QST-Ausgleich in Jahresmodell benutzt. |
getusedqstcode(int) à (string) Gibt zurück n-ten benutzten Tarifcode |
cnt := getusedqstcodescount(); i := 0; while i < cnt do code := getusedqstcode(i); // ausgleich für den code berechnen … i := i + 1; end; |
Parameter ist ein Index zwischen 0 und getusedqstcodescount() - 1 |
|
lakum_qst(string) à (double) kumuliertes Resultat einer Lohnart seit dem letzten Kantonwechsel bzw. Beginn Kalenderjahr bis zur Abrechnungs-periode |
Wenn kein Kantonwechsel dann lakum_qst('SV-TAGE') ist gleich lakum ('SV-TAGE') |
Wenn kein QST relevanter Kantonwechsel vorhanden dann ab Beginn des Kalenderjahres. |
Die Funktion wird benutzt um das Kumulieren von Lohnartresultaten pro Kanton bzw. Tarifmodell zu ermöglichen. |
lakum_qst_per(string, int) à (double) kumuliertes Resultat einer Lohnart seit dem letzten Kantonwechsel bzw, Beginn Kalenderjahr bis zur Periode |
lakum_qst_per(‘SV-TAGE’, 202012009) |
Wenn kein QST relevanter Kantonwechsel vorhanden dann ab 1.1.2020 bis 30.9.2020 |
|
lakum_nachz_qst(string) à (double) kumuliertes Resultat einer Lohnart seit dem letzten Kantonwechsel bzw, Beginn Austrittsjahr bis zur Austritsmonat |
lakum_nachz_qst(‘SV-TAGE’) ist gleich wie lakum_qst_per(‘SV-TAGE’, pernachz()) |
Wenn kein QST relevanter Kantonwechsel vorhanden dann ab Beginn des Austrittsjahres bis Austrittsmonat |
Für Nachzahlungen |
lakum_qst_vj(string) à (double) kumuliertes Resultat einer Lohnart seit dem letzten Kantonwechsel bzw, Beginn Vorjahr bis zur Ende des Vorjahres |
lakum_qst_vj(‘SV-TAGE’) wenn Abrechnunsperiode z.B. 202212009 ist wird die Periode 1.1.2021 – 31.12.2021 benutzt |
Wenn kein QST relevanter Kantonwechsel vorhanden dann ab Beginn Vorjahr bis Ende Vorjahr |
Eine Abkürzung ohne Datum Arithmetik für kompaktere Formeln |
lakum_vj(string) à (double) kumuliertes Resultat einer Lohnart seit dem Beginn Vorjahr bis zur Ende des Vorjahres |
lakum_vj(‘SV-TAGE’) wenn Abrechnunsperiode z.B. 202212009 ist wird die Periode 1.1.2021 – 31.12.2021 benutzt |
Immer ab Beginn Vorjahr bis Ende Vorjahr |
Eine Abkürzung ohne Datum Arithmetik für kompaktere Formeln |
salarybasekum_qst(string) à (double) kumulierte Basiswerte von dem letzten Kantonwechsel bzw. Beginn Kalenderjahr bis zur Abrechnungs-periode |
|
|
|
salarybasekum_qst_per(string, int) à (double) kumulierte Basiswerte von dem letzten Kantonwechsel bzw. Beginn Kalenderjahr bis zur Periode |
salarybasekum_qst_per(‘QST-BATRAG-B1N’, 202012009) |
Wenn kein QST relevanter Kantonwechsel vorhanden dann ab 1.1.2020 bis 30.9.2020 |
|
salarybasekum_nachz_qst (string) à (double) kumulierte Basiswerte von dem letzten Kantonwechsel bzw. Beginn Austrittsjahr bis zum Austritt |
salarybasekum_nachz_qst(‘QST-BATRAG-B1N’) ist gleich wie salarybasekum_qst_per(‘QST-BATRAG-B1N’, pernachz()) |
|
|
salarybasekum_qst _vj(string) à (double) kumulierte Basiswerte von dem letzten Kantonwechsel bzw. Beginn Vorjahr bis zum Ende des Vorjahres |
Abrechnungsperiode 202212007 salarybasekum_qst_vj(‘QST-BATRAG-B1N’) |
Wenn kein QST relevanter Kantonwechsel vorhanden dann ab 1.1.2021 bis 31.12.2021 |
|
getqsttage() -> (int) Anzahl QST Tage |
30 wenn QST mit Monatsmodel berechnet wird 360 wenn QST mit Jahresmodel berechnet wird |
|
|
getqsttageper() -> (int) Anzahl QST Tage in bestimmter Abrechnungsperiode |
|
|
Für Nachzahlungen relevant |
get_qst_kanton() -> (string) QST Kanton des Mitarbeiters in aktueller Abrechnungsperiode |
if get_qst_kanton() = ‘GR’ then … |
|
|
get_qst_kantonper(int) -> (string) QST Kanton des Mitarbeiters in der angegebenen Abrechnungsperiode |
|
|
|
17. Funktionen zu Tariftabellen |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
tariftabyear(int)à (decimal) Wert Gehaltstabelle (Jahresansatz) |
tariftabyear(103) |
Code Tariffunktion 103 = Bibliothekar
Falls Tariffunktion nicht im Einsatz à tariftabyear(0) |
Ab Version 8.0.0 mit Übergabewert.
In der Klammer muss eine Zahl stehen. Wenn die Tariffunktion nicht verwendet wird, wird 0 gesetzt |
tariftabmonth(int)à (decimal) Wert Gehaltstabelle (Monatsansatz) |
tariftabmonth(103) |
Code Tariffunktion 103 = Bibliothekar
Falls Tariffunktion nicht im Einsatz à tariftabmonth(0) |
Ab Version 8.0.0 mit Übergabewert. |
18. Freie Funktionen |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
string1(string, dec, string)--> (string) string2(string, dec, string)--> (string) string3(string, dec, string)--> (string) à Übergabe: Text, Zahl, Text |
String1('CODE1', 200112001.00, '20010430') à 'Typ A' |
Achtung: Falls ein Datum (als Variable) übergeben wird, so muss dieses vorgängig in einen String vom Format 'JJJJMMTT' umgewandelt werden! Weiterverarbeitung von Resultat (String(!)) nötig . |
! Ab Version 5.0.0 Diese Funktionen sind nur nach Absprache mit dem PM Personal einsetzbar! |
value1(string, dec, string)--> (decimal) value2(string, dec, string)--> (decimal) value3(string, dec, string)--> (string) à Übergabe: Text, Zahl, Text |
value1('CODE1', 200112001.00, '20010430') à 990.95
|
Achtung: Falls ein Datum (als Variable) übergeben wird, so muss dieses vorgängig in einen String vom Format 'JJJJMMTT' umgewandelt werden! |
! Ab Version 5.0.0 Diese Funktionen sind nur nach Absprache mit dem PM Personal einsetzbar! |
date1(string, dec, string)--> (date) date2(string, dec, string)--> (date) date3(string, dec, string)--> (date) à Übergabe: Text, Zahl, Text |
date1('CODE1', 200112001.00, '20010430') à 24.11.1964 |
Achtung: Falls ein Datum (als Variable) übergeben wird, so muss dieses vorgängig in einen String vom Format 'JJJJMMTT' umgewandelt werden! Weiterverarbeitung von Resultat (Date(!)) nötig . |
! Ab Version 5.0.0 Diese Funktionen sind nur nach Absprache mit dem PM Personal einsetzbar! |
19. Funktionen zu Qualifikation |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
qualiziel(string, int)à (decimal) Qualifikation Zielsetzung |
qualiziel('UMSATZ', 200402) |
|
Ab Version 8.0 |
qualibeurteilung(string, int)à (decimal) Qualifikation Beurteilung |
qualibeurteilung('UMSATZ', 200402) |
|
Ab Version 8.0 |
qualiist(string, int)à (decimal) Qualifikation Ist-Wert |
qualiist('UMSATZ', 200402) |
|
Ab Version 8.0 |
qualisoll(string, int)à (decimal) Qualifikation Soll-Wert |
qualisoll('UMSATZ', 200402) |
|
Ab Version 8.0 |
20. Funktionen zu Qrganisationseinheit/Stelle |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
orgcode()à (string) |
|
|
ab Version 2005.0 |
orgtabwert()à (decimal) |
|
|
ab Version 2005.0 |
persgbcode(int)à (string) |
persgbcode(200609) |
Organisationseinheit s -Code bezogen auf die OE-Zugehörigkeit der Person per mitgegebenem Datum. à Das Feld Code ist ein Textfeld. In der Lohnartenprogrammierung kann das nicht als Resultat ausgegeben werden, jedoch danach Abfragen und Bedingungen gesetzt werden. |
ab Version 2006.1 Siehe auch Kapitel Lohnartenprogrammierung - Geschäftsbereiche |
persgbtabwert(int)à (decimal) |
persgbtabwert(convfromsimper(readperid())) |
Gibt den Organisationseinheit-Tabellenwert zurück bezogen auf die OE-Zugehörigkeit der Person per mitgegebenem Datum. |
ab Version 2006.1 Siehe auch Kapitel Lohnartenprogrammierung - Geschäftsbereiche |
pergbfibumand(int)à (string) |
persgbfibumand(convfromsimper(readperid())) |
Gibt den Organisationseinheit -FibuMandant zurück bezogen auf die OE-Zugehörigkeit der Person per mitgegebenem Datum. à Das Feld Fibu-Mandant ist ein Textfeld. In der Lohnartenprogrammierung kann das nicht als Resultat ausgegeben werden, jedoch danach Abfragen und Bedingungen gesetzt werden |
ab Version 2006.1 Siehe auch Kapitel Lohnartenprogrammierung - Geschäftsbereiche |
stellencode()à (string) |
|
Gibt den Stellencode aus Stellenstamm, Register Stelle, Feld Code retour |
ab Version 2011.0 |
stellenlohnband()à (string) |
|
Gibt das Stellenlohnband aus Stellenstamm, Register Stelle, Feld Lohnband retour |
ab Version 2011.0 |
21. Funktionen zu Absenzenmanagement |
Beispiel |
Erläuterung Beispiel |
Bemerkungen/Erklärungen |
---|---|---|---|
arbeitstageper(string, int)à (decimal) Anzahl Arbeitstage einer Periode (JJJJMM) |
arbeitstageper(’FERIEN’, 200701) |
Holt die im Januar 2007 erfassten Ferientage |
ab Version 2007.0 |
arbeitstagesaldo(string, int)à (decimal) Kummulierte Arbeitstage von der angegebenen Periode (JJJJMM) bis zum aktuellen Monat |
arbeitstagesaldo(’FERIEN’, 200701) |
Holt die kumulierten Ferientage von Januar 2007 bis aktuelle Periode |
ab Version 2007.0 |
Codes für die Lohnartenprogrammierung
Kantone mit ihrer Nummer
1 = Uri |
11 = Solothurn |
21 = Tessin |
2 = Schwyz |
12 = Basel-Stadt |
22 = Waadt |
3 = Obwalden |
13 = Basel-Land |
23 = Wallis |
4 = Nidwalden |
14 = Schaffhausen |
24 = Neuenburg |
5 = Luzern |
15 = Appenzell AR |
25 = Genf |
6 = Zürich |
16 = Appenzell IR |
26 = Jura |
7 = Glarus |
17 = St. Gallen |
27 = Liechtenstein |
8 = Zug |
18 = Graubünden |
28 = Expatriate |
9 = Bern |
19 = Aargau |
|
10 = Freiburg |
20 = Thurgau |
|
Zivilstand - Geschlecht - Lohnlauftyp
Beilage 2: Zivilstand |
Beilage 3: Geschlecht |
Beilage 4: Lohnlauftyp |
---|---|---|
1 = Ledig |
1 = Männlich |
1 = Normaler Lohnlauf |
2 = Verheiratet |
2 = Weiblich |
2 = Eintrittslohnlauf |
3 = Geschieden |
|
3 = Austrittslohnlauf |
4 = Verwitwet |
|
4 = Nachzahlungslohnlauf |
5 = Getrennt |
|
|
6 = Konkubinat |
|
|
Sprachcodes
2055 = Deutsch (Schweiz)
2064 = Italienisch (Schweiz)
4108 = Französisch (Schweiz)
2057 = Englisch
1029 = Tschechisch
1038 = Ungarisch
1045 = Polnisch
1051 = Slowakisch
2070 = Portugiesisch (Portugal)
3082 = Spanisch (Moderne Sortierung)