Commit Graph

16 Commits

Author SHA1 Message Date
fegger f988ad96fe [IMP] odoo-at-payroll: record KV library commit in MEMORY 2026-09-09 19:10:25 +02:00
fegger 5b629a5916 [ADD] personalverrechnung: machine-readable KV library (all current collective agreements)
Cross-checked catalogue of all currently valid Austrian collective
agreements, per the source policy: main source = the responsible
employer-side chamber, kollektivvertrag.at (OEGB-Verlag) as complete
cross-check baseline.

- oegb/: 593 variants from kollektivvertrag.at with full consolidated
  texts (JSON primary format, Markdown for review/diff) plus
  catalog.json/.csv; fetched via the portal's JSON servlets
  (dashboard/structure/slices/topics), resumable
- wko/: 614 current documents from the WKO KV database (1,820 branch
  overviews across 10 regions) with texts and catalog; match-report
  against the baseline: 407 pairs, 30 date disagreements flagged
- chambers/chambers.json: curated registry of chamber-side sources and
  publication gaps (GOeD member-only, RA/Notariat not public, OCR-less
  scan PDFs, missing hospital-doctors KV)
- kv-catalog.json/.csv: merged catalogue, 768 entries, chamber
  classification, main_source, cross_check status, manual_review lists
- tools/fetch_kv_portal.py / fetch_wko_kv.py / build_kv_catalog.py:
  stdlib-only fetchers and merge step, each with a --refresh diff mode
- RUNBOOK.md: update cycle for keeping the library current (annual,
  tied to the Wartung rhythm and KV rounds)

Lohntafel PDFs are linked but not downloaded; wage tables contained in
the KV texts are converted. No Odoo module changes.
2026-09-09 19:10:07 +02:00
fegger 99728c1f23 [IMP] odoo-at-payroll: note pending runtime validation in MEMORY 2026-09-09 13:52:20 +02:00
fegger 6205cca903 [ADD] odoo-at-payroll: repo bootstrap (AGENTS, skills, README, CHANGELOG, private skeleton) 2026-09-09 13:43:10 +02:00
fegger 85b9536d1a [MOV] l10n_at_gemeinde_payroll: extract SV/TASY core into l10n_at_hr_payroll 2026-09-09 13:42:58 +02:00
fegger 64197a167e [ADD] personalverrechnung: Repo-Split-Plan Personalverrechnung 2026-09-09 13:36:33 +02:00
fegger a7959c1259 [IMP] l10n_at_gemeinde_payroll: implement AP2 pay computation engine (GemBG Bgld.)
Entgelt-Engine nach Implementierungsplan AP2 (freigegeben 2026-09-09):

- Structure Type "Bgld. GemBG 2014" + Structure "Gemeindebedienstete"
  mit 4 Kategorien (GEMBG_BRUTTO, GEMBG_ABZUG, GEMBG_NETTO, GEMBG_DG).
- Work-Entry-Types: Überstunden Tag/Nacht (§ 76), Mehrdienstleistung,
  Journaldienst (§ 79), Bereitschaft (§ 80), Sonn-/Feiertag (§ 78).
- Input-Types: Erschwerniszulage (§ 83), Fahrtkostenzuschuss (§ 88),
  Jubiläumszuwendung (§ 89).
- Entgelt-Regeln (13 Rules):
  * ME — Monatsentgelt: Katalog-Lookup (Gruppe+Stufe+Stichtag),
    Ausbildungsphase 5 % Abzug (§ 133h), Teilzeit via work_time_rate.
  * KIZU — Kinderzulage: kinder_anzahl × 15,60 EUR (§ 61 GemBG),
    bei Teilzeit UNGEKÜRZT (§ 59 Abs 2).
  * FUZU — Funktionszulage: hr.version-Feld × work_time_rate (§ 62).
  * UEZ_TAG/UEZ_NACHT — Überstundenvergütung (§ 76):
    Grund = ME / (4,33 × Wochenstunden); Zuschlag 50 % Tag / 100 % Nacht.
  * JZU — Journaldienstzulage (§ 79): Work-Entry × Parametersatz.
  * SFZU — Sonn-/Feiertagszulage (§ 78): Stunden × Grundvergütung × %.
  * BERB — Bereitschaftsentschädigung (§ 80): Stunden × Parametersatz.
  * ERZU/FKZ/JUB — Input-basierte Bezüge (§§ 83/88/89).
  * SZQ — Sonderzahlung QUARTALSWEISE (§ 133n): in Quartalsendmonaten
    (März, Juni, September, Dezember) 50 % × (ME + KIZU).
  * NETTO — Kategoriensumme (wird mit AP3/AP4 erweitert).
