Files
odoo-at-payroll/.agents/MEMORY.md
T
fegger 3797e30b1c [ADD] personalverrechnung: General-AT plan and legal sources (M0/GP0)
Approved implementation plan for l10n_at_hr_payroll_private (M0,
decisions D1-D4) and the GP0 legal-source inventory
RECHTSQUELLEN-Privat.md, verified against primary sources (RIS,
jusline):

- FLAF-DB § 41 FLAG: 3.7% for 2026, 2.7% from 2028 (GesNr 10008220);
  KommStG 1993: 3% (GesNr 10004841)
- 13th/14th salary taxation runs via § 67 EStG (Jahressechstel fixed
  rates, control sixth § 77 Abs 4a); § 68 covers allowances/surcharges
  only - plan citation corrected, also fixes the legal basis of the
  Bgld open point P9
- Urlaubsentgelt is § 6 UrlG (§ 9 repealed since 2001) - corrected
- EOSB: no Monatsentgelt staffel; § 15 BMSVG pays out the Anwartschaft
  with § 14 Abs 2 Verfügungsausschluss matrix - GP5 design confirmed
- 2026 overtime measure: first 15 hours, max 170 €/month
  (§ 124b Z 476 lit c BGBl I 43/2026)

Plan section 8 items 3-6 and UrlG (8) marked verified; private module
skeleton README, MEMORY, CHANGELOG and payroll skill updated (§ 67
citation fix, RECHTSQUELLEN-Privat.md as required source).
2026-09-09 21:51:58 +02:00

11 KiB
Raw Blame History

Agent Memory — odoo-at-payroll

Current focus

General-AT GP0: Rechtsverifikationen erledigt (2026-09-09): personalverrechnung/RECHTSQUELLEN-Privat.md angelegt — verbindliches Rechtsinventar für l10n_at_hr_payroll_private; Plan-Abschnitt 8 Punkte 36 + UrlG verifiziert. GP0-Korrekturen: 13./14.- Begünstigung = § 67 EStG (nicht § 68 Abs 5/6 — § 68 nur Zulagen/ Zuschläge; klärt zugleich die Rechtsbasis des Bgld-Offenpunkts P9); Urlaubsentgelt = § 6 UrlG (§ 9 seit 2001 aufgehoben); EOSB ohne Monatsentgelt-Staffel (§ 15 BMSVG Anwartschaft — GP5-Planform bestätigt). Werte 2026: FLAF § 41 FLAG 3,7 %, KommSt 3 %, ÜStd-Freibetrag 15 Überstunden/170 € (§ 124b Z 476 lit c idgF BGBl I 43/2026). GP0-Rest (Nutzer-Input/Beschaffung): Pilotmandant/ Golden-Master, Referenz-KV-Kuratierung (SI-2203/SI-2748), ELDA-/FinOnl- Specs, UGB-Buchungsmatrix; Volltexte AZG/AngG/ArbVG § 12/LStR 2002. D3 (Kern-Vorfinanzierung) und D4 unverändert; Bgld.-Auftrag weiter bei offenem AP0. Runtime-Tests: source-seitig möglich; lokal fehlt noch PostgreSQL. Nächster Schritt: GP1 (KV-Framework) nach GP0-Abschluss.

