Files
odoo-at-payroll/addons/l10n_at_hr_payroll_private/__manifest__.py
T
fegger 27654211fb [IMP] l10n_at_hr_payroll_private: GP6 FI-Buchung UGB (KFS/BW-6-Matrix, EKR-Debit-Split, NET-Konvention)
Buchungsmatrix nach dem Oesterreichischen Einheitskontenrahmen (KFS/BW 6; Nutzer-Referenz-Exemplar .additional_docs/KFSBW6_13072017_RF.pdf): Hook _configure_payroll_account_at (models/account_chart_private.py) ordnet Regelkonten, Journal SLR (Default = Gehaelterkonto 6200, BE-Muster) und das NET-Konto 3850 "Verbindlichkeiten aus Lohn und Gehalt" (Nutzer-Entscheidung 5.1; Anlage + reconcile, l10n_at-Standardchart hat es nicht) je Company zu — getriggert beim Chart-Load (_post_load_data) UND ueber die <function>-Datendatei data/hr_payroll_account_private.xml fuer Bestands-Companies (erster <value> einer function ist die Record-ID-Liste, convert.py-Semantik), idempotent. Konto-Suche exakt zuerst, Praefix-Fallback nur bis eine Stelle laenger — verhindert Matches auf Odoo-Scaffold-Konten chartloser Firmen (6000 darf nicht 600000 "Expenses" matchen).

EKR-Debit-Split Arbeiter/Angestellte (Nutzer-Klaerung: 600-619 Loehne, 620-639 Gehaelter — "6000 Gehaelter/6200 Loehne" war gegen die eigene KFS/BW-6-Referenz vertauscht): l10n_at_personalgruppe am Vertrag (models/hr_version_private.py) + Override-Feld l10n_at_account_debit_arbeiter je Regel; Option A minimal (Nutzer-Entscheidung 5.2: Grundentgelt 6000, Sozialaufwand 6500, Abgaben 6600/6601/6602; Zuschlaege/UeStd/Praemien/SZ und BV (EKR 644 ohne Split) buchen fuer Arbeiter bis zur Referenzbuchhaltungs-Fixierung auf die Angestellten-Konten — fehlende Konten warnen, keine Erfindung). models/account_posting_private.py: Gesamtueberschreibung von _prepare_slip_lines nach Upstream-Muster (Odoo-Pin 19.0+e.20260910) mit einzeiliger Kontosubstitution — Odoo bietet dafuer keinen Override-Punkt; Verhalten testgepinnt. Matrix: KVGEO/URL_UE 6200/6000, Zuschlaege 6225, UeStd 6310, Praemien 6230, B13/B14 6240, DN-SV/LSt auf 3600/3540, NET 3850, SVDG-Block 6560/6500 auf 3600, BVG 6440 (Fallback 6400) auf Credit 3600 (Abfuhr via KV-Traeger, Nutzer 5.3), FLAFDB 6661/6601 auf 3541, KOMMST 6660/6600 auf 3550, DZ 6662/6602 auf 3542.

NET-Umbenennung NETTO -> NET (Odoo-Konvention: action_register_payment, net_wage und Negativ-Netto-Erkennung filtern code == NET) inkl. 4 Bestands-Suiten. 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 kollidierte im result_rules-Dict (Netto fiel auf 0); Fix: <function> in salary_rules_private.xml archiviert die Kopie (active=False; KEIN Unlink — struct_id ist NOT NULL und historische Lohnkontolinien behalten ihre Regel-Referenz; One2many blendet Archivierte aus). Journal-Default-Konten duerfen nicht Receivable/Payable sein (Odoo-Constraint); Rundungscents bucht Odoo als Adjustment Entry aufs Journal-Default.