- hr.version-Felder: kinder_anzahl, funktionszulage, ausbildungsphase
  (§ 61/§ 62/§ 133h) mit Employee-Spiegel nach Engine-Muster.
- Rule-Parameter: Kinderzulage 15,60 EUR, Journaldienstzulage,
  Sonn-/Feiertags-%, Bereitschaftsstunde (letzte 3 als AP0-Platzhalter
  mit 0.0 — Werte aus der Bezügeanpassung nach Beschaffung).
- Tests (8 Rechenfälle): Vollzeit av1 Stufe 1, Kinderzulage 2 Kinder
  = 31,20 EUR, Funktionszulage, Ausbildungsphase 5 % Abzug,
  SZ Quartalsende + Nicht-Quartalsende, Netto=Brutto (AP3/AP4 offen),
  Stufe 12 Max.
- Employee-Form um Zulagen-Gruppe erweitert.

Modul-Version 19.0.1.3.0. Statische Validierung grün; Runtime-Testlauf
auf dem Dev-Host ausständig.
2026-09-09 13:01:00 +02:00
fegger 42bb759fd1 [IMP] l10n_at_gemeinde_payroll: implement SV value layer (AP4) from OEGK TASY
SV-Werte-Implementierung nach dem freigegebenen TASY-Plan (PLAN-TASY-SV-Import):

- hr.rule.parameter-Seed 2026 (20 Parameter, generator-erzeugt aus dem
  ÖGK TASY-LSWH-Export, Stichtag 2026-07-01): Geringfügigkeit 551,10 EUR
  (GFGBTG, ab 2025 — Aufwertungsaussetzung korrekt abgebildet), HBG
  monatlich 6.930 EUR (HBGALLG tgl. x 30), HBG SZ 13.860 EUR, KV
  3,87/3,78, PV 10,25/12,55, AV 2,95/2,95, UV 0/1,10, IESG 0/0,10,
  BV 1,53, AK/WF geführt, § 2a AMPFG-Staffel aus dem SV-Werte-Report.
  Generator mit Herkunftsnachweis + Erwartungswert-Ankern
  (personalverrechnung/tools/gen_sv_parameters_2026.py, Exit 1 bei
  Abweichung von den offiziellen Ankern).
- TASY-Quelldatei committet (personalverrechnung/quellen/, 5 MB —
  öffentliches Tarifdatenmaterial ohne Personendaten) für Seed- und
  Testreproduzierbarkeit.
- Deklarative TASY-Mapping-Tabelle (gemeinde.payroll.tasy.mapping,
  data XML): bbb-Codes (Cent, Faktor z. B. x 30) und Tarifzweige
  (_dn/_dg-Suffix-Konvention) — keine festen Werte im Code.
- Import-Wizard (TransientModel, lxml safe parsing):
  Beschaeftigtengruppe B002 ("Angestellte") -> Tarifgruppe ->
  tarifgruppeSetZuord -> Tarifset -> Tarif; bei Varianten gewinnt die
  Split-Variante (DN>0 und DG>0), dann die einseitige DG-Variante (UV/BV);
  freie-DN-Varianten verlieren. Preview mit Delta, Sprungwarnung > 10 %,
  Warnzeilen werden nie automatisch übernommen; Schreiben versionierter
  hr.rule.parameter.value-Sätze erst nach expliziter Bestätigung.
- Tests (4 Suiten): Seed-Werte am Stichtag, Fixture-Parser
  (Split-Präferenz, Cent-Rechnung), Versionsverhalten (Update statt
  Duplikat), Echtdaten-Test gegen den 5-MB-Export (Auflösung == Seed,
  keine Warnzeilen).
