Files
odoo-at-payroll/docs/CHANGELOG.md
T
fegger ea14c48cca [IMP] odoo-at-payroll: GP7-Bau, DM-ORG-42.7.0-Verifikationen und Nutzer-Entscheidungen 5.1-5.4 dokumentiert
CHANGELOG-GP7-Eintrag; Plan-Abschnitt-10-Update (ELDA-Fixsatz-Konventionen, KZ-210-§-25-Gesamtbrutto-Fund, mBGM-Abschläge je Basis, Nutzer-Entscheidungen: Arbeitsstätte in GP7, Mitteilungsfile-Import GP8, FB+ nicht im Lohnsteuerkern/ANV + Kind-Modell für FABO+-Wartung); MEMORY-Handoff (94/94, Wegwerf-DB, GP8 als nächster Bauabschnitt, offene Reste: odoo_dev-Update, geringfügig-mBGM-Parametrisierung, CRLF/ELDA-Kanal-Verifikation, Referenzbuchhaltungs-Endfixierung, Schwerarbeit nach ASchV-Datenmodell-Bau).
2026-09-12 17:31:21 +02:00

22 KiB
Raw Blame History

CHANGELOG — odoo-at-payroll

2026-09-12 — General-AT GP7: Meldewesen/Belege umgesetzt (M7; Kern-Bau AP5/AP6)

  • addons/l10n_at_hr_payroll (19.0.4.0.0): ELDA-Fixsatz-Framework models/elda.py (DM-ORG 42.7.0: Fixlängen ohne Trennzeichen, a/n linksbündig-blank / n rechtsbündig-0, Cent ohne Interpunktion, Prozente ×1000, ISO-8859-15, Dateiheader optional, Vorlauf SART 00/ Schluss SART 99 mit SANR-Kette ab 1 und SANZ inkl. Rahmen; CRLF als Satztrenner = Praxis-Annahme — DM-ORG normiert keines). Lohnzettel Finanz L16 + Arbeitsstättenmeldung § 34 Abs 6 ASVG models/lohnzettel_l16.py: I1 (1.100) + L1 (3.500, Lohnzettelversion 28, BEST LF/VSTR 94) inkl. Kinderblock 15×123 ab Pos. 1501 — PDF-verifizierte Positions-Ketten; KZ 210 = Bruttobezüge gem. § 25 gesamt (KZ 245 = 210215220230243 = laufende Steuerbemessung, konsistent mit der GP3-§-66-Kette per Konstruktion; Ableitung aus l10n_at_bemessung/steuerbefreiung_68/ s67_abs, KEIN paralleles KZ-Feld). Arbeitsstätte: SART 45 (300, BEST AD/VSTR ST) je AN am 31. 12. aus dem Dienstort-Partner (GKZ manuell, Warnung wenn fehlt). Kind-Datenmodell models/kind.py (Nutzer-Entscheidung: FB+ rechnet NICHT im Lohnsteuerkern — Steuer < 0 → Arbeitnehmer- veranlagung; Modell dient der FABO+-Wartung: Monate voll/halb, Alterstaffel, L16-Kinderblock). Stammdaten models/meldewesen.py: BKNR + Lohnsteuernummer (Company), GKZ (res.partner), VSNR-Format- prüfung LLLPTTMMJJ auf hr.version.ssnid (Prüfziffer = Rest, SVS- Quelle), eSV-AGRD-Mapping auf hr.departure.reason. Belege (AP6): Lohnzettel AT (ir.actions.report auf hr.payslip) + Monatsdienstliste + Monatsjournal (QWeb auf hr.payslip.run, AbstractModel models/monatsreports.py; kein HR-Modul nutzt account.report).
  • addons/l10n_at_hr_payroll_private (19.0.7.0.0): mBGM/JASV (BEST MB, Version 02; models/mbgm.py): Paket PS/mBGM G1/Tarif- block T1/Verrechnungsbasis BS/Position V1 aus GP4-Beitragsmonats- Daten; T01/T02-GESAMT-Prozentsatz je BSGR aus at_mbgm_tarif (normativ laufend 39,05 %, SZ 37,55 % = DN KV 3,87 + PV 10,25 + AV 2,95 + DG 20,48); Abschläge je Verrechnungsbasis (A03/A02/A01 §-2a-AMPFG DN-AV auf AB UND SZ, A09 UV-60, A10 AV+IE-Entfall, A15 PV-Halbierung; Konkurrenz a4: A10 sperrt Staffelabschlag); BV-Basis (ungedeckelt, GP5) + V01; RSUM = Basis×Satz mit Konsistenz-Check gegen GP4-Payslip-Summen (±0,10 €); Storno R1 (REFU/VSUM wie Original), Fehlanzeige als Null-Paket; Geringfügige/fallweise ohne Parametrisierung → listenweiser Abbruch (keine Tarif-Erfindung). Versichertenmeldung models/versichertenmeldung.py (BEST VR, Version 03): M3 vor Arbeitsantritt / M4 (7 Tage) mit deklarativer Event-Erkennung über die Meldungs-Registry (idempotente Läufe, kein write-diff), BBER 0104, GERF (Gehalt vs. GFG), FRDV, BVAB/BVJN aus GP5, VWAZ Stunden×100, AGRD aus dem Abgangsgrund-Mapping; fallweise Anmeldung (BEST MA, SART 32, Version 07; MVP je Anmeldetag). NSchAB-Branche als Company-Flag (B001-T01 + 3,80).
  • Bewusst nicht in GP7: Schwerarbeitsmeldung (DM-ORG E.22- Struktur vorhanden, aber keine ASchV-Datenbasis), § 109a (separate Honorar-Datenbasis), L17 (keine AG-Pflicht), Mitteilungsfile-Import (Nutzer-Entscheidung 5.2 → GP8), FB+-Lohnsteuermechanik (ANV).
  • Tests: test_elda_l16 (4) + test_meldewesen_private (2) — 94/94 grün (frischer -i-Lauf, Wegwerf-DB). Rechenfälle docs/rechenfaelle/meldewesen.md.

