[IMP] l10n_at_hr_payroll_private: add Pendlerpauschale, Pendlereuro and job ticket data (AP13-B)
Model commuter declarations as effective-dated L 34 records so monthly changes, L 34/Pendlerrechner evidence and historical payslip reproduction stay auditable. PP enters as an aliquoted § 66 freibetrag of the running tax base while PE joins the annual absetzbetraege, matching the cumulative engine's rollup. Ticket handling follows § 26 Z 5: employer ticket costs reduce PP pro rata (lit i), Werkverkehr is data-driven via the residual route and salary conversion does not block PP/PE. Also register the AP13-A tests that were accidentally left out of the previous commit.
This commit is contained in:
+41
-2
@@ -2,8 +2,47 @@
|
||||
|
||||
## Current focus
|
||||
|
||||
**AP13-A Reisekosten Inland umgesetzt — 114 Tests grün**
|
||||
(2026-09-14, nach Nutzerfreigabe):
|
||||
**AP13-B Pendlerförderung umgesetzt — 127 Tests grün**
|
||||
(2026-09-14, uncommittet bis Nutzerfreigabe):
|
||||
|
||||
- Neu `models/pendler.py`: Modell `l10n.at.payroll.pendler.erklaerung`
|
||||
(effektiv datiert, L-34-/Pendlerrechner-Nachweis als Attachment,
|
||||
pauschale_art klein/gross, fahrten_stufe drittel/zwei_drittel/voll,
|
||||
arbeitgeber_kfz, ticket_art keines/werkverkehr/oeffi,
|
||||
ticket_kosten_monatlich, bezugsumwandlung). Company-Related OHNE
|
||||
store=True (Muster pfaendung — store+required bricht den Insert mit
|
||||
NotNullViolation), ACL + Company-Record-Rule + Views/Menu.
|
||||
- Parameter `at_pendler` 2026: klein [[20,696],[41,1356],[61,2016]],
|
||||
gross [[2,372],[21,1476],[41,2568],[61,3672]], pendlereuro_km_jahr 6.0.
|
||||
Staffel „nächst-höhere Stufe erst bei MEHR als dem unteren km-Wert“ →
|
||||
ganzzahlige Grenzen 20/41/61 bzw. 2/21/41/61.
|
||||
- Engine-Anbindung (Privat-Overrides):
|
||||
`_l10n_at_bemessung_laufen` − PP (LZP = Jahreswert × Stufe/360 ×
|
||||
Lohnsteuertage, lb-pen-09); `_l10n_at_absetzbetraege` + PE als
|
||||
**Jahreswert × Stufe** (km × 6 € × Stufe) — kumulative Engine verbraucht
|
||||
Absetzbeträge über die Rollung, NICHT pe × 12. PP/PE ohne SV-/LNK-
|
||||
Wirkung (getestet).
|
||||
- §-26-Z5-Regeln: oeffi-Ticketkosten mindern PP (§ 16 Abs 1 Z 6 lit i);
|
||||
PP → 0 ⇒ PE = 0 (Fixkopplung lb-pen-04). Werkverkehr datengetrieben
|
||||
über die L-34-Reststrecke. Bezugsumwandlung sperrt PP/PE NICHT (Ticket =
|
||||
steuerpflichtiger laufender Bezug). Kfz sperrt beide.
|
||||
- Tests test_pendler_private.py (10): voller Monat 58/150 €, Staffeln,
|
||||
1/3-Stufe, untermonatig 3,87 € (lb-pen-09-Beispiel), Kfz-Sperre,
|
||||
Ticket-Reduktion/PE-Entfall, Bezugsumwandlung, effektiv datierte
|
||||
Auswahl, E2E-LSt-Wirkung. Zwei Testfixes beim ersten echten Lauf:
|
||||
`unit_amount` existiert nicht auf hr.expense (→ quantity),
|
||||
PE-Erwartungswert 40 € (20 km × 6 × 1/3) statt 50 €.
|
||||
- **Fund:** die AP13-A-Tests waren im AP13-A-Commit NICHT registriert
|
||||
(tests/__init__.py fehlte) — die „114 Tests grün“ liefen ohne die
|
||||
Reisekosten-Tests. Jetzt registriert; Suite 127/127 grün. Beim ersten
|
||||
echten Reisekosten-Testlauf: `hr.expense` hat kein `unit_amount`-Feld
|
||||
(Odoo 19: quantity/price_unit/total_amount) — Test-Helfer korrigiert.
|
||||
- Doku docs/rechenfaelle/pendler.md (RF-PEN-1…5 + offene Punkte: erhöhter
|
||||
VAB 853 €/Zuschlag 804 € als Quer-LSt-Rest, L-34-1-Monats-Meldeprozess).
|
||||
- Version **19.0.11.0.0**. Commit ausstehend (Nutzerfreigabe).
|
||||
|
||||
**AP13-A Reisekosten Inland committed — 127-er Suite grün**
|
||||
(2026-09-14, Commit **`3f307a0`**):
|
||||
|
||||
- Privatmodul **19.0.10.0.0** verwendet das Odoo-19-Standardmodul
|
||||
`hr_payroll_expense`: genehmigte, eigenfinanzierte Spesen werden über
|
||||
|
||||
Reference in New Issue
Block a user