- Security/Views/Menüs für Mapping + Wizard; Modul-Version 19.0.1.2.0.

Statische Validierung grün (py_compile, XML, Manifest); Runtime-Testlauf
auf dem Dev-Host ausständig.
2026-09-09 12:47:10 +02:00
fegger 8e0b169b73 [ADD] personalverrechnung: Plan SV-Werte-Implementierung (TASY-LSWH)
Analyse des ÖGK-TASY-Exports (Stichtag 2026-07-01, 5 MB): tarife/tarifsets/
tarifgruppen/beschaeftigtengruppen-Kette mit DN/DG-Anteilen je Zweig
(KV/PV/AV/UV/IE/DG/AK/WF/BV), bbwerte in Cent mit Gültigkeit; verifizierte
Deckung mit dem SV-Werte-Report 2026 (GFG 551,10 EUR, HBG SZ 13.860 EUR,
KV 3,87/3,78, AV 2,95/2,95). Plan: hr.rule.parameter bleibt alleiniger
Wertespeicher (Engine-Mechanik, Konsum via payslip._rule_parameter);
Seed 2026 per Generator mit Herkunftsnachweis + jährlicher
TASY-Import-Wizard (stichtagsbasierte Auflösung über die Gruppenkette,
Preview-Differenz mit Plausibilitätswarnung, explizite Bestätigung) +
Mapping-Tabelle TASY-Code/Zweig -> Parameter. Nicht in TASY: öffentlicher
FLAF-DB (§ 49a Abs 8/9, AP0/RIS), Lohnsteuer, KommSt. Offene Punkte
(HBG x30-Konvention, AMPFG-Staffelauflösung, Commit der 5-MB-Quelldatei)
im Plan dokumentiert; Freigabe-Antrag gestellt.
2026-09-09 12:26:14 +02:00
fegger 30270f9877 [IMP] l10n_at_gemeinde_payroll: implement AP1 pay scale model (GemBG Bgld.)
Katalogmodell nach Implementierungsplan AP1 (freigegeben 2026-09-09):

- ``gemeinde.payroll.entlohnungsgruppe`` (Code, Schema, §, Bundesland,
  Vorrückungszeitraum je Gruppe; § 66 Abs 2 GemBG: 4 Jahre, abweichend
  2 Jahre für Betreuungspersonen-/Sondergruppen) und
  ``gemeinde.payroll.entlohnungsstufe`` (Stufe, Monatsentgelt, Stichtag,
  unique je Gruppe/Stufe/Stichtag) mit Stichtags-Lookup-Helfern.
- Seed 2026: 35 Entlohnungsgruppen, 433 Werte (Schemata I/gv, II/gh,
  Ia/bv, IIa/bh, kb, av sowie §-Gruppen 150c/151/151c), Werte aus der
  konsolidierten GemBG-Fassung 09.09.2026 (Wert 1.7.2026 gemäß Artikel 4
  RV 0715/XXIII. GP; 2025er-Stichtagsannahme für nicht 2026 angepasste
  Tabellen als AP0-Verifikationspunkt dokumentiert). Generator mit
  Herkunftsnachweis: personalverrechnung/tools/extract_gembg_katalog.py.
- GemBG-Felder auf der Payroll-Version (hr.version) plus Employee-Spiegel
  nach dem Engine-Muster (related/inherited): Entlohnungsgruppe, Stufe,
  Besoldungsdienstalter, Vorrückungstermin — berechnet nach § 66 Abs 2
  (erster Tag des Monats nach Vollendung weiterer n Jahre BDA), manuell
  überschreibbar für Überleitungsfälle (§§ 157a ff).
- Vorrückungs-Wizard (§ 66 Abs 2): fällige Versionen zum Stichtag,
  Stufenerhöhung mit Höchststufen-Schutz und Ergebnis-Notification —
  bewusst kein stilles Mutieren im Lohnlauf (Dokumentationspflicht).
- Views/Menüs (Personalverrechnung Bgld. unter Payroll), Security auf
  hr_payroll-Gruppen, Employee-Form-Anbindung in payroll_group.