2026-09-12 — General-AT GP6: FI-Buchung UGB nach KFS/BW 6 umgesetzt (M6)

  • addons/l10n_at_hr_payroll_private (19.0.6.0.0): GP6 FI-Buchung UGB auf dem Österreichischen Einheitskontenrahmen (KFS/BW 6, Nutzer-Referenz-Exemplar .additional_docs/KFSBW6_13072017_RF.pdf):
    • models/account_chart_private.py: Buchungsmatrix + Hook _configure_payroll_account_at (BE-Muster l10n_be_hr_payroll_ account): Chart-Load (_post_load_data) und <function>- Datendatei für Bestands-Companies (erster <value> = Record-IDs, convert.py-Semantik), idempotent. Konto-Suche exakt zuerst, Präfix-Fallback nur bis eine Stelle länger — blockiert Odoo- Scaffold-Konten chartloser Firmen (6000 darf nicht 600000 „Expenses" matchen). NET-Konto 3850 „Verbindlichkeiten aus Lohn und Gehalt" (Nutzer-Entscheidung 5.1) wird angelegt und auf reconcile gesetzt (l10n_at-Standardchart hat es nicht); Journal SLR mit Default = Gehälterkonto 6200 (BE-Muster; Odoo- Constraint verbietet Receivable/Payable als Journal-Default).
    • EKR-Debit-Split Arbeiter/Angestellte (Nutzer-Klärung: 600619 Löhne, 620639 Gehälter — die Angabe „6000 Gehälter/6200 Löhne" war gegenüber der eigenen KFS/BW-6-Referenz vertauscht): l10n_at_personalgruppe am Vertrag + l10n_at_account_debit_arbeiter je Regel; Option A minimal (Nutzer-Entscheidung 5.2): Overrides nur Grundentgelt 6000, Sozialaufwand 6500, Abgaben 6600/6601/6602 — Zuschläge (6225), ÜStd (6310), Prämien (6230), SZ (6240), BV (6440, EKR 644 ohne Split) buchen für Arbeiter bis zur Referenzbuchhaltungs- Fixierung auf die Angestellten-Konten (fehlende Konten → Warnung, keine Erfindung). models/account_posting_private.py: Gesamtüberschreibung von _prepare_slip_lines (Odoo bietet keinen Override-Punkt; Upstream-Kopie Odoo-Pin 19.0+e.20260910 mit einzeiliger Kontosubstitution, testgepinnt).
    • NET-Umbenennung (NETTO → NET, Odoo-Konvention): Zahlungsregistrierung (action_register_payment), net_wage und Negativ-Netto-Erkennung filtern code == 'NET'. Odoo-19-Fund: das Anlegen einer Structure kopiert die Regeln des hr_payroll.default_structure (BASIC/GROSS/NET/…) via Feld-Default in rule_ids — die kopierte Default-NET-Regel kollidiert im result_rules-Dict (Netto fiel auf 0). Fix: <function> in salary_rules_private.xml archiviert die Kopie (active=False; One2many blendet Archivierte aus; KEIN Unlink — historische Lohnkontolinien behalten die Regel-Referenz; struct_id ist NOT NULL).
    • Matrix: KVGEO/URL_UE 6200/6000 · Zuschläge 6225 · ÜStd 6310 · Prämien 6230 · B13/B14 6240 · DN-SV/LSt auf 3600/3540 · NET 3850 · SVDG-Block 6560/6500 auf 3600 · BVG 6440 (EKR 644) mit Fallback 6400 auf Credit 3600 (Abfuhr via KV-Träger; 5.3) · FLAFDB 6661/6601 auf 3541 · KOMMST 6660/6600 auf 3550 · DZ 6662/6602 auf 3542. depends: + l10n_at, hr_payroll_account_iso20022 (SEPA-Auszahlung, Plan 4.5).
  • Tests: test_account_private (4: RF-BUCH-1..4 — Kontenplan-Mock ohne Chart-Install; Move-Balance, Kontenzeilen, Arbeiter-Split, Fallback/Warnung; NET-Rundungscents als Odoo-„Adjustment Entry" auf Journal-Default mit delta=0.02 toleriert). NETTO→NET in 4 Bestands-Suiten nachgezogen. 88/88 grün (frischer -i-Lauf, Wegwerf-DB). Rechenfälle docs/rechenfaelle/buchhaltung.md.

2026-09-11 — General-AT GP5: Abfertigung Neu (BMSVG) umgesetzt (M6, Teil 1)

  • addons/l10n_at_hr_payroll (19.0.3.1.0): Kern-Parameter at_sv_bv_dg = 1,53 % (§ 6 Abs 1 BMSVG, ab 2003-01-01) in rule_parameters_sv_2026.xml.
  • addons/l10n_at_hr_payroll_private (19.0.5.0.0): GP5 Abfertigung Neu — Regel BVG (ATP_DG, ohne Nettoeffekt) auf EIGENER, ungecappter BV-Grundlage (§ 6 Abs 5 iVm § 49 ASVG: kein HBG-/ Jahresdeckel; ohne §-67-Abs-3/6-Zeilen — § 49 Abs 3 Z 7 ASVG; Nutzer-Entscheidung: kein Rückgriff auf die SV-SZ-Basis des Kerns, deren Z-7-Ausschluss fehlt → GP4-Beobachtung bleibt offen dokumentiert); models/abfertigung_private.py:
    • Beitragsfreier erster Monat taggenau (§ 6 Abs 1): Fenster [Eintritt, Eintritt + 1 Monat), Pflicht ab Monatsjubiläum (15. 06. → 15. 07. — KB-Beispiel 4.500/30 × 17 = 2.550, 30-Tage-Aliquotierung via Lohnsteuertage); Monatsende-Klippe (Eintritt 31. 01.) → frei bis Monatsultimo, Pflicht ab Folgemonatserstem (ABGB-Fristrechnung); AV ≤ 1 Monat zur Gänze beitragsfrei;
    • **Wiederzulassung binnen 12 Monaten → Beitragspflicht ab dem
      1. Tag** (OGH 9 ObA 30/16a) — Vor-AV beliebiger Dauer (auch < 1 Monat) und schlägt auch die Kurz-AV-Freiheit (Nutzer-Klarstellung 2026-09-11); Suche über frühere hr.version-Verträge;
    • SZ ohne Fenster-Kürzung, frei nur bei Beitragsmonat im Fenster (taggenau: Fälligkeit 20. 07. bei Fensterende 15. 07. pflichtig); läuft auch für geringfügig Beschäftigte und Lehrlinge (§ 46, § 1 Abs 2 Z 1);
    • Vertragsfelder l10n_at_abfertigung_neu (§ 46-Flag) + l10n_at_bv_kasse_id (neues Modell l10n.at.bv.kasse mit Leitzahl für eSV/mBGM; Seed der 7 Kassen-Namen, lb-gsv-11, noupdate); Mitarbeiter-Felder l10n_at_bv_ertraege/ l10n_at_bv_monate_extern (Kassen-Auszug);
    • Anwartschaft (§ 15: gutgebrachte Beiträge + Erträge, KEINE Monatsentgelt-Staffel) on-the-fly aus validierten Läufen (_at_bv_anwartschaft); Anwartschaftsreport (QWeb auf hr.employee, AbstractModel bv_report.py) + Endabrechnungs- Wizard l10n.at.bv.endabrechnung.wizard (§§ 14-17: §-14-Abs-2- Verfügungsmatrix, 36-Beitragsmonate-IMMER-Sperre mit Vor-Monaten, §-16-Fälligkeit Ende des zweitfolgenden Monats, 6-Monats- Erklärungsfrist, 5 §-17-Optionen) — Auszahlung durch die MV-Kasse, kein Payslip-Bestandteil.
  • Bewusst nicht in GP5: §-7-BMSVG-Fiktivfälle (Präsenz-/Kranken-/ Wochengeld — setzt fehlende Entgeltersatzleistungs-Modellierung voraus; dokumentierte Option), Geringfügigen-Jahreszahlung + 2,5 % (Zahlungsmodus GP7), BV-Provider (Option).
  • Tests: test_bv_private (10) neu; 84/84 grün auf Wegwerf-DB gp5_test (frischer -i-Lauf; Aufruf s. README). Rechenfälle docs/rechenfaelle/abfertigung.md.

2026-09-11 — General-AT GP4: SV/DB komplett im Kern umgesetzt (M5)

  • addons/l10n_at_hr_payroll (19.0.3.0.0): models/sozialversicherung.py — DG-Beiträge (ÖGK 2026: DG 20,98 %, Wien 21,23 %), §-54-SZ-Beiträge DG 20,48 % (KV/PV/AV/UV/IESG), Geringfügigkeit § 5 Abs 2 iVm § 810 Abs 3 ASVG (GFG 2026 = 551,10 €, Aufwertung ausgesetzt — A7-Rest gelöst) mit Hochrechnung bei untermonatiger Beschäftigung, §-53a-Abs-1-UV 6,50 €/Monat, beitragsfreie Bezüge § 49 Abs 3 mit Jahres-Kumulativen je DN (8 €/AT, 1.000/365/186/300/2.000 €/J, Homeoffice 3 €/Tag × 100), altersabhängige Satzausschaltungen als Stichtags-Datumfelder am Vertrag (AlVG § 1 Abs 2 lit e — AV DN+DG +IESG; § 51 Abs 6 — UV ab 60/Lehrlinge; § 51 Abs 7 — PV hälftig DG+DN; § 41 Abs 4 lit f FLAG), ALV-DN-Staffel § 2a AMPFG (DN-seitig; 0/1/2 % bis 2.225/2.427/2.630 €; auch für SZ; ab 2027 aufgehoben), WF-Satzvektor Bundesland × Jahr (Wien 0,75/0,75 ab
      1. 2026), Beitragsmonats-Allokation (Anspruchsprinzip, historische Sätze/HBG je Beitragsmonatsgruppe, 2025-HBG 6.450 €), DAG-Bewertung § 1 DAG (19,4 %, Schwelle 1,5 × GFG = 826,65 €, ≥ 2 Geringfügige, Lohnsumme ohne SZ). Parameter: rule_parameters_sv_2026.xml + AV-Staffel-Umbau (2025/2026/2027-Zeilen) in rule_parameters_2026.xml.
  • addons/l10n_at_hr_payroll_private (19.0.4.0.0): salary_rules_sv_private.xmlSVDN_SZ-Nachtrag (§ 67 Abs 12 als eigene Abzugszeile; GP3-Lücke: Netto in §-67-Monaten um den SV-DN(SZ) zu hoch), DG-Block SVDG_/SVDG_SZ_/SVDG_UV_GFG (ATP_DG, ohne Nettoeffekt), FLAFDB (§ 41 FLAG 3,7 %), KOMMST (§ 9 KommStG 3 %), DZ (§§ 122/126 WKG, WKO-flag-gated, Satzvektor je BL ⚠ WKO 8.11) mit gemeinsamer LNK-Basis (Zufluss, ohne §-67-Abs-3/6, lit f nur FLAF/DZ, Freibetragsstaffel 1.095/1.460 €).
  • Rechtskorrektur § 2a AMPFG: DN-SV auf laufenden Bezügen und SZ bei BG ≤ 2.225 € sinkt von pauschal 18,07 % auf 15,12 % (ALV-DN 0 %) — GP3-Rechenfälle RF-L1/L3/L5 und die betroffenen Tests nachgezogen (Engine war zuvor ohne Staffel); §-19a-Selbstversicherung 2026 = 83,49 €/Monat (statt ≈ 77,80 € — TASY KVPVBTG19A), Zahlung direkt an den Träger (kein Lohnabzug).
  • Tests: Kern test_sozialversicherung (14) + privat test_sv_private (8) neu; GP3-Suiten §-2a-korrigiert — 74/74 grün auf odoo_dev (Aufruf s. README). Rechenfälle docs/rechenfaelle/sozialversicherung.md; RQ-Privat Abschnitt 4 und KB-KONFLIKTE A7 aufgelöst (§ 810 Abs 3 / § 1 DAG / 83,49/826,65); Plan § 10 GP4-Update.

2026-09-10 — General-AT: Beschaffungsliste abgearbeitet (Primärquellen lokal)

  • 19 RIS-Gesetzestexte (konsolidiert, Fassung vom 10. 09. 2026; UrlG 09. 09. 2026) via firecrawl nach .firecrawl/ris/ beschafft: AZG, AngG, ArbVG, ASVG, EStG 1988, AVRAG, BAO, AÜG, UrlG, BMSVG, IESG, Lohnkontenverordnung 2006, MSchG, MSchV, VKG, KBGG, APSG, FamZeitbG, KommStG. Gesetzesnummern per RIS-Titelsuche ermittelt (Kurztitel-Fallen: AVRAG „-Anpassungsgesetz", BMSVG „Mitarbeiter- und Selbständigenvorsorgegesetz", IESG „-Entgeltsicherungsgesetz", APSG „Arbeitsplatz-Sicherungsgesetz"). Verzeichnis: .firecrawl/ris/_README.md.
  • LStR 2002 als findok-Gesamtdokument XML (Stand 04. 09. 2026, alle Rz; GP3-kritische 766b/911a/1050/1052/1103/1106/1116a/ 11411163 verifiziert) — .firecrawl/ris/findok/.
  • ELDA/eSV-Meldewesen (Stand 07/2026): DM-ORG 42.7.0 „Datenaustausch mit Dienstgebern" (Datensatzbeschreibung SV- Meldungen mBGM/An-Ab-Änderung/JASV und Lohnzettel-Finanz) + Änderungsprotokoll + Prüfkataloge L16 (ab 1. 1. 2026, Stand 12/2025)/L17/§ 109a/§ 109b + Mitteilungsfiles-XSDs — .firecrawl/ris/elda/. SV-Werte 2026 (beitrags- + leistungs- rechtlich) von sozialversicherung.at — HBGL 6.930 €/GFG 551,10 € gegen Kern-Parametersatz verifiziert (inkl. GFG-Aufwertungs- aussetzung 2026 gem. § 810 Abs 3 ASVG).
  • „Krankengeldumlage § 62 ASVG" als Falsch-Prämisse aufgelöst: RIS-Gesamtabfrage „Krankengeldumlage" = 0 Treffer; § 62 ASVG = „Mitteilung über Beitragsrückstände, Beitragsabrechnung" (konsolidierter Text). Kein GP4-Baustein, kein Kern-Parameter. Korrigiert in RECHTSQUELLEN-Privat.md (Abschn. 4/11/13) und IMPLEMENTIERUNGSPLAN-Privat.md (2.1/4.6/4.7/8.10); Herkunft vermutlich deutsches U1-Umlageverfahren (EFZG). Hinweis: RECHTSQUELLEN-Bgld.md Abschn. 9 und PLAN-payroll-bgld.md führen denselben Prüfpunkt — gegen denselben Befund zu verifizieren (dort: öffentliche DG).
  • RECHTSQUELLEN-Privat.md Abschnitt 11 auf Beschaffungsstände umgestellt ([x] = lokal beschafft, §-Verifikation bleibt GP-Aufgabe); offen bleiben Pilotmandant, D3, UGB-Buchungsmatrix, Referenz-KV- Kuratierung (GP1), Bgld-AP0-Abstimmung + ELDA-/FinOnl-Anmeldungen (Nutzerseite). RUNBOOK.md: neue Sektion „Primärquellen-Downloads" (RIS-Titelsuche-Konventionen, Kurztitel-Fallen, Verifikations- befund-Disziplin).

2026-09-10 — General-AT: KB-Rechtsquellen-Abgleich in RECHTSQUELLEN dokumentiert

  • Systematischer Abgleich aller in der Wissensbasis referenzierten Rechtsquellen (571 Einträge, 2.767 legal_bases-Zitate, ~130 Normwerke) gegen personalverrechnung/RECHTSQUELLEN-Privat.md: 15 Gesetze auf Gesetzesebene enthalten (mit §-Ebenen-Lücken), ~85 bewusst außerhalb des R1-Scopes, 12 echte Lücken identifiziert (weder RQ noch Beschaffungsliste noch Plan erfasst).
  • RECHTSQUELLEN-Privat.md: neuer Abschnitt 13 (Abgleichs- methodik + Matrix „enthalten mit §-Lücken", Zuordnung bekannt offen/Plan-erfasst/echte Lücken, Outside-Scope-Abgrenzung mit Compliance-Randnotizen) + Beschaffungslisten-Erweiterung in Abschnitt 11: AVRAG § 2g/§ 11a Abs 4; ASVG-Beitrags-/Melde-Rechts- block (§§ 11/33/34/41/471a/49 Abs 2/3/44 Abs 7/51/53b/60/143); EStG §§ 3/63/67a/69/109a/124b Z 478 lit f; KommStG § 10 + BAO §§ 4/29/30 (Betriebsstätte); AÜG (Überlasser-Betriebsstätte); UrlG §§ 7/10a; BMSVG §§ 7/912/27a/47; IESG § 12; Lohnkonten- verordnung 2006; Mutterschutz-/Karenz-Block (MSchG/MSchV, VKG, KBGG, APSG, FamZeitbG) als Scope-Entscheidung.
  • IMPLEMENTIERUNGSPLAN-Privat.md: 4.2 um AVRAG-§-2g-Feinmechanik (All-in/ÜStd-Pauschale: Grundlohn-Ausweis, Deckungsrechnung, § 7-UrlG-Ablöseverbot) erweitert; 8.13 um den Mutterschutz-/ Karenz-Block (Wochengeld = DG-Payroll-Berechnung) ergänzt; Abschnitt 10 dokumentiert den Nachtrag. Keine Änderung an D1D4, Scope R1, Meilensteinen, Budget.

2026-09-10 — General-AT: Implementierungsplan um Wissensbasis-Anbindung aktualisiert

  • personalverrechnung/IMPLEMENTIERUNGSPLAN-Privat.md: neuer Abschnitt 2.1 Wissensbasis-Anbindung — Verbindlichkeits-Regime (RECHTSQUELLEN-Privat bleibt verbindlich, KB = kuratierte Sekundärquelle mit ID + Stand) und Cluster-Anker je GP (571 Einträge/67 Cluster, Batches 19).
  • 4.24.7, 5, 6: kuratierte KB-Belege nachgetragen — GP2-Feinmechanik (Mehrarbeit § 19d AZG vs. ÜStd, zwei Nachtfenster 225/197, Feiertagsarbeitsentgelt ab 2026 wieder § 68-begünstigt, SZ-Basis je KV-Begriff), GP3 (Sechstelformel, Nachzahlungsmodi, Aufrollung § 77 Abs 3/4/4a), GP4 (beitragsfreie Bezugsbestandteile § 49 Abs 3 als Jahreskumulative, AK-Umlage/WF als DN-Lohnabzüge, altersabhängige Satzausschaltungen, AV-Staffel 2026), GP5 (freier BV-Monat taggenau, § 7-BMSVG-Fiktionen), GP7 (L16-KZ- Struktur, mBGM-Fristen, Schwerarbeitsmeldung, § 109a), GP8 (Jahres-Retro-/Aufrollungslauf, Fristenkalender).
  • Neue Offenpunkte: 8.11 Zuschlag zum DG-Beitrag DZ (§§ 122/126 WKG, 0,12 % Bundes- + 0,310,40 % Landeskammeranteil 2026) — Inventarlücke, Grundsatzentscheidung vor GP4; 8.12 KB-Konflikt- familien (AK-Umlage-Tragung, WBF-Wien 1,5 %, §-124b-Zitierung, Beispiel-DN-SV 18,07 % vs. 17,57 %, NSchAB/DAG-Belege) — RIS-Klärung vor GP3/GP4; 8.13 KB-Scope-Kandidaten (Lohnpfändung, Kranken- stand-EFZ/Krankenentgelt, Urlaubsersatzleistung, NSchAB, fallweise Beschäftigung, Sachbezüge, Prämien/Provisionen, Reisekosten/ Pendler) — Entscheidung über Pilotmandant/GP0, keine stillschweigende Scope-Erweiterung. Keine Änderung an D1D4, Scope R1, Meilensteinen, Budget.

2026-09-09 — General-AT GP1: KV-Framework umgesetzt (M2)

  • addons/l10n_at_hr_payroll_private (19.0.1.0.0) von Gerüst auf GP1-Stand: l10n.at.payroll.kv (Trace-Link zur KV-Library), kv.wert (versionierte Eckwerte, Muster hr.rule.parameter.value), kv.gruppe/.stufe (Erfahrungsstufen-Jahrestabellen), Vertragsfelder auf hr.version/hr.employee (kv_id, kv_gruppe_id, erfahrungsstufe, ueberzahlung), Import-Wizard (Tabellenpaste, Sprungwarnung > 10 %, neue gueltig_ab-Versionen) samt Views/Menus/Security.
  • Seed D2 (SI-2203 Handwerk und Gewerbe + SI-2748 Metallgewerbe): Gehaltstabellen ab 1. 1. 2026 aus den KV-Library-Volltexten kuratiert (18 Gruppen, 131 Stufenwerte, 27 Eckwerte; inkl. Sonder- Vorrückungsverläufe IV-M/V-OM und aufgelassener VG I).
  • Test-Suite test_kv_katalog (8 Fälle); statisch validiert (py_compile, XML-Well-formedness, CSV-Konsistenz, Wizard-Logiksimulation) — Runtime-Abnahme auf dem Dev-Host ausständig (PostgreSQL).

2026-09-09 — General-AT GP0: Rechtsquellen verifiziert (M1)

  • personalverrechnung/RECHTSQUELLEN-Privat.md angelegt (GP0-Aufgabe 1): verbindliches Rechtsinventar für l10n_at_hr_payroll_private.
  • An Primärquellen (RIS, jusline-RIS-Spiegel) verifiziert: FLAF-DB § 41 FLAG 3,7 % 2026 (2,7 % ab 2028; GesNr 10008220); KommStG 3 % (GesNr 10004841); BMSVG 1,53 % auf Entgelt + SZ ohne HBG-Cap, § 15 Anwartschaft (keine Monatsentgelt-Staffel), § 14 Abs 2 Verfügungsausschluss; UrlG 30/36 Werktage, § 6-Urlaubsentgelt; EStG 1988 § 67 sonstige Bezüge (0/6/27/35,75 % im Jahressechstel, Freigrenze 2.615 €, Kontrollsechstel § 77 Abs 4a) und § 68 Zulagen/ Zuschläge (2026-ÜStd-Maßnahme 15 Überstunden/170 €).
  • Plan-Korrekturen IMPLEMENTIERUNGSPLAN-Privat.md: Urlaubsentgelt § 6 UrlG statt § 9 (seit 2001 aufgehoben); 13./14.-Begünstigung über § 67 EStG statt „§ 68 Abs 5/6" (klärt auch die Rechtsbasis des Bgld-Offenpunkts P9); EOSB-Anwartschaftsmodell bestätigt; payroll-Skill-Zitat korrigiert.
  • Offen in GP0: Pilotmandant, Referenz-KV-Kuratierung (D2-KVs), ELDA-/FinOnl-Spezifikationen, AZG/AngG/ArbVG-Volltexte, LStR 2002, UGB-Buchungsmatrix.

2026-09-09 — General-AT-Implementierungsplan freigegeben (M0)

  • personalverrechnung/IMPLEMENTIERUNGSPLAN-Privat.md für l10n_at_hr_payroll_private (General-AT, KV-basierte Privatwirtschaft) erstellt und freigegeben: GP0GP10; nächster Schritt M1 (GP0) (RECHTSQUELLEN-Privat.md anlegen, RIS-/findok-Verifikationen, Odoo-API-Neuverifikation, Pilotmandant-Definition, UGB-Buchungsmatrix).
  • Freigabe-Entscheidungen: D1 Plan unter obigem Pfad geführt; D2 Referenz-KVs R1 = SI-2203 Handwerk und Gewerbe + SI-2748 Metallgewerbe (RUNBOOK-Rechenfallset; Feinjustierung je Pilotmandant in GP0); D3 Kern-Vorfinanzierung durch General-AT — AP3 (Lohnsteuer) und AP4 (SV/DB-Regeln) werden im Kern l10n_at_hr_payroll auf General-AT-Kosten gebaut (Spiegelung der Bgld-Entscheidung „AP3 im Kern"; die GemBG-Structure erbt sie). Meldewesen/Belege (AP5/AP6) analog, falls der Bgld.-Auftrag bis M7 nicht erteilt ist; bei Auftragserteilung Anrechnung/Umlegung per Change-Request. D4 Odoo-19-Source steht kurzfristig als Geschwister-Checkout bereit (API-Neuverifikation erste Aufgabe in M1).
  • Budgettransparenz: General-AT-spezifischer Anteil ≈ 120172 PT (Rahmen personalverrechnung/PLAN-repo-split.md: ~125175 PT), inkl. D3-Vorfinanzierung ≈ 180258 PT.
  • Housekeeping: README-Modultabelle und Gerüst-README l10n_at_hr_payroll_private auf Planstand aktualisiert; .agents/MEMORY.md fortgeschrieben.

2026-09-09 — Repo-Split aus gem360 (Migration)

  • History-Import der Payroll-Commits aus gem360-git (Branch dev-payroll, pfad-gefiltert via git filter-repo; siehe personalverrechnung/PLAN-repo-split.md). Branch heißt hier main.
  • l10n_at_hr_payroll (19.0.1.0.0) ausgegründet: SV-Werte 2026 als hr.rule.parameter-Seed, TASY-Mapping + Import-Wizard; Modelle umbenannt gemeinde.payroll.tasy.*l10n.at.payroll.tasy.*.
  • l10n_at_gemeinde_payroll → 19.0.1.4.0: hängt nun an l10n_at_hr_payroll statt l10n_at_vrv2015 (VRV-Verbleib: Brücke l10n_at_gemeinde_payroll_vrv im gem360-Repo, AP7); Beschreibung auf AP1+AP2-Stand korrigiert.
  • Bootstrap: AGENTS.md, Skills (payroll, odoo19-development, agent-memory), README, CHANGELOG; l10n_at_hr_payroll_private als Gerüst (README only).