[IMP] l10n_at_hr_payroll_private: add statutory old-system severance (AP15-A)

Pay the pre-2003 AngG severance from the end-of-employment run as its own neutral benefit line: free of SV (§ 49 Abs 3 Z 7 ASVG) and payroll levies, outside the annual sixth, and collected into the § 291d EO termination pot net of its own wage tax. Taxation follows the binding better-of rule of § 67 Abs 3 EStG: multiple-of-method (tariff wage tax on the running monthly wage × the statutory multiple of the payout) versus the flat 6 % rate, applied mandatorily in favour of the employee. The tariff wage tax is captured as a separately confirmed value instead of deriving it from gross pay through the § 62 engine. The wizard enforces § 23a Abs 3 AngG (parental exit needs five uninterrupted years), blocks BMSVG-new contracts except frozen claims and validates AGRD 02/06 against the claim type. The LNK basis subtracts § 67 Abs 3/6 rules only when they actually run in the tax base, the L16 generator reports LST_ABF in key 260 outside 210/220, and result_rules access in the garnishment paths avoids DefaultDictPayroll materialisation. Verified against the original statute texts in .ris/ (AngG §§ 23/23a, EStG § 67 Abs 3).

Version 19.0.13.0.0 (private), 19.0.9.0.0 (core)
This commit is contained in:
2026-09-15 11:01:55 +02:00
parent ee94f4664f
commit 9add58fe83
21 changed files with 753 additions and 41 deletions
+43 -1
View File
@@ -2,8 +2,50 @@
## Current focus
**AP15-A gesetzliche Abfertigung Alt umgesetzt — Privat 141/141, Kern 54/54 Tests grün**
(2026-09-15, uncommittet bis Nutzerfreigabe; Privat **19.0.13.0.0**, Kern **19.0.9.0.0**):
- **Recht am Originalwortlaut verifiziert (.ris/):** § 23a Abs 3 AngG
verlangt für den Elternaustritt ein **ununterbrochen fünfjähriges**
DV (Hälfte des §-23-Betrags, Deckel 3 Monatsentgelte) — Vorschlag
bei < 60 Monaten korrigiert (0-Faktor + Wizard-UserError). § 67
Abs 3 EStG (RIS-Wortlaut): Tarif-LSt **auf den laufenden
Arbeitslohn** × Mehrfaches, zwingend günstiger als 6 %. Neu:
getrenntes, bestätigtes Feld `abf_alt_monatslohnsteuer`/
`l10n_at_abf_alt_monatslohnsteuer` (Tarif-LSt des laufenden
Monats nach persönlichen Verhältnissen) — Bruttolohn wird NICHT
über die §-62-Engine tarifiert. Rechenfall lb-end-01 exakt:
101,96 × 10,5 = 1.070,58 (< 1.134 = 6 %).
- **Privat:** `models/endabrechnung.py` ABF_ALT-Helfer (Staffel,
Mehrfach-Vorschlag eltern/tod, 6 %, Vervielfachung, günstige LSt),
Regel `ABF_ALT` (neutral/keine/abs3/pfandung_beendigung),
`LST_ABF` seq 72, `PFAENDUNG_END` seq 77 (Beendigungstopf
LST_ABF, Gesamttopf + beendigung), LNK-Fix in beiden Kopien
(`_at_lnk_basis` zieht Abs-3/6-Regeln nur mit bemessung
laufend/sonstig ab), Wizard-Felder + Validierungen (BMSVG-Neu-
Sperre außer eingefroren, AGRD 02/06-Regeln, Eltern < 5 J),
Payslip-Tab, Konten `rule_abf_alt` 6200/6000 (vorläufig),
`rule_lst_abf` → 3540. `.get()`-Zugriffe auf `result_rules` in
`models/pfaendung.py` durch Membership-Prüfung ersetzt.
- **Kern:** LST_ABF in KZ-260-Salden (Lohnsteuer), außerhalb
KZ 210/220 (test_01b). Kern-Hilfer `_l10n_at_monatslohnsteuer`
des Subagenten wieder ENTFERNT (ungenutzt, semantisch
irreführend) samt test_02b.
- **Tests:** endabrechnung 13 (inkl. Arbeitnehmerkündigung-
UserError, Eltern < 5 J, Wizard-E2E, Pfändungsbasis), pfändung
12 (test_09b Beendigungstopf), Privat-Suite 141/141 (`ap13a_test`),
Kern-Suite 54/54 (auf `ap13a_test` mit Privatmodul — **Achtung:
L16-Tests referenzieren `l10n_at_hr_payroll_private.`
`structure_at_privat`, Kern-Rein-DB scheitert an setUp, ist
Bestandsverhalten**). Python/XML/`git diff --check` grün.
- **Offen:** AP15-B (freiwillige Abfertigung § 67 Abs 6, 6 %-Bänder
+ rollierende 12-Monats-Basis), AP15-C (§ 67 Abs 8 lit a
Vergleichssummen). Wizard-Transient NOT-NULL-Warnung für
`departure_reason_id` ist kosmetisch (Alt-Zeilen). Nicht
committen ohne Nutzeranforderung.
**AP14-A Endabrechnungs-Zyklus umgesetzt — 133 Tests grün**
(2026-09-14, uncommittet bis Nutzerfreigabe):
(2026-09-14, Commit **`ee94f46`** nach Nutzerfreigabe):
- **Rechtskorrektur gegen Originalwortlaut (.ris/, RIS-Gate erledigt):**
§ 67 Abs 6 (freiwillige Abfertigung/Abfindung) = 6 %-Bänder