- Tests (Rechenfälle AP1): Seed-Werte inkl. Quellenanomalie kb1a/6,
  Stichtags-Lookup, Jahresversionierung, Vorrückungstermin (BDA 15.03.2020
  -> 1.4.2028), Wizard-Anwendung mit Höchststufen-Skip.

Statische Validierung grün (py_compile, XML, Manifest, CSV-Integrität);
Runtime-Testlauf auf dem Dev-Host (gem360_dev) ausständig, wie im
Implementierungsplan M2 vorgesehen.
2026-09-09 11:55:15 +02:00
fegger 4e79c8b8b1 [ADD] personalverrechnung: Implementierungsplan Bgld. Personalverrechnung
Plan zur Freigabe (AGENTS.md Phase 3): Anforderungsbild, am Odoo-19-Source
verifizierte Erweiterungspunkte (hr.rule.parameter-Konsum via
payslip._rule_parameter, localdict-Kontext, Regel-Konten, Posting-Hook
_prepare_line_values für budget_position_id, Refund-Mechanik,
Work-Entry-Types), Modul-Layout, Katalogmodell (Entlohnungsgruppen/-stufen
mit Jahresversionierung aus Bezügeanpassungs-Tabellen), Regelinventar
(Monatsentgelt, Kinderzulage ungekürzt, Zulagen, Über-/Mehrdienstleistung,
quartalsweise SZ, Lohnsteuer § 33/§ 68, SV/DG, öffentlicher FLAF-DB, IESG),
VRV-Buchung über vrv_ansatz_id auf hr.salary.rule, eigene
Abfertigungsrückstellungs-Engine, dateibasiertes Meldewesen (L16/ELDA),
Jahreswechsel-Wizard, Rechenfall-Testplan mit VRV-L2-Verprobungsankern,
Risiken (Buchungsmatrix AP0, FLAF-DB-Satz, SZ-Lohnsteuer-Zuordnung,
ELDA/FinOnl-Specs, Prorate-Konvention) und Meilensteine M0–M6 im
AP-Rahmen der Angebotskalkulation.
2026-09-09 11:39:41 +02:00
fegger 7fd3315735 [ADD] l10n_at_gemeinde_payroll: add scaffold for the payroll module
Modulgerüst für die Gemeinde-Personalverrechnung (Bgld. GemBG 2014) auf der
Odoo-19-hr_payroll-Engine: Manifest mit Depends auf hr_payroll,
hr_payroll_account und l10n_at_vrv2015 (VRV-Buchungsintegration gemäß
Implementierungsplan AP7) sowie leeres models-Paket mit Verweis auf die
Projektdokumentation. Strukturen, Regeln, Katalogdaten und Tests folgen dem
freigegebenen Implementierungsplan (personalverrechnung/, payroll-Skill).
2026-09-09 11:00:57 +02:00
fegger 7e19fadcfd [IMP] personalverrechnung: move plan document into project folder
60-PLAN-payroll-bgld.md liegt nun als personalverrechnung/PLAN-payroll-bgld.md
neben RECHTSQUELLEN-Bgld.md und der Angebotskalkulation; Dokumentverweise in
beiden Projekt-Dokumenten mitgeändert (Rename, Inhalt unverändert).
2026-09-09 11:00:57 +02:00
fegger 8c4faf923d [ADD] personalverrechnung: Angebots-Grundlage Aufwandskalkulation Bgld.
Kalkulation Variante A (Personalverrechnung Bgld. Gemeinden in Odoo 19,
hr_payroll-Engine, GemBG-2014-Regime) mit Prämissenmodell für die
Angebotsphase (keine Kundenunterlagen): 12 Arbeitspakete mit Netto-PT
(194–279, Kalkulationssumme 236) plus 10 % Risikoabdeckung wegen fehlender
Referenzläufe und offener Rechtsdetails → Angebotswert ≈ 260 PT netto
(240–280; ≈ 13 PM, 6–9 Monate). Auspreisfähige Optionen: Organe-Bezüge
15–25, Altpensionen/Versorgung 15–25, Lehrlinge 8–12, Folge-Bundesland
30–60 PT; Wartung/Jahreswechsel 10–15 PT/Jahr; Variante B (Importschnitt-
stelle) 25–40 PT als Alternative. Ausschlüsse und Risikoregister für die
Angebotsfixierung beigefügt.

