[IMP] l10n_at_hr_payroll_private: Lohnpfändung — Existenzminimum § 291a EO, DN-Abzug, Kostenersatz, DSE (AP11)

Pfändungs-/Exekutionsmaschinerie nach EO §§ 291/291a/292/301/302/
292h für den Privatwirtschafts-DN (Plan:
personalverrechnung/PLAN-Restluecken-AP11.md §AP11, MVP + Kostenersatz):

- Neues Modell l10n.at.payroll.pfaendung (models/pfaendung.py):
  Gläubiger, Vollstreckungsträger, Pfändungsart, Zustellungsdatum,
  Forderungshöhe, Status aktiv/gesetzt/geloest, Verwalter
  (§ 301 Abs 1 Z 6), 4-Wochen-Zahlungssperre (§ 304),
  Kostenersatz-Variante (§ 292h), DSE-/Auszahlungsfristen (computed),
  Rang nach Einlangedatum, Constraint Löse-/Zustellungsdatum;
  hr.version: l10n_at_unterhaltspflichten (0–5) und
  l10n_at_sz_anspruch (§ 291a Abs 2 Z 1/Z 2); hr.salary.rule:
  Flags l10n_at_pfandung_unpfandbar (AP12-Schnittstelle) und
  l10n_at_pfandung_beendigung (AP14/15-Schnittstelle)
- Engine (hr.payslip): Existenzminimum-Maschine § 291a EO je Topf
  (laufend/sz13/sz14/beendigung), Pfändungsberechnungsgrundlage
  § 291 EO (laufend = Bezüge − unpfändbar − SV-DN − LSt),
  Masse, Kostenersatz § 292h (2 %/max 8 € + 1 %/max 4 €, nie vom
  Existenzminimum), Regeln PFAENDUNG (seq 75) / PFAENDUNG_SZ (seq 76);
  result_rules enthält ungerundete Rule-Summen — Lesezugänge
  runden auf Cents (Zeilenbeträge), sonst 1-Cent-Drift
- Parameter at_eo_azr (2025: 1.273,99 / 2026: 1.308,39 €) und
  at_eo_kostenersatz; DSE-Report (qweb-pdf auf hr.employee),
  Views/Menu unter Payroll-Wurzel, Security (payroll-Groups +
  Company-ir.rule)
- Rechenfälle docs/rechenfaelle/pfaendung.md (RF-PFA-1…7):
  lb-pfa-03 exakt verifiziert (33.840 € → EX 16.684 € /
  pfändbar 17.156 €); 103/103 Tests grün
- Offene Reste dokumentiert: Unterhaltsexekution 75 %/Koinzidenz,
  Vorschüsse § 290c, Sachbezüge (AP12), Beendigungs-Regeln (AP14/15),
  2027-AZR-Werte

Version 19.0.9.5.0
This commit is contained in:
2026-09-13 02:33:26 +02:00
parent c3b9d6eb8e
commit 018554b215
15 changed files with 1556 additions and 3 deletions
+30
View File
@@ -2,6 +2,36 @@
## Current focus
**AP 11 Lohnpfändung umgesetzt — 103/103 Tests grün** (2026-09-13,
freigegeben 2026-09-12/13, Plan: `personalverrechnung/PLAN-Restluecken-AP11.md` §AP11):
- **Model** `l10n.at.payroll.pfaendung` (models/pfaendung.py):
Gläubiger, Vollstreckungsträger, Pfändungsart, Zustellungsdatum,
Forderungshöhe, Status aktiv/gesetzt/geloest, Verwalter § 301,
Zahlungssperre § 304, Kostenersatz-Variante § 292h, dse_frist/
auszahlung_frist, Rang (computed), Constraint Löse-/Zustelldatum;
`hr.version`: `l10n_at_unterhaltspflichten` (05), `l10n_at_sz_anspruch`;
`hr.salary.rule`: Flags `l10n_at_pfandung_unpfandbar` (AP12-Schnittstelle),
`l10n_at_pfandung_beendigung` (AP14/15-Schnittstelle).
- **Engine** (hr.payslip): Existenzminimum-Maschine § 291a EO je Topf
(laufend/sz13/sz14/beendigung), Pfändungsberechnungsgrundlage § 291 EO
(laufend = Bezüge unpfändbar SV-DN LSt), Masse, Kostenersatz
§ 292h, Regeln `PFAENDUNG` (seq 75) / `PFAENDUNG_SZ` (seq 76),
Parameter `at_eo_azr` (2026: 1.308,39) + `at_eo_kostenersatz`,
DSE-Report (qweb-pdf), Views/Menu/Security (payroll-Groups +
Company-Rule), Rechenfälle `docs/rechenfaelle/pfaendung.md`
(RF-PFA-1…7; lb-pfa-03 exakt verifiziert: 33.840 → EX 16.684 /
pfändbar 17.156). Version **19.0.9.5.0**.
- **Fix im Testlauf:** `result_rules` enthält UNGERUNDETE Rule-Summen
(SVDN_KV 79.699167 vs. Zeile 79.70) — Pfändungsberechnungsgrundlage
muss die gerundeten Bezugsarten (Cents) verwenden → `round(..., 2)`
in `_at_pfa_rule_amount`/`_at_pfa_bruto` (result_rules-Pfad) + finales
`round` in `_at_pfaendung_basis` (alle Töpfe).
- **Offene Reste** (dokumentiert, nicht geblockt): Unterhaltsexekution
75 %/Koinzidenz, Vorschüsse § 290c, Sachbezüge (AP12), Beendigungs-
Regeldetails (AP14/15), 2027-AZR-Werte. **Kein Commit** (Nutzer-
Freigabe ausstehend).
**AP 8 Arbeits-/Entgeltbestätigungen umgesetzt — 152/152 Tests
grün — damit ist der AP0AP10-Nutzer-Katalog komplett** (2026-09-12,
AEB-Session; siehe auch Parallel-Session-Notiz unten):