diff --git a/addons/l10n_at_hr_payroll_private/__manifest__.py b/addons/l10n_at_hr_payroll_private/__manifest__.py
index ca81b5f..b654ede 100644
--- a/addons/l10n_at_hr_payroll_private/__manifest__.py
+++ b/addons/l10n_at_hr_payroll_private/__manifest__.py
@@ -1,7 +1,7 @@
# Part of the odoo-at-payroll project. License: LGPL-3.
{
'name': 'Österreich - Privatwirtschaft Personalverrechnung (General-AT)',
- 'version': '19.0.8.0.0',
+ 'version': '19.0.8.1.0',
'author': 'ixsol / gem360',
'website': 'https://gem360.at',
'category': 'Human Resources/Payroll',
@@ -94,6 +94,7 @@ gem360-Brücke).
'l10n_at', 'hr_payroll_account_iso20022'],
'data': [
'security/ir.model.access.csv',
+ 'security/security_rules.xml',
'data/kv_seed.xml',
'data/l10n.at.payroll.kv.gruppe.csv',
'data/l10n.at.payroll.kv.gruppe.stufe.csv',
@@ -112,10 +113,12 @@ gem360-Brücke).
'views/bv_views.xml',
'views/meldewesen_views.xml',
'views/vertragsfelder_views.xml',
+ 'views/mitarbeiter_views.xml',
'report/gp8_reports.xml',
'report/bv_report.xml',
],
- 'countries': ['at'],
+ 'demo': ['data/demo.xml'],
+ 'countries': ['at'],
'license': 'LGPL-3',
'installable': True,
'auto_install': False,
diff --git a/addons/l10n_at_hr_payroll_private/data/demo.xml b/addons/l10n_at_hr_payroll_private/data/demo.xml
new file mode 100644
index 0000000..af54277
--- /dev/null
+++ b/addons/l10n_at_hr_payroll_private/data/demo.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AT Demo GmbH
+ 1412345678
+ 123456789
+ niederoesterreich
+
+
+
+
+ Demo 40h Mo-Fr
+ Europe/Vienna
+ 8
+
+
+
+
+
+ Anna Angestellte
+ 1990-05-15
+ female
+
+
+
+ 2026-01-01
+ 2026-01-01
+ 1234150590
+ female
+
+
+ 1
+
+
+
+
+
+
+ Max Arbeiter
+ 1985-03-20
+ male
+
+
+
+ 2026-01-01
+ 2026-01-01
+ 5678203857
+ male
+
+
+ 1
+ 1800.0
+
+ arbeiter
+
+
+
+
+
+ Lena Lehrling
+ 2008-09-10
+ female
+
+
+
+ 2026-01-01
+ 2026-01-01
+ 9010091057
+ female
+
+
+ 1
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/l10n_at_hr_payroll_private/docs/benutzerhandbuch.md b/addons/l10n_at_hr_payroll_private/docs/benutzerhandbuch.md
new file mode 100644
index 0000000..17814b3
--- /dev/null
+++ b/addons/l10n_at_hr_payroll_private/docs/benutzerhandbuch.md
@@ -0,0 +1,199 @@
+# Benutzerhandbuch — AT-Payroll (Privatwirtschaft)
+
+## Übersicht
+
+Dieses Modul ermöglicht die vollständige monatliche Lohnverrechnung für
+die österreichische Privatwirtschaft nach Kollektivvertrag (KV) auf
+Basis von Odoo 19. Es deckt ab:
+
+| Baustein | Funktion |
+|---|---|
+| Entgelt (GP2) | KV-Gehalt, AZG-Zuschläge (ÜStd, Nacht, So/Fei, Mehrarbeit), Urlaubsentgelt, 13./14. Bezug |
+| Lohnsteuer (GP3) | § 66 kumulativ, § 67 Sechstel/Fixsätze, § 68-Steuerfreiheiten |
+| SV/DB (GP4) | ÖGK-Beitragssätze, Geringfügigkeit, § 49-Freibeträge, FLAF, KommSt, DZ |
+| Abfertigung Neu (GP5) | BMSVG 1,53 %, Anwartschaft, Endabrechnung |
+| FI-Buchung (GP6) | UGB-Konten (KFS/BW 6), Journal SLR |
+| Meldewesen (GP7) | mBGM/JASV, Versichertenmeldung, Lohnzettel L16, Arbeitsstättenmeldung |
+| Belege (GP7) | Lohnzettel AT, Monatsdienstliste, Monatsjournal |
+| Jahreswechsel (GP8) | Fristenkalender, Kontrollsechstel, §-77-Aufrollung |
+
+---
+
+## 1. Stammdaten anlegen
+
+### 1.1 Unternehmen (Company)
+
+Öffnen Sie **Einstellungen → Unternehmen** und wählen Sie Ihr
+Unternehmen. Im Reiter **„Lohnverrechnung (AT)"** pflegen Sie:
+
+| Feld | Beschreibung | Pflicht |
+|---|---|---|
+| Beitragskontonummer (BKNR) | 10-stellige eSV-Nummer (z. B. 1412345678) | Ja — ohne sie brechen alle Meldewesen-Läufe ab |
+| Lohnsteuernummer | 9-stellig: 2 Stellen Finanzamt + 7 Stellen Steuernummer | Ja — für L16 |
+| Bundesland | Betriebsstätten-Bundesland (steuert DZ-Satz) | Empfohlen |
+| WKO-Mitglied | Aktivieren, wenn Ihr Unternehmen WKO-Mitglied ist (DZ-Pflicht) | Optional |
+
+### 1.2 Mitarbeiter:in
+
+Öffnen Sie **Personal → Mitarbeiter:innen** und legen Sie eine:n
+Mitarbeiter:in an. Im Payroll-Bereich des Formulars:
+
+1. **KV-Einstufung**: Wählen Sie den Kollektivvertrag, die
+ Verwendungsgruppe und die Erfahrungsstufe
+2. **SV-Stichtage & Status** (GP8): Setzen Sie bei Bedarf
+ Satzausschaltungen (ALV ab 63, UV ab 60, PV-Bonusphase) und
+ Status-Flags (Lehrling, fallweise, Familienabsetzbetrag)
+3. **Abfertigung Neu** (GP5): Standardmäßig aktiviert (BMSVG);
+ wählen Sie die MV-Kasse und pflegen Sie ggf. Erträge aus dem
+ Kassen-Auszug
+4. **All-in** (§ 2g AVRAG): Bei All-in-Verträgen die
+ Überstundenpauschale und den ausgewiesenen Grundlohn eintragen
+5. **Versicherungsnummer (ssnid)**: 10-stellig, Format LLLPTTMMJJ
+ — **Pflicht für alle Meldewesen-Läufe**
+
+### 1.3 Versichertenmeldung (Anmeldung)
+
+Bei Eintritt eines:r neuen Mitarbeiter:in:
+
+1. Öffnen Sie **Meldewesen → Versichertenmeldung**
+2. Klicken Sie auf **„Meldungen erzeugen (Datei)"**
+3. Der Wizard erkennt offene Anmeldungen automatisch (Event-
+ Erkennung über die Meldungs-Registry) und erzeugt die ELDA-Datei
+4. Übertragen Sie die Datei über das ELDA-Portal des Mandanten
+
+---
+
+## 2. Monatsabrechnung
+
+### 2.1 Lohnlauf erstellen
+
+1. Öffnen Sie **Payroll → Lohnläufe** und erstellen Sie einen Lauf
+ für den Abrechnungsmonat
+2. Fügen Sie die Mitarbeiter:innen hinzu (oder nutzen Sie den
+ Batch-Modus für alle aktiven AN)
+3. Klicken Sie auf **„Abrechnen"** — die Engine berechnet:
+ - KV-Grundentgelt (Katalog oder Überzahlung)
+ - AZG-Zuschläge (aus Work-Entries/Zeiterfassung)
+ - Sonderzahlungen B13 (13. Bezug, z. B. November) und B14
+ (14. Bezug, bei Urlaubsantritt oder Austritt)
+ - Lohnsteuer (§ 66 kumulativ, § 67 Sechstel/Fixsätze)
+ - SV-Beiträge (ÖGK DN+DG, historisch versioniert je Beitragsmonat)
+ - Lohnnebenkosten (FLAF-DB, KommSt, DZ)
+ - BV-Beitrag (1,53 % Abfertigung Neu)
+4. Prüfen Sie das **Netto** und bestätigen Sie den Lauf
+
+### 2.2 FI-Buchung
+
+Nach Bestätigung des Laufes bucht Odoo automatisch auf die
+UGB-Konten (KFS/BW 6). Prüfen Sie:
+
+- **Aufwand**: Gehälter (6200/6000), SV-DG (6560/6500), BV (6440),
+ KommSt (6660), FLAF (6661), DZ (6662)
+- **Verbindlichkeiten**: SV (3600), LSt (3540), FLAF (3541),
+ KommSt (3550), DZ (3542)
+- **Netto**: Lohnverbindlichkeit (3850)
+
+---
+
+## 3. Meldewesen (monatlich)
+
+### 3.1 mBGM/JASV (SV-Meldung)
+
+**Frist: 15. des Folgemonats** (Gutschriftprinzip)
+
+1. Öffnen Sie **Meldewesen → mBGM (JASV)**
+2. Erstellen Sie einen Eintrag für den Beitragsmonat
+3. Klicken Sie auf **„Lauf erzeugen (Datei)"**
+4. Der Wizard prüft: BKNR vorhanden, VSNR je AN valide, Tarifsätze
+ parametrisiert (fehlende BSGR → listenweiser Abbruch)
+5. Laden Sie die Datei ins ELDA-Portal hoch
+
+### 3.2 Versichertenmeldung (bei Ein-/Austritt)
+
+- **Anmeldung (M3)**: vor Arbeitsantritt — wird automatisch erkannt
+- **Abmeldung (M4)**: innerhalb von 7 Kalendertagen nach
+ Beschäftigungsende
+- **Fallweise (MA)**: je Beschäftigungstag vor Arbeitsantritt
+
+### 3.3 Lohnzettel L16 (jährlich)
+
+**Frist: Ende Februar des Folgejahres** (via ELDA)
+
+1. Öffnen Sie **Meldewesen → Lohnzettel Finanz (L16)**
+2. Erstellen Sie einen Eintrag für das Abrechnungsjahr
+3. Klicken Sie auf **„Lauf erzeugen (Dateien)"**
+4. Es werden **zwei Dateien** erzeugt:
+ - `l16__.txt` — der Lohnzettel (BEST LF)
+ - `arbeitsstaette_.txt` — die Arbeitsstättenmeldung (BEST AD)
+5. Beide Dateien werden über ELDA übertragen
+
+---
+
+## 4. Belege drucken
+
+| Beleg | Druckort | Inhalt |
+|---|---|---|
+| **Lohnzettel (AT)** | Lohnabrechnung → Drucken | Bezüge, Abzüge, DG-Anteile, Netto |
+| **Monatsdienstliste** | Lohnlauf → Drucken | mBGM-Kontrollgrößen je AN |
+| **Monatsjournal** | Lohnlauf → Drucken | Lohnart-Summen je Lauf |
+| **All-in-Deckungsrechnung** | Lohnabrechnung → Drucken | Pauschale vs. Bezüge |
+| **DAG-Ausweis** | Lohnlauf → Drucken | § 1 DAG (geringfügig Beschäftigte) |
+
+---
+
+## 5. Fristenkalender
+
+Öffnen Sie **Meldewesen → Fristenkalender**. Der Kalender zeigt:
+
+- **Monatliche Fristen**: SV 15., DB/DZ/KommSt 15. des Folgemonats
+- **Jahresfristen**: L16/Arbeitsstätte/§-109a Ende Februar,
+ KommSt-Jahreserklärung Ende März
+
+Fristen werden automatisch per Cron erzeugt (monatlich am 1.).
+Überfällige Fristen werden rot markiert. Klicken Sie auf den
+Pfeil-Button, um direkt zur zugehörigen Deklaration zu springen.
+
+---
+
+## 6. Jahreswechsel
+
+### 6.1 KV-Runde
+
+1. Neue KV-Gehaltstabellen über den **KV-Katalog-Import** eingeben
+ (Paste oder CSV)
+2. Neue `gueltig_ab`-Versionen werden automatisch angelegt;
+ historische Werte bleiben unberührt
+
+### 6.2 LSt/SV-Parameterpflege
+
+1. Neue Jahreswerte in `rule_parameters_.xml` nachpflegen
+ (Beschaffung: „Beitragsrechtliche Werte" von
+ sozialversicherung.at; LSt-Tarif vom BMF)
+2. Beispiel 2027: `data/rule_parameters_2027.xml` enthält
+ bereits die Struktur
+
+### 6.3 Kontrollsechstel-Prüfung
+
+1. Öffnen Sie **Meldewesen → Jahres-Retro-/Aufrollungslauf**
+2. Wählen Sie das Jahr und klicken Sie auf **„Jahresdaten prüfen"**
+3. Der Wizard zeigt je AN den §-67-Überhang und ob die
+ Günstig-Aufrollung (Tarif statt Fixsätze) günstiger wäre
+
+---
+
+## 7. BV-Endabrechnung (Austritt)
+
+Bei Austritt eines:r im BMSVG-Systems verbleibenden AN:
+
+1. Öffnen Sie **Abfertigung Neu → BV-Endabrechnung (Austritt)**
+2. Wählen Sie den:die Mitarbeiter:in und die Beendigungsart
+3. Der Wizard prüft: 36 Beitragsmonate? § 14 Abs 2-Matrix
+ (AN-Kündigung, verschuldete Entlassung, unberechtigter Austritt)
+4. Zeigt Anwartschaft (Beiträge + Erträge) und Fristen
+
+---
+
+## Support
+
+Bei Fragen wenden Sie sich an Ihren Lohnverrechnungs-Dienstleister.
+Technische Dokumentation: `README.md` und `docs/` im Modul.
\ No newline at end of file
diff --git a/addons/l10n_at_hr_payroll_private/security/security_rules.xml b/addons/l10n_at_hr_payroll_private/security/security_rules.xml
new file mode 100644
index 0000000..c3ced0a
--- /dev/null
+++ b/addons/l10n_at_hr_payroll_private/security/security_rules.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ mBGM: eigene Company
+
+ [('company_id', 'in', company_ids)]
+
+
+
+ mBGM-Zeile: eigene Company
+
+ [('mbgm_id.company_id', 'in', company_ids)]
+
+
+
+ VR: eigene Company
+
+ [('company_id', 'in', company_ids)]
+
+
+
+ VR-Event: eigene Company
+
+ [('company_id', 'in', company_ids)]
+
+
+
\ No newline at end of file
diff --git a/addons/l10n_at_hr_payroll_private/views/mitarbeiter_views.xml b/addons/l10n_at_hr_payroll_private/views/mitarbeiter_views.xml
new file mode 100644
index 0000000..4b0b9bd
--- /dev/null
+++ b/addons/l10n_at_hr_payroll_private/views/mitarbeiter_views.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+ hr.employee.form.l10n_at_fallweise_allin
+ hr.employee
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ res.company.form.l10n.at.nschab
+ res.company
+
+
+
+
+
+
+
+
\ No newline at end of file