RECHTSQUELLEN aktualisiert: Bezügeanpassung 2026 (RV 0715/XXIII. GP) mit
Entlohnungstabellen geladen (Gruppen a–e/gb1a/gb3 × ~14 Stufen); IESG-
Zuschlag 0,10 % via ÖGK verifiziert; Bgm-PensionsG 1979 (RIS-GesNr
10000133) verifiziert; Restverifikationen (KommStG § 6, ASVG § 49a Abs 8/9,
Bgld. MVKG) als AP0-Startaufgaben dokumentiert (Firecrawl-Keyless-Limit).
2026-09-09 10:40:55 +02:00
fegger 8307e7a552 [ADD] personalverrechnung: Rechtsquellen-Recherche Bgld. Personalverrechnung
Kernbefund: Das Bgld. GemBG 2014 (LGBl. Nr. 42/2014) regelt das gesamte
Dienst- und Besoldungsrecht aller burgenländischen Gemeindebediensteten —
ausschließlich privatrechtliche Dienstverhältnisse (keine neuen Beamten,
§ 1 Abs 3), kein Kollektivvertrag-Regime (0 KV-Referenzen), Entlohnungs-
system ab 1.1.2021 (IVa. Hauptstück) mit Werten aus jährlichen Landes-
Bezügeanpassungs-Anlagen, quartalsweise Sonderzahlung (50 % je Kalender-
vierteljahr), Urlaub 28/33 Arbeitstage, eigene Abfertigung (§ 130), Karenz
nach Bgld. MVKG (LGBl. 16/2005); Kinderbetreuungspersonal integriert
(Hauptstück VIIa). Bundesrecht unverändert zuständig für Lohnsteuer
(Tarif 2026, § 68-Pauschalbeträge inkl. Überstunden-Freibetrag 2026,
L16/FinOnl), SV (Werte 2026 verifiziert: HBG 6.930 EUR, Geringfügigkeit
551,10 EUR, KV/PV/AV/UV-Sätze), FLAF-Dienstgeberbeitrag öffentlicher
Haushalte (§ 49a ASVG) und Meldewesen (L16, eSV/ELDA).

60-PLAN-payroll-bgld.md aktualisiert: Variante-A-Schätzung Bgld. vorläufig
~180–290 PT (Beamten-Doppelregime, KV-Handling und KBBG-Faktor entfallen);
Beschaffungsliste verdichtet auf Bezügeanpassungs-Anlagen 2026, ELDA/
FinOnl-Spezifikationen und die Unterwart-Referenz-Lohnläufe; offene
RIS-Verifikationen dokumentiert (ASVG 49a Abs 8/9, KommStG 6, IESG,
Krankengeldumlage, Personalvertretungsumlage).
2026-09-09 10:25:34 +02:00
fegger 8578ff76df [ADD] 60-PLAN-payroll-bgld.md: Personalverrechnung Burgenland – Research/Planning
Aufwandsschätzung und Materialsammlungs-Plan für die
Gemeinde-Personalverrechnung (Burgenland zuerst): Variante A (volle
Lohnverrechnung in Odoo, ~250–420 PT über drei Releases) vs. Variante B
(Import-Schnittstelle zur externen Lohnverrechnung, ~25–40 PT, deckungsgleich
mit der harten Scope-Ausnahme in 50-SCOPE-module.md), Bund-vs.-Land-Split
der Bausteine, Architektur-Vorgaben (hr_payroll-Engine, rule parameters,
Bundesland-Datentrennung), Research-Checkliste (KV-Gehaltskatalog Bgld.,
LGBG, ELDA/FinOnl-Specs, 12 Referenz-Lohnläufe der Pilotgemeinde) und offene
Entscheidungen (KBBG-Kindergartenpersonal, Statutarstadt Rust,
Meldewesen-Betrieb, Scope-Ausnahme).
2026-09-09 09:55:12 +02:00