[IMP] odoo-at-payroll: GP6-Bau, KFS/BW-6-Abgleich und Odoo-19-Mechanik-Funde dokumentiert

CHANGELOG-GP6-Eintrag; Plan-Abschnitt-10-Update (Buchungsmatrix nach KFS/BW 6, Nutzer-Klaerungen 5.1-5.3 inkl. aufgeklaerter Vertauschung Loehne/Gehaelter, Option-A-minimal-Split, NET-Umbenennung mit Default-Regel-Kopie-Fund); MEMORY-Handoff (88/88 auf Wegwerf-DB, GP7 als naechster Bauabschnitt, offene Referenzbuchhaltungs-Reste, Odoo-19-Mechanik-Funde: function-Record-ID-Semantik, Journal-Default-Constraint, Scaffold-Konto-Falle).
This commit is contained in:
2026-09-12 12:59:00 +02:00
parent 27654211fb
commit 529ac30cdb
3 changed files with 209 additions and 9 deletions
+56
View File
@@ -1,5 +1,61 @@
# CHANGELOG — odoo-at-payroll
## 2026-09-12 — General-AT GP6: FI-Buchung UGB nach KFS/BW 6 umgesetzt (M6)
- `addons/l10n_at_hr_payroll_private` (19.0.6.0.0): **GP6 FI-Buchung
UGB** auf dem Österreichischen Einheitskontenrahmen (KFS/BW 6,
Nutzer-Referenz-Exemplar `.additional_docs/KFSBW6_13072017_RF.pdf`):
- `models/account_chart_private.py`: Buchungsmatrix + Hook
`_configure_payroll_account_at` (BE-Muster `l10n_be_hr_payroll_
account`): Chart-Load (`_post_load_data`) **und** `<function>`-
Datendatei für Bestands-Companies (erster `<value>` = Record-IDs,
convert.py-Semantik), idempotent. Konto-Suche **exakt zuerst**,
Präfix-Fallback nur bis eine Stelle länger — blockiert Odoo-
Scaffold-Konten chartloser Firmen (6000 darf nicht 600000
„Expenses" matchen). NET-Konto **3850 „Verbindlichkeiten aus
Lohn und Gehalt"** (Nutzer-Entscheidung 5.1) wird angelegt und
auf reconcile gesetzt (l10n_at-Standardchart hat es nicht);
Journal **SLR** mit Default = Gehälterkonto 6200 (BE-Muster; Odoo-
Constraint verbietet Receivable/Payable als Journal-Default).
- **EKR-Debit-Split Arbeiter/Angestellte** (Nutzer-Klärung: 600619
Löhne, 620639 Gehälter — die Angabe „6000 Gehälter/6200 Löhne"
war gegenüber der eigenen KFS/BW-6-Referenz vertauscht):
`l10n_at_personalgruppe` am Vertrag +
`l10n_at_account_debit_arbeiter` je Regel; **Option A minimal**
(Nutzer-Entscheidung 5.2): Overrides nur Grundentgelt 6000,
Sozialaufwand 6500, Abgaben 6600/6601/6602 — Zuschläge (6225),
ÜStd (6310), Prämien (6230), SZ (6240), BV (6440, EKR 644 ohne
Split) buchen für Arbeiter bis zur Referenzbuchhaltungs-
Fixierung auf die Angestellten-Konten (fehlende Konten → Warnung,
keine Erfindung). `models/account_posting_private.py`:
Gesamtüberschreibung von `_prepare_slip_lines` (Odoo bietet
keinen Override-Punkt; Upstream-Kopie Odoo-Pin 19.0+e.20260910
mit einzeiliger Kontosubstitution, testgepinnt).
- **NET-Umbenennung** (NETTO → NET, Odoo-Konvention):
Zahlungsregistrierung (`action_register_payment`), net_wage und
Negativ-Netto-Erkennung filtern `code == 'NET'`. **Odoo-19-Fund:**
das Anlegen einer Structure kopiert die Regeln des
`hr_payroll.default_structure` (BASIC/GROSS/NET/…) via Feld-Default
in `rule_ids` — die kopierte Default-NET-Regel kollidiert im
`result_rules`-Dict (Netto fiel auf 0). Fix: `<function>` in
`salary_rules_private.xml` archiviert die Kopie (`active=False`;
One2many blendet Archivierte aus; KEIN Unlink — historische
Lohnkontolinien behalten die Regel-Referenz; `struct_id` ist
NOT NULL).
- Matrix: KVGEO/URL_UE 6200/6000 · Zuschläge 6225 · ÜStd 6310 ·
Prämien 6230 · B13/B14 6240 · DN-SV/LSt auf 3600/3540 · NET 3850 ·
SVDG-Block 6560/6500 auf 3600 · **BVG 6440 (EKR 644) mit Fallback
6400** auf Credit **3600** (Abfuhr via KV-Träger; 5.3) · FLAFDB
6661/6601 auf 3541 · KOMMST 6660/6600 auf 3550 · DZ 6662/6602
auf 3542. depends: + `l10n_at`, `hr_payroll_account_iso20022`
(SEPA-Auszahlung, Plan 4.5).
- Tests: `test_account_private` (4: RF-BUCH-1..4 — Kontenplan-Mock
ohne Chart-Install; Move-Balance, Kontenzeilen, Arbeiter-Split,
Fallback/Warnung; NET-Rundungscents als Odoo-„Adjustment Entry"
auf Journal-Default mit delta=0.02 toleriert). NETTO→NET in 4
Bestands-Suiten nachgezogen. **88/88 grün** (frischer `-i`-Lauf,
Wegwerf-DB). Rechenfälle `docs/rechenfaelle/buchhaltung.md`.
## 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