c843701d1a469dd54dd3b45d56795c9058356836
Fristenkalender (models/fristenkalender.py — l10n.at.payroll.frist): alle lohnverrechnungsrelevanten Melde- und Zahlungsfristen je Company und Jahr (kuratiert: lb-sva-11, lb-mel-08, lb-lvr-04/05): SV/mBGM 15. Folgemonat (Gutschriftprinzip, Respirofrist 3 Tage, Verzugszinsen ab Tag 16), DB/DZ/KommSt 15. Folgemonat, KommSt-Jahreserklärung Ende Maerz, Lohnzettel L16 + Arbeitsstaettenmeldung + §-109a Ende Februar, Schwerarbeitsmeldung Ende Februar (blockiert, ASchV-Datenmodell fehlt). Auto-Erzeugung per ir.cron monatlich am 1. (SV/DB/DZ/KommSt) + jaehrlich am 1. Jaenner (Jahresfristen). Ueberfaellig-Faerbung + Sprungaktion zur GP7-Deklaration (L16; mBGM-Verlinkung im Privatmodul via fristen_private.py).
Jahres-Retro-/Aufrollungslauf (models/jahresretro.py — Wizard l10n.at.payroll.jahresretro.wizard): Kontrollsechstel-Verpflichtungslauf § 67 Abs 10 EStG (Pruefung je AN auf SZ-Ueberhang und Guenstig-Vergleich Fixsaetze vs. Tarif; Handlungsempfehlung fuer die Odoo-Korrektur-Pipeline: Refund-Payslips + Neuberechnung). Optional §-77-Abs-3/4-Aufrollung (15.-Jaenner-Grenze; Krankengeld-Blocker). SV-Aufrollung rollt auf den Beitragsmonat (GP4-Beitragsmonat); mBGM-Storno als Folgeaktion (GP7 art=ST).
Mitteilungsfile-Import (models/mitteilungsfile.py — Wizard): ELDA-Rueckantwort-XML (mitteilung_{Protokollnummer}.xml) parsen, Fehler/Warnungen lesbar aufbereiten; XSDs lokal beschafft (.firecrawl/ris/elda/). Dateibasiert (Praemisse P7): Upload durch den Mandanten.
2027-Parameter-Rahmen (data/rule_parameters_2027.xml): NUR Struktur (WF-Vektor-Default + AV-Staffel tiers=[] da § 2a AMPFG aufgehoben BGBl I 62/2026). KEINE Werte aus Trainingswissen — der Wartungszyklus beschafft die offiziellen 2027-Werte.
B14-laengster-Urlaubs-Teil: verifiziert — aktuelle Implementierung ist praktisch korrekt (erster Urlaubsmonat, _at_sz_bereits_bezahlt gegen Doppelauszahlung); mehrmonatig gesplittete Urlaube sind ein Randfall mit vorwaertsblickenden Planungsdaten, dokumentiert ohne Code-Fix.
Tests: test_gp8 (6 — Frist-Definitionen, Cron-Idempotenz, Ueberfaellig-Logik, Mitteilungsfile-Parser, Import-ohne-Datei-UserError, Jahresretro-ohne-Daten). 100/100 gruen (Wegwerf-DB). 19.0.5.0.0.
odoo-at-payroll
Österreichische Personalverrechnung auf Odoo 19 Enterprise. Eigenes Repo
seit 2026-09-09 — Überführung aus gem360-git per History-Import; siehe
personalverrechnung/PLAN-repo-split.md.
Module
| Modul | Zweck |
|---|---|
l10n_at_hr_payroll |
Bundes-Kern (sektor-neutral): SV-Werte 2026 als hr.rule.parameter-Seed, TASY-Import-Wizard; folgen: Lohnsteuer (AP3), Meldewesen L16/eSV (AP5), Belege (AP6) |
l10n_at_gemeinde_payroll |
Bgld. GemBG 2014: Katalogmodell (AP1), Entgelt-Engine (AP2); AP3+ gemäß personalverrechnung/IMPLEMENTIERUNGSPLAN-Bgld.md |
l10n_at_hr_payroll_private |
General-AT (KV-basierte Privatwirtschaft) — Gerüst; Implementierungsplan freigegeben (IMPLEMENTIERUNGSPLAN-Privat.md), Umsetzung ab M1 (GP0) |
VRV-Buchung für Gemeinden (Anlage 3b, Ansatz/MVAG, EHH/FHH) läuft über
die Brücke l10n_at_gemeinde_payroll_vrv im gem360-Repo (AP7).
Abhängigkeitsrichtung: gem360 → dieses Repo, nie umgekehrt.
Entwicklung
- Odoo 19: Quellen-Referenz ist
odoo_19.0+e.20260910/odoo-19.0+e.20260910/(lokal, unversioniert, in.gitignore) — gemergter Baum (Community und Enterprise in einem Addons-Verzeichnis, 1.481 Addons, u. a.hr_payroll*,l10n_be_hr_payroll,l10n_ch_hr_payroll; Version19.0+e.20260910, Paketnameodoo, startbar viapython -m odoo). Die früheren Checkoutsodoo/+odoo_enterprise/(19.0.0) sind am 2026-09-11 entfernt worden; D4-Spot-Checks aus den Plänen wurden gegen 19.0.0 gemacht — gleiche relative Pfade, aber Neuzugänge wie immer zu Baubeginn gegen diesen Baum verifizieren (D4). Pin bei Odoo-Upgraden gegen den gem360-Entwicklungsstand validieren. - Runtime: Python 3.14 venv im Repo (
.venv/, in.gitignore; editable install des gemergten Baums) + PostgreSQL (Arch:postgresql-Paket, Cluster unter/var/lib/postgres/data,systemctl start postgresql). Dev-DB:odoo_dev. Rollen-/DB-Anlage einmalig:sudo -u postgres createuser -s <user>undcreatedb odoo_dev. - Planung/Rechtsquellen:
personalverrechnung/(PLAN, RECHTSQUELLEN, IMPLEMENTIERUNGSPLAN, Angebotskalkulation). - Rechts-Rohquellen:
.firecrawl/— lokal, unversioniert; falls fehlend, neu von RIS/sozialversicherung.at beschaffen (siehe payroll-Skill), niemals aus Trainingswerten arbeiten.
Tests
Wegwerf-DB verwenden (nie gem360_dev):
createdb <testdb>
.venv/bin/python -m odoo -d <testdb> \
-i l10n_at_hr_payroll,l10n_at_gemeinde_payroll \
--test-tags /l10n_at_hr_payroll,/l10n_at_gemeinde_payroll \
--test-enable --stop-after-init \
--addons-path=odoo_19.0+e.20260910/odoo-19.0+e.20260910/odoo/addons,addons
Der gemergte Baum enthält Community- und Enterprise-Addons in einem
Verzeichnis; kein separates odoo-bin mehr — Aufruf über
.venv/bin/python -m odoo. Dazu je Änderung: py_compile über
alle Python-Dateien und XML-Well-formedness-Check (Konvention wie im
gem360/vrv2015-Workflow).
Description
Languages
Python
99.7%
Shell
0.3%