27654211fb
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.
106 lines
5.4 KiB
Python
106 lines
5.4 KiB
Python
# 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 20–6/22–6, 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,
|
||
} |