[IMP] odoo-at-payroll: GP5-Bau und Nutzer-Rechtsklarstellungen dokumentiert
CHANGELOG-GP5-Eintrag; Plan-Abschnitt-10-Update (Fensterkonvention mit Monatsjubiläum statt Folgetag, Wiederzulassung auch bei kurzem Vor-AV, eigene BV-Grundlage, bewusste Nicht-Ziele); MEMORY-Handoff (84/84 auf Wegwerf-DB, GP6/GP7/GP8-Anschlüsse, GP4-Beobachtung SV-SZ/§-49-Abs-3-Z-7 offen, D4-Fund zur hr.version-date_version-Synchronisation).
This commit is contained in:
+87
-7
@@ -2,8 +2,53 @@
|
||||
|
||||
## Current focus
|
||||
|
||||
**GP4 SV/DB umgesetzt und grün (74/74 Tests) — GP5 Abfertigung Neu
|
||||
(BMSVG) ist der nächste Bauabschnitt** (2026-09-11): Kern 19.0.3.0.0
|
||||
**GP5 Abfertigung Neu (BMSVG) umgesetzt und grün (84/84 Tests) —
|
||||
nächster Bauabschnitt GP6 FI-Buchung UGB bzw. GP7 Meldewesen
|
||||
(Priorität mit Nutzer klären)** (2026-09-11): Kern 19.0.3.1.0
|
||||
(`at_sv_bv_dg` 1,53 % in `rule_parameters_sv_2026.xml`); privat
|
||||
19.0.5.0.0 — 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 —
|
||||
bewusst KEIN Rückgriff auf die SV-SZ-Basis des Kerns, deren
|
||||
Z-7-Ausschluss fehlt = GP4-Beobachtung, offen dokumentiert;
|
||||
Nutzer-Entscheidung „eigene BV-Grundlage").
|
||||
`models/abfertigung_private.py`: beitragsfreier erster Monat
|
||||
**taggenau** — Fenster [Eintritt, Eintritt+1M), Pflicht ab
|
||||
Monatsjubiläum (15. 06. → 15. 07.; Nutzer-Lesart „ab Folgetag
|
||||
16. 04." = Off-by-one, verworfen gegen KB-Beispiel lb-vor-03:
|
||||
4.500/30 × 17 = 2.550), 30-Tage-Aliquotierung via Lohnsteuertage
|
||||
(Teilmonat-Doppelabzug-Schutz), Monatsende-Klippe (31. 01. → frei
|
||||
bis Ultimo, Pflicht ab Folgemonatserstem), AV ≤ 1 Monat gänzlich
|
||||
frei; **Wiederzulassung binnen 12 Monaten ab Tag 1** — Vor-AV
|
||||
beliebiger Dauer (auch < 1 Monat), schlägt auch die Kurz-AV-Freiheit
|
||||
(Nutzer-Klarstellung 2026-09-11; OGH 9 ObA 30/16a; Suche über frühere
|
||||
`hr.version` mit contract_date_end); SZ ohne Fenster-Kürzung, frei
|
||||
nur bei Beitragsmonat im Fenster (**voller Datumstag** — Monats-
|
||||
anfangs-Kürzung wäre für Fälligkeit 20. 07. bei Fensterende 15. 07.
|
||||
falsch); läuft auch für Geringfügige + Lehrlinge (§ 46, § 1 Abs 2
|
||||
Z 1). Anwartschaft (§ 15: Beiträge + Erträge, KEINE Staffel)
|
||||
on-the-fly aus validierten BVG-Linien (`_at_bv_anwartschaft`, je
|
||||
Beitragsmonat/Jahr); Anwartschaftsreport QWeb auf `hr.employee`
|
||||
(AbstractModel `bv_report.py`) + Endabrechnungs-Wizard
|
||||
`l10n.at.bv.endabrechnung.wizard` (§§ 14-17: §-14-Abs-2-Matrix,
|
||||
< 36 Beitragsmonate IMMER-Sperre, §-16-Fälligkeit Ende des
|
||||
zweitfolgenden Monats, 6-Monats-Erklärungsfrist, 5 Optionen;
|
||||
Auszahlung durch die MV-Kasse, kein Payslip). Stammdaten:
|
||||
`l10n_at_abfertigung_neu` + `l10n.at.bv.kasse` (Leitzahl eSV/mBGM,
|
||||
7er-Namen-Seed noupdate, lb-gsv-11 — Leitzahlen aus Mandats-Unter-
|
||||
lagen, nie geraten) + `l10n_at_bv_ertraege`/`l10n_at_bv_monate_
|
||||
extern` am Mitarbeiter (Kassen-Auszug). Bewusst nicht: §-7-Fiktiv-
|
||||
fälle (Präsenzdienst/Kranken-/Wochengeld — dokumentierte Option,
|
||||
Entgeltersatzleistungen fehlen im Modul), Geringfügigen-Jahres-
|
||||
zahlung + 2,5 % (GP7), BV-Provider (Option). Tests: `test_bv_private`
|
||||
(10) neu — **84/84 grün** auf Wegwerf-DB `gp5_test` (frischer
|
||||
`-i`-Lauf; QWeb-Rendering selbst nur py/XML-validiert, kein
|
||||
Render-Test); Rechenfälle `docs/rechenfaelle/abfertigung.md`.
|
||||
Offen: GP6-BVG-FI-Konto, GP7 mBGM (Leitzahl, DG-Kontonummer, Jahres-
|
||||
zahlung), GP8 Fristenkalender; SV-SZ-Z-7-Folgefix im Kern
|
||||
(GP4-Beobachtung) separat entscheiden.
|
||||
|
||||
**GP4 SV/DB umgesetzt und grün (74/74 Tests)** (2026-09-11): Kern 19.0.3.0.0
|
||||
(`models/sozialversicherung.py`: DG-Beiträge 20,98 %/Wien 21,23,
|
||||
§-54-SZ 20,48 %, Geringfügigkeit § 5/§ 810-3 mit Hochrechnung +
|
||||
§-53a-UV 6,50 €, §-49-Abs-3-Jahreskumulative, Altersstichtage als
|
||||
@@ -109,6 +154,39 @@ B17-Inhalt/B18; Kleinverifikationen s. KB-KONFLIKTE „Nächste Schritte“).
|
||||
|
||||
## Completed
|
||||
|
||||
- **GP5 Abfertigung Neu (BMSVG) umgesetzt (84/84 grün)**
|
||||
(2026-09-11): `l10n_at_hr_payroll` 19.0.3.1.0 — Parameter
|
||||
`at_sv_bv_dg` (1,53 %, ab 2003-01-01) in `rule_parameters_sv_2026.xml`.
|
||||
`l10n_at_hr_payroll_private` 19.0.5.0.0: Regel `BVG`
|
||||
(`salary_rules_bvg_private.xml`, ATP_DG seq 95, 1-Zeilen-Bindung)
|
||||
auf `models/abfertigung_private.py` — eigene, ungecappte
|
||||
BV-Grundlage (§ 6 Abs 5 iVm § 49 ASVG; §-67-Abs-3/6-Zeilen aus-
|
||||
geschlossen, § 49 Abs 3 Z 7 ASVG); Fenstermechanik taggenau
|
||||
(Monatsjubiläum, 30-Tage-Aliquotierung über Lohnsteuertage,
|
||||
Monatsende-Klippe via relativedelta+1 Tag, Kurz-AV < Jubiläum);
|
||||
Wiederzulassung: hr.version-Suche contract_date_end ∈ [Start−12M,
|
||||
Start) → Pflicht ab Tag 1 (Vor-AV beliebiger Dauer — Nutzer-
|
||||
Klarstellung, schlägt auch Kurz-AV); SZ-Fensterfreiheit über vollen
|
||||
Beitragsmonats-Datum der Regel (kein .replace(day=1)!); Gering-
|
||||
führende + Lehrlinge erfasst (kein Geringfügig-Lehrling-Switch).
|
||||
Anwartschaft `_at_bv_anwartschaft` (BVG-Linien validierter Läufe,
|
||||
je Beitragsmonat/Jahr, Refund-nettend); `l10n.at.bv.kasse` (name,
|
||||
leitzahl; 7er-Seed noupdate — Allianz/APK/BONUS/BUAK/NÖ/Valida
|
||||
Plus/VBV, lb-gsv-11) + `l10n_at_bv_endabrechnung.wizard` (§-14-
|
||||
Matrix + 36-IMMER-Sperre + §-16/§-17-Fristen + 5-Optionen-Info;
|
||||
report_action auf Anwartschaftsreport) + QWeb-Report auf
|
||||
hr.employee (`report/bv_report.xml` + AbstractModel `bv_report.py`;
|
||||
binding hr.model_hr_employee). Views: Kasse list/form, Employee-
|
||||
Form-Gruppe „Abfertigung Neu (BMSVG)" in payroll_group, Wizard,
|
||||
Menüs seq 50/60. Security: Kasse user/manager + Wizard.
|
||||
Tests `test_bv_private` (10: RF-BV1..10) + Rechenfälle
|
||||
`docs/rechenfaelle/abfertigung.md` — **84/84 grün** auf Wegwerf-
|
||||
DB `gp5_test` (frischer `-i`-Lauf); README/CHANGELOG/PLAN-10/
|
||||
MEMORY nachgezogen. D4-Fund: hr.version.write setzt bei
|
||||
Einzelversion `date_version` automatisch auf contract_date_start
|
||||
mit; _get_version(date) = max(date_version ≤ date), Fallback
|
||||
versions[0] — Fixture-Mechanik für Mehrversionen-Tests.
|
||||
|
||||
- **GP3 Lohnsteuer komplett im Kern umgesetzt (52/52 grün)**
|
||||
(2026-09-11): `l10n_at_hr_payroll` 19.0.2.0.0 —
|
||||
`models/lohnsteuer.py` (§ 33-Zonentarif; § 66 kumulativ mit
|
||||
@@ -1005,11 +1083,13 @@ B17-Inhalt/B18; Kleinverifikationen s. KB-KONFLIKTE „Nächste Schritte“).
|
||||
- `.venv/` — Python-3.14-venv mit editable install (lokal,
|
||||
unversioniert); Dev-DB `odoo_dev` (PostgreSQL lokal)
|
||||
- `addons/l10n_at_hr_payroll_private/` — General-AT (GP1 KV-Framework
|
||||
+ Seed D2; GP2 Entgelt-Engine; GP3 LSt-Anbindung; **GP4 SV/DB
|
||||
umgesetzt 2026-09-11** — `test_kv_katalog` 8 + `test_entgelt_private`
|
||||
21 + `test_lst_private` 6 + `test_sv_private` 8 grün auf `odoo_dev`;
|
||||
Rechenfall-Fixtures unter `docs/rechenfaelle/` inkl.
|
||||
sozialversicherung.md; GP5 Abfertigung Neu als Nächstes)
|
||||
+ Seed D2; GP2 Entgelt-Engine; GP3 LSt-Anbindung; GP4 SV/DB;
|
||||
**GP5 Abfertigung Neu umgesetzt 2026-09-11** — `test_kv_katalog` 8 +
|
||||
`test_entgelt_private` 21 + `test_lst_private` 6 + `test_sv_private`
|
||||
8 + `test_bv_private` 10 grün auf Wegwerf-DB `gp5_test` (**84/84**,
|
||||
frischer `-i`-Lauf — `odoo_dev` noch auf GP4-Stand, Update
|
||||
nachholen); Rechenfall-Fixtures unter `docs/rechenfaelle/` inkl.
|
||||
abfertigung.md; GP6 FI-Buchung / GP7 Meldewesen als Nächstes)
|
||||
- `addons/l10n_at_hr_payroll/` — Bundes-Kern (SV/TASY + GP3 Lohnsteuer
|
||||
`models/lohnsteuer.py` + **GP4 SV/DB `models/sozialversicherung.py`**
|
||||
(DG/Geringfügigkeit/§ 49/Altersstichtage/§ 2a-Staffel/WF-Vektor/
|
||||
|
||||
@@ -1,5 +1,55 @@
|
||||
# CHANGELOG — odoo-at-payroll
|
||||
|
||||
## 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`
|
||||
|
||||
@@ -783,6 +783,46 @@ Budget: die Kandidaten 8.13, der DZ (8.11) und die Regel-Optionen
|
||||
(NSchAB, DAG) laufen über die GP0-/Pilotmandant-Entscheidung bzw.
|
||||
Change-Requests.
|
||||
|
||||
**Update 2026-09-11 (GP5 umgesetzt):** Abfertigung Neu (BMSVG)
|
||||
umgesetzt und grün: Kern-Parameter `at_sv_bv_dg` (1,53 %,
|
||||
19.0.3.1.0); privat (19.0.5.0.0) 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). `models/abfertigung_private.py`: beitragsfreier erster
|
||||
Monat **taggenau** (Fenster [Eintritt, Eintritt+1 Monat), Pflicht ab
|
||||
Monatsjubiläum 15. 06. → 15. 07.; 30-Tage-Aliquotierung via
|
||||
Lohnsteuertage; Monatsende-Klippe 31. 01. → frei bis Ultimo, Pflicht
|
||||
ab Folgemonatserstem); AV ≤ 1 Monat gänzlich frei; Wiederzulassung
|
||||
binnen 12 Monaten ab 1. Tag — Vor-AV beliebiger Dauer, auch < 1
|
||||
Monat, schlägt auch die Kurz-AV-Freiheit (Nutzer-Klarstellung
|
||||
2026-09-11; OGH 9 ObA 30/16a; Suche über frühere `hr.version`); SZ
|
||||
ohne Fenster-Kürzung, frei nur bei Beitragsmonat im Fenster
|
||||
(taggenau); läuft auch für Geringfügige und Lehrlinge (§ 46,
|
||||
§ 1 Abs 2 Z 1). Stammdaten: Vertrags-Flag `l10n_at_abfertigung_neu`
|
||||
+ `l10n.at.bv.kasse` (Leitzahl eSV/mBGM; Seed der 7 Kassen-Namen,
|
||||
lb-gsv-11, noupdate — Leitzahlen aus Mandats-Unterlagen) +
|
||||
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;
|
||||
Anwartschaftsreport (QWeb auf `hr.employee`) + Endabrechnungs-Wizard
|
||||
(§§ 14-17: Verfügungsmatrix mit 36-Beitragsmonate-IMMER-Sperre,
|
||||
§-16-Fälligkeit Ende des zweitfolgenden Monats, 6-Monats-
|
||||
Erklärungsfrist, 5 §-17-Optionen; Auszahlung durch die MV-Kasse,
|
||||
kein Payslip-Bestandteil). Nutzer-Fensterklärung: „Pflicht ab
|
||||
Folgemonatserstem (16. 04.)" = Off-by-one, verworfen gegen das
|
||||
verifizierte KB-Beispiel (lb-vor-03: Eintritt 15. 06. → Pflicht ab
|
||||
15. 07., 4.500/30 × 17 = 2.550). Bewusst nicht: §-7-Fiktivfälle
|
||||
(Präsenzdienst/Kranken-/Wochengeld — dokumentierte Option, Entgelt-
|
||||
ersatzleistungen fehlen im Modul), Geringfügigen-Jahreszahlung +
|
||||
2,5 % (GP7), BV-Provider (Option). Tests: `test_bv_private` (10)
|
||||
neu — **84/84 grün** (Wegwerf-DB `gp5_test`, frischer `-i`-Lauf).
|
||||
Rechenfälle `docs/rechenfaelle/abfertigung.md`. Offen: GP6 FI-
|
||||
Buchung (BVG-Konto), GP7 mBGM (Leitzahl/DG-Kontonummer, Jahres-
|
||||
zahlung), GP8 Fristenkalender; SV-SZ-§-49-Abs-3-Z-7-Folgefix im
|
||||
Kern (GP4-Beobachtung) separat entscheiden.
|
||||
|
||||
**Update 2026-09-11 (GP4 umgesetzt):** SV/DB komplett im Kern gebaut
|
||||
(AP4, D3-Vorfinanzierung) und grün: `models/sozialversicherung.py`
|
||||
(DG-Beiträge ÖGK 2026 20,98 %/Wien 21,23; § 54-SZ-Beiträge DG
|
||||
|
||||
Reference in New Issue
Block a user