mirror of
http://100.103.83.12:3003/fegger/odoo-at-payroll.git
synced 2026-09-17 08:52:45 +00:00
[IMP] l10n_at_gemeinde_payroll: implement SV value layer (AP4) from OEGK TASY
SV-Werte-Implementierung nach dem freigegebenen TASY-Plan (PLAN-TASY-SV-Import):
- hr.rule.parameter-Seed 2026 (20 Parameter, generator-erzeugt aus dem
ÖGK TASY-LSWH-Export, Stichtag 2026-07-01): Geringfügigkeit 551,10 EUR
(GFGBTG, ab 2025 — Aufwertungsaussetzung korrekt abgebildet), HBG
monatlich 6.930 EUR (HBGALLG tgl. x 30), HBG SZ 13.860 EUR, KV
3,87/3,78, PV 10,25/12,55, AV 2,95/2,95, UV 0/1,10, IESG 0/0,10,
BV 1,53, AK/WF geführt, § 2a AMPFG-Staffel aus dem SV-Werte-Report.
Generator mit Herkunftsnachweis + Erwartungswert-Ankern
(personalverrechnung/tools/gen_sv_parameters_2026.py, Exit 1 bei
Abweichung von den offiziellen Ankern).
- TASY-Quelldatei committet (personalverrechnung/quellen/, 5 MB —
öffentliches Tarifdatenmaterial ohne Personendaten) für Seed- und
Testreproduzierbarkeit.
- Deklarative TASY-Mapping-Tabelle (gemeinde.payroll.tasy.mapping,
data XML): bbb-Codes (Cent, Faktor z. B. x 30) und Tarifzweige
(_dn/_dg-Suffix-Konvention) — keine festen Werte im Code.
- Import-Wizard (TransientModel, lxml safe parsing):
Beschaeftigtengruppe B002 ("Angestellte") -> Tarifgruppe ->
tarifgruppeSetZuord -> Tarifset -> Tarif; bei Varianten gewinnt die
Split-Variante (DN>0 und DG>0), dann die einseitige DG-Variante (UV/BV);
freie-DN-Varianten verlieren. Preview mit Delta, Sprungwarnung > 10 %,
Warnzeilen werden nie automatisch übernommen; Schreiben versionierter
hr.rule.parameter.value-Sätze erst nach expliziter Bestätigung.
- Tests (4 Suiten): Seed-Werte am Stichtag, Fixture-Parser
(Split-Präferenz, Cent-Rechnung), Versionsverhalten (Update statt
Duplikat), Echtdaten-Test gegen den 5-MB-Export (Auflösung == Seed,
keine Warnzeilen).
- Security/Views/Menüs für Mapping + Wizard; Modul-Version 19.0.1.2.0.
Statische Validierung grün (py_compile, XML, Manifest); Runtime-Testlauf
auf dem Dev-Host ausständig.
This commit is contained in:
@@ -0,0 +1,203 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="hr_rule_parameter_at_sv_ak_dg" model="hr.rule.parameter">
|
||||
<field name="name">Arbeiterkammerumlage Dienstgeberanteil</field>
|
||||
<field name="code">at_sv_ak_dg</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_ak_dg" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_ak_dg"/>
|
||||
<field name="date_from">2019-01-01</field>
|
||||
<field name="parameter_value">0.0</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_ak_dn" model="hr.rule.parameter">
|
||||
<field name="name">Arbeiterkammerumlage Dienstnehmeranteil</field>
|
||||
<field name="code">at_sv_ak_dn</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_ak_dn" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_ak_dn"/>
|
||||
<field name="date_from">2019-01-01</field>
|
||||
<field name="parameter_value">0.5</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_av_dg" model="hr.rule.parameter">
|
||||
<field name="name">SV Arbeitslosenversicherung Dienstgeberanteil</field>
|
||||
<field name="code">at_sv_av_dg</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_av_dg" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_av_dg"/>
|
||||
<field name="date_from">2024-01-01</field>
|
||||
<field name="parameter_value">2.95</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_av_dn" model="hr.rule.parameter">
|
||||
<field name="name">SV Arbeitslosenversicherung Dienstnehmeranteil</field>
|
||||
<field name="code">at_sv_av_dn</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_av_dn" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_av_dn"/>
|
||||
<field name="date_from">2024-01-01</field>
|
||||
<field name="parameter_value">2.95</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_av_staffel_ampfg" model="hr.rule.parameter">
|
||||
<field name="name">SV AV-Beitragsstaffel bei geringem Einkommen (§ 2a AMPFG)</field>
|
||||
<field name="code">at_sv_av_staffel_ampfg</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_av_staffel_ampfg" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_av_staffel_ampfg"/>
|
||||
<field name="date_from">2026-07-01</field>
|
||||
<field name="parameter_value">{'tiers': [(0.0, 2225.00, 0.0), (2225.00, 2427.00, 1.0), (2427.00, 2630.00, 2.0)], 'av_total': 5.9}</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_bv_dg" model="hr.rule.parameter">
|
||||
<field name="name">Betriebliche Vorsorge Dienstgeberanteil</field>
|
||||
<field name="code">at_sv_bv_dg</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_bv_dg" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_bv_dg"/>
|
||||
<field name="date_from">2019-01-01</field>
|
||||
<field name="parameter_value">1.53</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_bv_dn" model="hr.rule.parameter">
|
||||
<field name="name">Betriebliche Vorsorge Dienstnehmeranteil</field>
|
||||
<field name="code">at_sv_bv_dn</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_bv_dn" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_bv_dn"/>
|
||||
<field name="date_from">2019-01-01</field>
|
||||
<field name="parameter_value">0.0</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_gfg_monatlich" model="hr.rule.parameter">
|
||||
<field name="name">SV Geringfügigkeitsgrenze (monatlich, § 5 Abs 2 ASVG)</field>
|
||||
<field name="code">at_sv_gfg_monatlich</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_gfg_monatlich" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_gfg_monatlich"/>
|
||||
<field name="date_from">2025-01-01</field>
|
||||
<field name="parameter_value">551.1</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_hbg_monatlich" model="hr.rule.parameter">
|
||||
<field name="name">SV Höchstbeitragsgrundlage (monatlich, § 45 Abs 1 ASVG)</field>
|
||||
<field name="code">at_sv_hbg_monatlich</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_hbg_monatlich" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_hbg_monatlich"/>
|
||||
<field name="date_from">2026-01-01</field>
|
||||
<field name="parameter_value">6930.0</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_hbg_sz_jaehrlich" model="hr.rule.parameter">
|
||||
<field name="name">SV Höchstbeitragsgrundlage Sonderzahlungen (§ 54 ASVG)</field>
|
||||
<field name="code">at_sv_hbg_sz_jaehrlich</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_hbg_sz_jaehrlich" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_hbg_sz_jaehrlich"/>
|
||||
<field name="date_from">2026-01-01</field>
|
||||
<field name="parameter_value">13860.0</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_iesg_dg" model="hr.rule.parameter">
|
||||
<field name="name">IESG-Zuschlag Dienstgeberanteil (Insolvenz)</field>
|
||||
<field name="code">at_sv_iesg_dg</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_iesg_dg" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_iesg_dg"/>
|
||||
<field name="date_from">2022-01-01</field>
|
||||
<field name="parameter_value">0.1</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_iesg_dn" model="hr.rule.parameter">
|
||||
<field name="name">IESG-Zuschlag Dienstnehmeranteil</field>
|
||||
<field name="code">at_sv_iesg_dn</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_iesg_dn" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_iesg_dn"/>
|
||||
<field name="date_from">2022-01-01</field>
|
||||
<field name="parameter_value">0.0</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_kv_dg" model="hr.rule.parameter">
|
||||
<field name="name">SV Krankenversicherung Dienstgeberanteil</field>
|
||||
<field name="code">at_sv_kv_dg</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_kv_dg" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_kv_dg"/>
|
||||
<field name="date_from">2019-01-01</field>
|
||||
<field name="parameter_value">3.78</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_kv_dn" model="hr.rule.parameter">
|
||||
<field name="name">SV Krankenversicherung Dienstnehmeranteil</field>
|
||||
<field name="code">at_sv_kv_dn</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_kv_dn" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_kv_dn"/>
|
||||
<field name="date_from">2019-01-01</field>
|
||||
<field name="parameter_value">3.87</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_pv_dg" model="hr.rule.parameter">
|
||||
<field name="name">SV Pensionsversicherung Dienstgeberanteil</field>
|
||||
<field name="code">at_sv_pv_dg</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_pv_dg" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_pv_dg"/>
|
||||
<field name="date_from">2019-01-01</field>
|
||||
<field name="parameter_value">12.55</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_pv_dn" model="hr.rule.parameter">
|
||||
<field name="name">SV Pensionsversicherung Dienstnehmeranteil</field>
|
||||
<field name="code">at_sv_pv_dn</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_pv_dn" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_pv_dn"/>
|
||||
<field name="date_from">2019-01-01</field>
|
||||
<field name="parameter_value">10.25</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_uv_dg" model="hr.rule.parameter">
|
||||
<field name="name">SV Unfallversicherung Dienstgeberanteil</field>
|
||||
<field name="code">at_sv_uv_dg</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_uv_dg" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_uv_dg"/>
|
||||
<field name="date_from">2023-01-01</field>
|
||||
<field name="parameter_value">1.1</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_uv_dn" model="hr.rule.parameter">
|
||||
<field name="name">SV Unfallversicherung Dienstnehmeranteil</field>
|
||||
<field name="code">at_sv_uv_dn</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_uv_dn" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_uv_dn"/>
|
||||
<field name="date_from">2023-01-01</field>
|
||||
<field name="parameter_value">0.0</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_wf_dg" model="hr.rule.parameter">
|
||||
<field name="name">Wohnbauförderungsbeitrag Dienstgeberanteil</field>
|
||||
<field name="code">at_sv_wf_dg</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_wf_dg" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_wf_dg"/>
|
||||
<field name="date_from">2019-01-01</field>
|
||||
<field name="parameter_value">0.5</field>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_at_sv_wf_dn" model="hr.rule.parameter">
|
||||
<field name="name">Wohnbauförderungsbeitrag Dienstnehmeranteil</field>
|
||||
<field name="code">at_sv_wf_dn</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_sv_wf_dn" model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id" ref="hr_rule_parameter_at_sv_wf_dn"/>
|
||||
<field name="date_from">2019-01-01</field>
|
||||
<field name="parameter_value">0.5</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<!-- Beitragsbemessungsbeträge (Cent-Werte, TASY-LSWH) -->
|
||||
<record id="tasy_mapping_gfg" model="gemeinde.payroll.tasy.mapping">
|
||||
<field name="tasy_art">bbb</field>
|
||||
<field name="tasy_code">GFGBTG</field>
|
||||
<field name="parameter_code">at_sv_gfg_monatlich</field>
|
||||
<field name="cent_werte" eval="True"/>
|
||||
<field name="faktor">1.0</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_hbg_mon" model="gemeinde.payroll.tasy.mapping">
|
||||
<field name="tasy_art">bbb</field>
|
||||
<field name="tasy_code">HBGALLG</field>
|
||||
<field name="parameter_code">at_sv_hbg_monatlich</field>
|
||||
<field name="cent_werte" eval="True"/>
|
||||
<field name="faktor">30</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_hbg_sz" model="gemeinde.payroll.tasy.mapping">
|
||||
<field name="tasy_art">bbb</field>
|
||||
<field name="tasy_code">HBGSZ</field>
|
||||
<field name="parameter_code">at_sv_hbg_sz_jaehrlich</field>
|
||||
<field name="cent_werte" eval="True"/>
|
||||
<field name="faktor">1.0</field>
|
||||
</record>
|
||||
|
||||
<!-- Tarifzweige (Beitragssätze; _dn/_dg wird angehängt) -->
|
||||
<record id="tasy_mapping_kv" model="gemeinde.payroll.tasy.mapping">
|
||||
<field name="tasy_art">zweig</field>
|
||||
<field name="tasy_code">KV</field>
|
||||
<field name="parameter_code">at_sv_kv</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_pv" model="gemeinde.payroll.tasy.mapping">
|
||||
<field name="tasy_art">zweig</field>
|
||||
<field name="tasy_code">PV</field>
|
||||
<field name="parameter_code">at_sv_pv</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_av" model="gemeinde.payroll.tasy.mapping">
|
||||
<field name="tasy_art">zweig</field>
|
||||
<field name="tasy_code">AV</field>
|
||||
<field name="parameter_code">at_sv_av</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_uv" model="gemeinde.payroll.tasy.mapping">
|
||||
<field name="tasy_art">zweig</field>
|
||||
<field name="tasy_code">UV</field>
|
||||
<field name="parameter_code">at_sv_uv</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_iesg" model="gemeinde.payroll.tasy.mapping">
|
||||
<field name="tasy_art">zweig</field>
|
||||
<field name="tasy_code">IE</field>
|
||||
<field name="parameter_code">at_sv_iesg</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_bv" model="gemeinde.payroll.tasy.mapping">
|
||||
<field name="tasy_art">zweig</field>
|
||||
<field name="tasy_code">BV</field>
|
||||
<field name="parameter_code">at_sv_bv</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_ak" model="gemeinde.payroll.tasy.mapping">
|
||||
<field name="tasy_art">zweig</field>
|
||||
<field name="tasy_code">AK</field>
|
||||
<field name="parameter_code">at_sv_ak</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_wf" model="gemeinde.payroll.tasy.mapping">
|
||||
<field name="tasy_art">zweig</field>
|
||||
<field name="tasy_code">WF</field>
|
||||
<field name="parameter_code">at_sv_wf</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user