depends: + l10n_at, hr_payroll_account_iso20022 (SEPA-Auszahlung, Plan 4.5; kein VRV/MVAG — gem360-Bruecke). Tests: test_account_private (4: RF-BUCH-1..4 — Kontenplan-Mock ohne Chart-Install, Move-Balance, Kontenzeilen je Matrix, Arbeiter-Split, Geringfuegiger, Fallback/Warnung) — gesamt 88/88 gruen auf Wegwerf-DB (frischer -i-Lauf). Rechenfaelle docs/rechenfaelle/buchhaltung.md. 19.0.6.0.0.
2026-09-12 12:58:53 +02:00

106 lines
5.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Part of the odoo-at-payroll project. License: LGPL-3.
{
'name': 'Österreich - Privatwirtschaft Personalverrechnung (General-AT)',
'version': '19.0.6.0.0',
'author': 'ixsol / gem360',
'website': 'https://gem360.at',
'category': 'Human Resources/Payroll',
'description': """
General-AT-Personalverrechnung (KV-basierte Privatwirtschaft)
==============================================================
Monatsverrechnung für Beschäftigte der österreichischen Privatwirtschaft
nach dem **KV-Regime** auf der Odoo-19 ``hr_payroll``-Engine. Fachliche
Grundlagen: ``personalverrechnung/IMPLEMENTIERUNGSPLAN-Privat.md`` und
``personalverrechnung/RECHTSQUELLEN-Privat.md`` (GP0-Verifikationen).
- **GP1 KV-Framework (dieser Stand):** Kollektivvertrags-Stammdaten
(``l10n.at.payroll.kv``) mit Trace-Link zur KV-Library, versionierte
KV-Eckwerte (``kv.wert`` — Muster ``hr.rule.parameter.value``,
Konsum über ``employee.kv_id._wert(code, datum)``), Verwendungs-/
Lohngruppen mit Erfahrungsstufen (``kv.gruppe`` / ``kv.gruppe.stufe``,
Jahrestabellen je ``gueltig_ab``), KV-Einstufung am Vertrag
(``hr.version``: KV, Gruppe, Erfahrungsstufe, Überzahlung) sowie
ein Import-Wizard für KV-Aufnahme und Jahresupdate (Vorschau,
Sprungwarnung > 10 %, versionierte Werte — TASY-Muster).
- **GP2 Entgelt-Engine (dieser Stand):** Structure „AT Privatwirtschaft
(KV)" + Kategorien ATP_*, Work-Entry-Types für die AZG-Fenster-Matrix
(ÜStd Tag/Nacht 206/226, So/Fei, Mehrarbeit § 4a-Band und § 19d
Teilzeit), Regelinventar KVGEO/NACHT_SV/UE_*/MEHR_*/URL_UE/B13/B14/
B14_RUECK/NETTO — vollständig datengetrieben über ``kv.wert``
(Vorlauf 2026-09-11 verifiziert; Rechenfälle unter ``docs/rechenfaelle/``).
All-in-Vertragsmodell (§ 2g AVRAG): Pauschale/Grundlohn-Ausweis am
Vertrag + Deckungsrechnung.
- **GP3 Lohnsteuer (umgesetzt):** dünne Regeln SVDN_KV/PV/AV/AK/WF +
LST_LFD/LST_SZ auf dem AP3-Kern (§ 66 kumulativ, § 67 Sechstel/
Fixsätze, § 68-Steuerfreiheiten).
- **GP4 SV/DB (umgesetzt):** SVDN_SZ-Nachtrag (§ 67 Abs 12 — Netto-
Korrektur in §-67-Monaten), DG-Block SVDG_KV/PV/AV/UV/WF/IESG +
SVDG_SZ_* + §-53a-UV Geringfügiger (ATP_DG, ohne Nettoeffekt;
ÖGK 2026: DG 20,98 % / Wien 21,23 %), Lohnnebenkosten FLAFDB
(§ 41 FLAG), KOMMST (§ 9 KommStG) und DZ (§§ 122/126 WKG,
company-flag-gated) mit Freibetragsstaffel 1.095/1.460 € —
Logik/Werte im Bundes-Kern (D3-Vorfinanzierung).
- **GP5 Abfertigung Neu (umgesetzt):** BMSVG-Regel ``BVG``
(§ 6: 1,53 % DG auf Entgelt und SZ, Kern-Parameter
``at_sv_bv_dg``) auf EIGENER, ungecappter BV-Grundlage (§ 6 Abs 5
iVm § 49 ASVG — kein HBG-Cap, ohne §-67-Abs-3/6-Zeilen),
beitragsfreier erster Monat taggenau (30-Tage-Aliquotierung;
Monatsende-Klippe), Wiederzulassung binnen 12 Monaten ab Tag 1
(Vor-AV beliebiger Dauer), läuft auch für Geringfügige und
Lehrlinge; Vertragsfeld Abfertigung-Neu/BV-Kasse + Erträge/Vor-
Monate am Mitarbeiter; Anwartschaftsreport (QWeb) + Endabrechnungs-
Wizard (§§ 14-17: Verfügungsausschluss-Matrix, 36-Beitragsmonate,
§-16-Fälligkeit, §-17-Optionen).
- **GP6 FI-Buchung UGB (dieser Stand):** Buchungsmatrix nach dem
Österreichischen Einheitskontenrahmen (KFS/BW 6): Hook
``_configure_payroll_account_at`` (Chart-Load + ``<function>``-
Datendatei, idempotent) zuordnet Regelkonten, Journal SLR und das
NET-Konto ``3850 Verbindlichkeiten aus Lohn und Gehalt`` (wird
angelegt, reconcile); **EKR-Debit-Split Arbeiter/Angestellte**
über ``l10n_at_personalgruppe`` am Vertrag + Override-Feld
``l10n_at_account_debit_arbeiter`` je Regel (Option A minimal:
Grundentgelt 6000, Sozialaufwand 6500, Abgaben 6600/6601/6602);
Netto-Regel auf Odoo-Konvention ``NET`` umbenannt
(Zahlungsregistrierung/SEPA via ``hr_payroll_account_iso20022``).
Auszahlung über ``hr_payroll_account_iso20022``; kein VRV/MVAG
(gem360-Brücke).
- **Seed D2 (Referenz-KVs R1):** SI-2203 „Handwerk und Gewerbe" +
SI-2748 „Metallgewerbe" (Gehaltstabellen ab 1. 1. 2026, kuratiert aus
den KV-Library-Volltexten).
- **Folgen (GP7+):** Meldewesen/Belege (GP7), Jahreswechsel (GP8);
All-in-UI-Bericht (GP8); B14 längster-Urlaubs-Teil-Verfeinerung;
DZ-WKO-Verifikation (8.11) vor Wien-Mandanten; §-7-BMSVG-
Fiktivfälle (Präsenzdienst/Kranken-/Wochengeld) als dokumentierte
Option; Referenzbuchhaltungs-Fixierung der Arbeiter-Sub-Konten
(Option A-Rest).
Kein VRV-Bezug (Gemeinde-Schiene bleibt ``l10n_at_gemeinde_payroll`` +
gem360-Brücke).
""",
'depends': ['l10n_at_hr_payroll', 'hr_payroll_account',
'l10n_at', 'hr_payroll_account_iso20022'],
'data': [
'security/ir.model.access.csv',
'data/kv_seed.xml',
'data/l10n.at.payroll.kv.gruppe.csv',
'data/l10n.at.payroll.kv.gruppe.stufe.csv',
'data/l10n.at.payroll.kv.wert.csv',
'data/structure_private.xml',
'data/work_entry_types_private.xml',
'data/input_types_private.xml',
'data/salary_rules_private.xml',
'data/salary_rules_lst_private.xml',
'data/salary_rules_sv_private.xml',
'data/salary_rules_bvg_private.xml',
'data/hr_payroll_account_private.xml',
'data/bv_kasse_seed.xml',
'views/kv_views.xml',
'views/bv_views.xml',
'report/bv_report.xml',
],
'countries': ['at'],
'license': 'LGPL-3',
'installable': True,
'auto_install': False,
}