Completed

  • GP0-Rechtsverifikationen General-AT (2026-09-09): RECHTSQUELLEN-Privat.md erstellt: FLAF § 41 FLAG (RIS GesNr 10008220 — 3,7 % ab 2025, 2,7 % ab 2028; Basis Arbeitslöhne; 1.095-€-Freibetrag bei ≤ 1.460 €), KommStG 1993 (GesNr 10004841 — 3 %; § 3 Abs 3 Gemeindefreiheit; § 11 Verfahren), BMSVG (1,53 % auf Entgelt + SZ, kein HBG-Cap; § 14 Abs 2 Verfügungsausschluss; § 15 Anwartschaft statt Staffel; § 17 Verfügungsoptionen), UrlG (§ 2 30/36 Werktage; § 6 Urlaubsentgelt; § 10 Ersatzleistung), EStG 1988 (§ 33/66 Tarif 2026; § 67 sonstige Bezüge 0/6/27/35,75 % im Jahressechstel, Freigrenze 2.615 €, Kontrollsechstel § 77 Abs 4a, § 67 Abs 3/6/8 Abfertigungen; § 68 SZFN 400 €, ÜStd 10/120 €, 2026: 15/170 €, Nachtarbeit 600 €). Plan (Abschnitte 1, 4.24.4, 6, 8) auf Verifizierungsstand gebracht; payroll-Skill §-Zitat korrigiert.
  • D4-Neuverifikation komplett (2026-09-09): verifiziert gegen beide in-repo Checkouts — odoo/ (Community) und odoo_enterprise/odoo (Odoo 19.0.0; gemergter Baum: odoo-Paket + 1.452 Addons, Community + Enterprise in einem Addons-Verzeichnis, u. a. Referenz-Lokalisierungen l10n_be_hr_payroll/l10n_ch_hr_payroll; l10n_at_payroll existiert erwartungsgemäß nicht); beide in .gitignore. Community-Teil: hr.version (hr/models/hr_version.py L35; wage/ structure_type_id/resource_calendar_id versioniert), kalenderbasierte Work-Entry-Erzeugung (hr_work_entry/models/hr_version.py L420 _generate_work_entries
    • Postprocess-Hooks L500/L506), hr.work.entry.type + Entry-States (hr_work_entry.py L39). Enterprise-Teil: work_time_rate/hours_per_week auf Version (hr_payroll/models/hr_version.py L48/L39), work_entry_source (L30; Attendance-Integration hr_payroll_attendance/models/ hr_payslip.py L29), hr.payslip.run (hr_payslip_run.py L23; state L31, date_start L41, date_end L45), EOSB-Muster l10n_ae_hr_payroll (_inherit = "hr.payslip" L10, _l10n_ae_get_eos_daily_salary L95, je-Version-Feld l10n_ae_eos_daily_salary L102, Structure-Type-Inherit), Engine-Mechanismen an den Bgld-Plan-Zeilenreferenzen bestätigt (payslip._rule_parameter hr_payslip.py L951, localdict, hr.salary.rule.account_debit/account_credit L11/L15, Posting-Hooks _action_create_account_move L54 / _prepare_line_values L125 / _prepare_slip_lines L166, journal_id auf Structure via hr_payroll_account/models/hr_payroll_structure.py L15, hr.payslip.input.type hr_payslip_input_type.py L9, hr.payroll.structure.type.country_id L46); hr_payroll_account_iso20022 vorhanden. l10n_at-Konten (l10n_at/data/template/account.account-at.csv, XML-ID-Muster l10n_at.chart_at_template_<code>): Sonderzahlungen 6240, Verrechnung Lohnsteuer 3540 / Finanzamt 3530 / SV 3600, Abfertigungsrückstellungen 3000, KommSt 6660, FLAF-DB 6661, DZ 6662, Wien-Abgabe 6663 — Matrix-Lücken (GP0): Löhne-/Arbeiter-Konto und SV-DG-Aufwandskonto fehlen im Standard-Template. Hinweis: Build mit eigenem Versionsschema (Manifests teils ohne version-Key, z. B. l10n_at „3.2.1"); maßgeblich ist release.py version_info (19, 0, 0).
  • General-AT-Plan M0 (2026-09-09): IMPLEMENTIERUNGSPLAN-Privat.md erstellt und freigegeben — Entscheidungen D1 (Pfad), D2 (Referenz-KVs SI-2203 Handwerk/Gewerbe + SI-2748 Metallgewerbe), D3 (Kern- Vorfinanzierung durch General-AT), D4 (Odoo-19-Source kurzfristig; API-Neuverifikation in M1). Umfang: General-AT-Anteil ≈ 120172 PT, inkl. D3-Vorfinanzung ≈ 180258 PT (M1M9, ~79 Monate). README-Modultabelle, Gerüst-README l10n_at_hr_payroll_private und CHANGELOG auf Planstand gebracht.
  • KV-Library (2026-09-09): tools/fetch_kv_portal.py (ÖGB-Portal: Sitemap/Dashboard/Structure/Slices/Topics-JSON-APIs, 593 Varianten, Catalog+Texte JSON/MD), tools/fetch_wko_kv.py (WKO-DB: 1.820 Übersichtsseiten, 614 aktuelle Dokumente, Match gegen Baseline), tools/build_kv_catalog.py (Merge, Kammer-Klassifikation, Crosscheck, manual-review-Listen), quellen/kv/chambers/chambers.json (Kammer-Quellen kuratiert, inkl. Lücken: GÖD member-only, RA/Notariat nicht öffentlich), personalverrechnung/RUNBOOK.md (Update-Zyklus). 407 WKO↔ÖGB-Paare, 30 Datumsdifferenzen geflaggt, 195 unklassifizierte (Einzenträger-KVs) zur manuellen Sichtung.
  • Migration gem360 → odoo-at-payroll (2026-09-09): dev-payroll nach origin gepusht (Backup), History-Import per git filter-repo (Branch hier: main), Modul-Split (TASY/SV-Layer in den Kern), Model-Rename l10n.at.payroll.tasy.*, Skills/AGENTS/MEMORY neu aufgesetzt, Manifest-Beschreibung auf AP1+AP2-Stand korrigiert.
  • Vorher (aus gem360-Historie): AP1 Katalogmodell (35 Gruppen/433 Werte 2026), AP2 Entgelt-Engine (13 Regeln, Structure GEMBG.BGLD), SV-Werte aus ÖGK TASY-LSWH; 3 Testsuiten (Katalog, Entgelt, TASY-Import).

Open issues / blockers

  • General-AT GP0-Rest offen (2026-09-09): Pilotmandant/Golden-Master fehlt; ELDA-/FinOnl-Specs mit der Bgld-AP0-Beschaffungsliste abstimmen; D3-Anrechnungsmechanik vertraglich regeln (Bgld.- Auftragserteilung); Referenz-KV-Kuratierung (SI-2203/SI-2748); UGB-Buchungsmatrix; Volltexte AZG/AngG/ArbVG § 12/LStR 2002 beschaffen. Odoo-Quellen liegen in-repo (D4 erledigt); Runtime-Tests brauchen noch PostgreSQL (Dev-Host).
  • KV-Library, manuell offen (2026-09-09): manual_review-Listen im kv-catalog.json (Match-Heuristik-Flüchtigungen, 30 Datumsdifferenzen, 195 unklassifizierte Einzelträger-KVs); Kammer-Scan-PDFs (RA Vbg, LÄK NÖ/OÖ/Bgld) ohne OCR nicht maschinenlesbar; Angestelltenärzte-KV nirgends öffentlich. Bibliothek inkl. Texte committed als 5b629a5 (lokaler main, noch nicht gepusht).
  • gem360-seitig gilt: Branch dev-payroll dort vorerst erhalten, aber keine Payroll-Implementierung mehr in gem360 und kein Merge nach dev/va_module (Guardrails im gem360-Handoff). Die Brücke l10n_at_gemeinde_payroll_vrv (AP7) wird in gem360 gegen getaggte Releases dieses Repos gebaut.
  • Runtime-Validierung offen (2026-09-09): Modul-Install und die 3 Testsuiten (Katalog, Entgelt, TASY-Import) sind lokal nicht lauffähig (kein PostgreSQL). Odoo-Quellen jetzt in-repo verfügbar — odoo/ (Community, odoo-bin) + odoo_enterprise/odoo (gemergter Enterprise-Baum; Addons-Path odoo_enterprise/odoo/addons,addons). Auf dem Dev-Host nachholen: -i l10n_at_hr_payroll,l10n_at_gemeinde_payroll --test-tags /l10n_at_hr_payroll,/l10n_at_gemeinde_payroll. Statisch grün: py_compile + XML-Well-formedness über alle Addon-Dateien.
  • Bgld.-Auftrag: AP0 offen (Bestandsaufnahme Pilotmandant, ELDA/FinOnl- Specs, VRV-Buchungsmatrix, offene RIS-Verifikationen) — IMPLEMENTIERUNGSPLAN-Bgld.md Abschnitt 8.
  • Odoo-Upgrades künftig in beiden Repos (gem360 + dieses) gegen denselben Odoo-Pin validieren.

Decisions & conventions

  • General-AT D1D4 (2026-09-09): Plan geführt als personalverrechnung/IMPLEMENTIERUNGSPLAN-Privat.md; Referenz-KVs R1 = SI-2203 + SI-2748 (Feinjustierung je Pilotmandant in GP0); D3-Vorfinanzierung — General-AT baut die sektor-neutralen Kern-Blöcke AP3/AP4 (und nötigenfalls AP5/AP6) in l10n_at_hr_payroll vor (Symmetrie zur Bgld-Planungsentscheidung „AP3 im Kern, damit das General-Produkt ihn erbt"); Anrechnung/Umlegung bei Bgld.- Auftragserteilung per Change-Request; D4 — Odoo-19-Source in-repo: odoo/ (Community) + odoo_enterprise/odoo (gemergter Enterprise-Baum), beide in .gitignore; D4-Verifikation komplett erledigt.
  • GP0-Rechtskorrekturen General-AT (verbindlich) (2026-09-09): 13./14. Bezüge = sonstige Bezüge iSd § 67 EStG (§ 68 nur Zulagen/Zuschläge — „§ 68 Abs 5/6" war falsch); Urlaubsentgelt = § 6 UrlG (§ 9 seit 2001 aufgehoben); EOSB = BMSVG-Anwartschaft ohne Monatsentgelt-Staffel (§ 14 Abs 2 Ausschlussmatrix, § 15 Auszahlung Beiträge + Erträge); Bgld-P9-Rechtsbasis damit § 67 (Detailauslegung LStR 2002 bleibt offen).
  • KV-Quellen-Architektur (2026-09-09): Main source je KV = die verantwortliche Arbeitgeberkammer; kollektivvertrag.at (ÖGB) immer als Crosscheck-Baseline (einziger vollständiger Korpus). WKO-DB deckt nur WKO-KVs ab (keine Arzt/Apotheke/RA/Notar/Land-Zweige). Lohntafel-PDFs nur verlinken, nicht downladen; im Text enthaltene Tabellen konvertieren. Historische Slices nur bei Bedarf (Default: aktuelle Version).
  • SKILL.md braucht YAML-Frontmatter (name = Verzeichnisname, description, disable-model-invocation).
  • Abhängigkeitsrichtung: gem360 → dieses Repo (nur die Brücke hängt an beiden), nie umgekehrt.
  • Tests nur auf Wegwerf-DB (nie gem360_dev); je Änderung py_compile + XML-Well-formedness-Check.
  • .firecrawl/ bleibt lokal unversioniert (Rechts-Rohquellen); bei Fehlen neu beschaffen — niemals aus Trainingswerten arbeiten.

Files that matter right now

  • personalverrechnung/IMPLEMENTIERUNGSPLAN-Privat.md — General-AT (freigegeben; GP0-Rechtsverifikationen erledigt, GP0-Rest offen; D4-Protokoll in Abschnitt 2)
  • personalverrechnung/RECHTSQUELLEN-Privat.md — verbindliche Rechtslage General-AT (GP0-Inventar; Statusmarks /⚠/)
  • personalverrechnung/RUNBOOK.md — KV-Library pflegen (Update-Zyklus)
  • personalverrechnung/quellen/kv/kv-catalog.json|.csv — der Crosscheck-Katalog
  • personalverrechnung/quellen/kv/chambers/chambers.json — Kammer-Quellen-Registry
  • personalverrechnung/tools/fetch_kv_portal.py / fetch_wko_kv.py / build_kv_catalog.py — Fetcher + Merge
  • personalverrechnung/IMPLEMENTIERUNGSPLAN-Bgld.md — AP3+ (Freigabe-Gate)
  • personalverrechnung/RECHTSQUELLEN-Bgld.md — verbindliche Rechtslage
  • personalverrechnung/ANGEBOTS-KALKULATION-Bgld-Personalverrechnung.md — AP-Rahmen, Prämissen P1P10
  • odoo/ + odoo_enterprise/ — Odoo-19-Checkouts (unversioniert, in .gitignore; Enterprise-Baum gemergt: Community+Enterprise in einem Addons-Verzeichnis; Test-Addons-Path odoo_enterprise/odoo/addons)
  • addons/l10n_at_hr_payroll/ — Kern (SV/TASY; AP3 landet hier)
  • addons/l10n_at_gemeinde_payroll/ — GemBG (AP1+AP2)