# l10n_at_hr_payroll_private (General-AT) General-AT-Payroll (KV-basierte Privatwirtschaft: KV-Gehaltskataloge, AZG/UrlG-Arbeitszeit, 13./14. Bezüge, Abfertigung Neu) für Odoo 19. **Implementierungsplan (freigegeben, M0):** [`personalverrechnung/IMPLEMENTIERUNGSPLAN-Privat.md`](../../personalverrechnung/IMPLEMENTIERUNGSPLAN-Privat.md) · verbindliche Rechtslage: [`personalverrechnung/RECHTSQUELLEN-Privat.md`](../../personalverrechnung/RECHTSQUELLEN-Privat.md) **GP1 umgesetzt (KV-Framework):** - `l10n.at.payroll.kv` — KV-Stammdaten mit Trace-Link zur KV-Library (`library_variant_id` → `personalverrechnung/quellen/kv/kv-catalog.json`) und Quellen-URL der Arbeitgeberkammer; - `l10n.at.payroll.kv.wert` — versionierte KV-Eckwerte (Muster `hr.rule.parameter.value`, KV-Scope): Regelkonsum über `employee.kv_id._wert('code', payslip.date_to)`; - `l10n.at.payroll.kv.gruppe` / `.stufe` — Verwendungs-/Lohngruppen mit Erfahrungsstufen, Jahrestabellen je `gueltig_ab` (unique(Gruppe, Stufe, Stichtag)); - Vertragsfelder auf `hr.version` (durchgereicht auf `hr.employee`): `kv_id`, `kv_gruppe_id`, `erfahrungsstufe`, `ueberzahlung`; - Import-Wizard „KV-Katalog importieren": Tabellenpaste/CSV (Gruppe;Stufe;Gehalt[;Bezeichnung]) mit Vorschau, Sprungwarnung > 10 % (Warnzeilen werden nie automatisch übernommen) und Versionierung über `gueltig_ab` — historische Werte bleiben unangetastet. **Seed D2 (Referenz-KVs R1):** SI-2203 „Handwerk und Gewerbe" + SI-2748 „Metallgewerbe", Gehaltstabellen ab 1. 1. 2026 kuratiert aus den KV-Library-Volltexten (`quellen/kv/oegb/texts/`). Besonderheiten im Seed: - SI-2203: VG I ist ab 1. 1. 2026 aufgelassen (Vorrückung nach § 17 Abs 6); Meistergruppen M I–M III als eigene Gruppen (M II ohne/mit Fachschule); - SI-2748: eigene Vorrückungsverläufe als eigene Gruppen (IV-M = Meister in VG IV bis „nach 17 VWGJ", V-OM = Obermeister bis „nach 12 VWGJ"); Nacht-Sondervergütung 2,71 € (2026) bzw. 2,76 € (2027) als Jahresversionen. **Kern-Vorfinanzierung (D3):** Lohnsteuer (AP3) und SV/DB-Regeln (AP4) werden im Kern-Modul `l10n_at_hr_payroll` gebaut und von beiden Produkten konsumiert; bei Bgld.-Auftragserteilung Anrechnung per Change-Request. **GP2 Entgelt-Engine (umgesetzt 2026-09-11):** Structure „AT Privatwirtschaft (KV)", AZG-Fenster-WETs, Regelinventar KVGEO/NACHT_SV/UE_*/MEHR_*/URL_UE/B13/B14/B14_RUECK/NETTO — vollständig `kv.wert`-getrieben (Rechenfälle `docs/rechenfaelle/`). **GP3 Lohnsteuer (umgesetzt 2026-09-11):** dünne Regeln SVDN_KV/PV/AV/AK/WF + LST_LFD/LST_SZ auf dem AP3-Kern (§ 66 kumulativ mit Rollung, § 67 Sechstel/Fixsätze mit Günstig- Aufrollung, § 68-Steuerfreiheiten; Rechenfälle `docs/rechenfaelle/ lohnsteuer.md`). **GP4 SV/DB (umgesetzt 2026-09-11):** SVDN_SZ-Nachtrag (§ 67 Abs 12 — Netto-Korrektur in §-67-Monaten), DG-Block SVDG_KV/PV/AV/UV/WF/IESG + SVDG_SZ_* + §-53a-UV Geringfügiger (Kategorie ATP_DG, ohne Nettoeffekt; ÖGK 2026: DG 20,98 % / Wien 21,23 %), Lohnnebenkosten FLAFDB (§ 41 FLAG), KOMMST (§ 9 KommStG) und DZ (§§ 122/126 WKG, company-flag-gated) mit Freibetragsstaffel 1.095/1.460 € — Logik/Werte im Bundes-Kern (`models/sozialversicherung.py`, D3-Vorfinanzierung): §-2a-ALV-DN-Staffel, Geringfügigkeit (§ 5 Abs 2 iVm § 810 Abs 3 ASVG), beitragsfreie Bezüge § 49 Abs 3 mit Jahres-Kumulativen, altersabhängige Satzausschaltungen (§ 1 Abs 2 lit e AlVG, § 51 Abs 6/7 ASVG, § 12 IESG), WF-Satzvektor Wien, Beitragsmonats- Allokation (Anspruchsprinzip) und DAG-Bewertung (§ 1 DAG). Rechenfälle `docs/rechenfaelle/sozialversicherung.md`. **GP5 Abfertigung Neu (umgesetzt 2026-09-11):** BMSVG-Regel `BVG` (§ 6 Abs 1: 1,53 % DG auf Entgelt **und** SZ; Kern-Parameter `at_sv_bv_dg`) auf **EIGENER, ungecappter BV-Grundlage** (§ 6 Abs 5 iVm § 49 ASVG — kein HBG-/Jahresdeckel, ohne §-67-Abs-3/6-Zeilen gemäß § 49 Abs 3 Z 7 ASVG) — `models/abfertigung_private.py`: - **Beitragsfreier erster Monat taggenau** (§ 6 Abs 1): Fenster [Eintritt, Eintritt + 1 Monat), Pflicht ab Monatsjubiläum (15. 06. → 15. 07.); 30-Tage-Aliquotierung (KB 4.500/30 × 17 = 2.550); Monatsende-Klippe (31. 01.) → frei bis Monatsultimo, Pflicht ab Folgemonatserstem; AV ≤ 1 Monat zur Gänze beitragsfrei; **Wiederzulassung binnen 12 Monaten → Pflicht ab dem 1. Tag** (OGH 9 ObA 30/16a; Vor-AV beliebiger Dauer — auch < 1 Monat); - **SZ ohne Fenster-Kürzung**; frei nur bei Beitragsmonat im Fenster (taggenau); läuft **auch für geringfügig Beschäftigte und Lehrlinge** (§ 46, § 1 Abs 2 Z 1); - **Anwartschaft** (§ 15: gutgebrachte Beiträge + Erträge aus dem Kassen-Auszug, KEINE Monatsentgelt-Staffel) aus validierten Läufen; Vertragsfelder Abfertigung-Neu/BV-Kasse (`l10n.at.bv.kasse` mit Leitzahl für eSV/mBGM) + Erträge/Vor-Beitrags- monate am Mitarbeiter; **Anwartschaftsreport** (QWeb, am Mitarbeiter druckbar) + **Endabrechnungs-Wizard** (§§ 14-17: §-14-Abs-2- Verfügungsmatrix mit 36-Beitragsmonate-Kriterium, §-16-Fälligkeit, 6-Monats-Erklärungsfrist, 5 §-17-Optionen) — Auszahlung selbst läuft über die MV-Kasse, nicht über den Payslip. Rechenfälle `docs/rechenfaelle/abfertigung.md`. **GP6 FI-Buchung UGB (umgesetzt 2026-09-12):** Buchungsmatrix nach dem Österreichischen Einheitskontenrahmen (KFS/BW 6): Hook `_configure_payroll_account_at` (Chart-Load + ``-Datendatei, idempotent; Konto-Suche exakt mit Längen-gebundenem Präfix-Fallback — kein Match auf Odoo-Scaffold-Konten) ordnet Regelkonten, Journal SLR (Default = Gehälterkonto, BE-Muster) und das NET-Konto **3850 „Verbindlichkeiten aus Lohn und Gehalt"** (Anlage + reconcile) zu. **EKR-Debit-Split Arbeiter/Angestellte:** `l10n_at_personalgruppe` am Vertrag + Override-Feld `l10n_at_account_debit_arbeiter` je Regel (Option A minimal: Grundentgelt 6000, Sozialaufwand 6500, Abgaben 6600/6601/6602; Zuschläge/ÜStd/SZ/Prämien buchen bis zur Referenzbuchhaltungs-Fixierung auf die Angestellten-Konten); Gesamtüberschreibung von `_prepare_slip_lines` (Odoo bietet keinen Override-Punkt; durch Tests gepinnt). Netto-Regel auf Odoo-Konvention **NET** umbenannt + die automatisch kopierte Default-NET-Regel wird archiviert (Code-Kollision im result_rules-Dict; archiviert statt unlinkt — historische Linien behalten die Referenz). Auszahlung über `hr_payroll_account_iso20022`; kein VRV/MVAG (gem360-Brücke). Rechenfälle `docs/rechenfaelle/buchhaltung.md`. **Offen (GP7+):** Meldewesen/Belege (GP7), Jahreswechsel (GP8); All-in-UI-Bericht (GP8); B14 längster-Urlaubs-Teil-Verfeinerung; DZ-WKO-Verifikation (8.11) vor Wien-Mandanten; §-7-BMSVG-Fiktivfälle (Präsenzdienst/Kranken-/Wochengeld) als dokumentierte Option (Rechenfälle-Datei); Arbeiter-Sub-Konten (Option A-Rest) mit der Referenzbuchhaltung fixieren (GP0-Rest). Tests: `test_kv_katalog` + `test_entgelt_private` (GP2) + `test_lst_private` (GP3) + `test_sv_private` (GP4) + `test_bv_private` (GP5) + `test_account_private` (GP6) — `.venv/bin/python -m odoo -d -i l10n_at_hr_payroll,l10n_at_hr_payroll_private --test-tags /l10n_at_hr_payroll,/l10n_at_hr_payroll_private --test-enable --stop-after-init --addons-path=odoo_19.0+e.20260910/odoo-19.0+e.20260910/odoo/addons,addons` (Lokal grün am 2026-09-12 auf Wegwerf-DB, frischer `-i`-Lauf: **88/88 Tests** — NET-Rundungscents bucht Odoo als „Adjustment Entry" auf das Journal-Default.)