Files
odoo-at-payroll/addons/l10n_at_hr_payroll_private
fegger d53e1e64a1 [IMP] l10n_at_hr_payroll_private: add unpaid care/parental leave family (AP16)
Close the parental/care-leave block after the pilot-client scope release (8.13): six unpaid full-release kinds join the generic parental-leave work entry — Bildungskarenz (AVRAG § 11, two to twelve months by agreement with the AMS-financed Weiterbildungsbeihilfe), Familienhospizkarenz for terminal accompaniment (AVRAG § 14a, three to six months), accompaniment of seriously ill children (§ 14b, five to nine months), children's rehabilitation leave (§ 14e, four weeks per year), Pflegekarenz (§ 14c, one to three months, undivided) and the Papa-Monat (VKG § 1a, one month, creditable toward seniority under § 1a Abs 7 VKG iVm § 15f MSchG while Bildungs-/Pflegekarenz is not). All are unpaid at the employer — the external bodies pay the replacement income (AK, AMS, Bundesamt, KV-Träger) — so the new negative KARENZ_ENTGELT rule stops the employer wage per working day through the shared Tagesatz helper whose exclusion list now covers EFZG, Mutterschutz and Karenz corrections. The Versichertenmeldung run emits M4 deregistrations at the end of the pay entitlement (the day before the release begins) and M3 re-registrations at the return date — omitted when the employment itself ends — with the eSV Karenzart strings logged as protocol information pending the special DM-ORG formats (GP7 track). The fictive BMSVG basis gains the § 7 Abs 4 Z 1–3 bridge: when a new maternity prohibition follows a parental-leave stretch directly or after employment of less than three months, the reference months fall before the preceding prohibition, and a re-founded employment within three months of the ended karenziert employment uses the single last full calendar month; contributions during the KBG period are FLAF-financed (§ 7 Abs 5) and during hospice/care leave Bund-financed (§ 7 Abs 6) — no employer rule, verified by test. Pflegeteilzeit and comparable reduced-hour arrangements pay the BV contribution on the pre-reduction wage via a new version field consumed by the BMSVG basis (§ 6 Abs 4). The endabrechnung wizard gains the § 23 Abs 8 AngG full-time re-rating preview (monthly salary ÷ work_time_rate, confirmable) with § 23a Abs 4a and UEL § 10 Abs 4 UrlG guidance. The Mutterschutz status now detects the § 163 ASVG Sonderwochengeld case (prohibition inside a Karenz — the KV-Träger pays the increased sickness benefit) and warns on § 166 ASVG suspension (full for >50 % continued pay, half at 50 %, activity and Pflegekarenzgeld hints). Verified against the original statute text in .ris/ (AVRAG §§ 11/11a/14a–14e, VKG § 1a, MSchG § 15f, BMSVG § 7 Abs 4–6, ASVG §§ 163/166) and the knowledge-base sources lb-kar/elt/kzs/pap/kbg; the vacation proration of leave stretches (§ 15f Abs 2 MSchG on the hr_holidays allocation side), the eSV special formats for the Karenz art block, the full Sonderwochengeld computation and the leave-overlap policy decision remain documented open points.

Version 19.0.17.0.0 (private)
2026-09-15 14:25:48 +02:00
..

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 · verbindliche Rechtslage: personalverrechnung/RECHTSQUELLEN-Privat.md

GP1 umgesetzt (KV-Framework):

  • l10n.at.payroll.kv — KV-Stammdaten mit Trace-Link zur KV-Library (library_variant_idpersonalverrechnung/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 IM 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 + <function>-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.

GP7 Meldewesen/Belege (umgesetzt 2026-09-12): auf dem Kern- Framework (ELDA-Fixlängen-Dateien, ISO-8859-15, CRLF-Annahme; L16 + Arbeitsstättenmeldung + Belege Lohnzettel AT/Monatsdienstliste/ Monatsjournal im Kern): mBGM/JASV (Paket/mBGM/Tarifblock/Verrech- nungsbasis/-position, T01-Gesamtsatz aus at_mbgm_tarif — normativ 39,05 % laufend / 37,55 % SZ; Abschläge A01/A02/A03 § 2a AMPFG je Basis AB und SZ, A09/A10/A15 aus GP4-Stichtagen; BV-Basis + V01 aus GP5; Storno-R-Sätze mit REFU; Fehlanzeige als Null-Paket; Gering- fährige/fallweise ohne Tarifparameter = listenweiser Laufabbruch); Versichertenmeldung M3/M4 (deklarative Event-Erkennung über die Meldungs-Registry — idempotent, kein write-diff; BBER 0104, GERF, FRDV, BVAB/BVJN aus GP5, VWAZ; AGRD-Mapping am Abgangsgrund) und fallweise Anmeldung (BEST MA, SART 32; MVP je Anmeldetag); NSchAB-Branche als Company-Flag (B001-T01 + 3,80 %).

Rechenfälle docs/rechenfaelle/meldewesen.md.

GP8 Jahreswechsel/Fristen/Retro (umgesetzt 2026-09-12): Fristenkalender (l10n.at.payroll.frist mit ir.cron, Auto- Erzeugung monatlich/jährlich, Überfällig-Färbung, Sprung zur GP7-Deklaration), Jahres-Retro-Wizard (Kontrollsechstel § 67 Abs 10 mit Günstig-Vergleich, §-77-Abs-3/4-Option), Mitteilungs- file-Import (ELDA-Rückantwort-XML), Vertragsstichtage-UI, All-in-Deckungsrechnung + DAG-Ausweis (QWeb), 2027-Parameter-Rahmen. GP1GP8 komplett (M8 erreicht).

Offen (GP9/AP9): UI/Security (Rollen), Multi-Company-Test, Dokumentation, Schulung; geringfähig/fallweise-Tarifparameter.

Tests: test_kv_katalog + test_entgelt_private (GP2) + test_lst_private (GP3) + test_sv_private (GP4) + test_bv_private (GP5) + test_account_private (GP6) + test_elda_l16 (GP7 Kern) + test_meldewesen_private (GP7) + test_gp8 (GP8 Kern) — .venv/bin/python -m odoo -d <testdb> -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: 100/100 Tests.)