Files
odoo-at-payroll/addons/l10n_at_hr_payroll_private/views/meldewesen_views.xml
T
fegger 14940ac31a [IMP] l10n_at_hr_payroll_private: GP7 mBGM/JASV + Versichertenmeldung + fallweise Anmeldung auf dem ELDA-Framework
mBGM/JASV (models/mbgm.py — DM-ORG 42.7.0 E.32, BEST MB, Version 02): Paket PS (BKNR/DGNA/BZRM/GSUM/ANZM) → mBGM G1 (REFW/VSNR/FANA/VONA/VSUM/VERG=1) → Tarifblock T1 (BSGR/VVON) → Verrechnungsbasis BS (VBTY/VBBT) → Verrechnungsposition V1 (VPTY/VPVZ/VPTA/RSVZ/RSUM). KEIN DN/DG-Zweig-Split: T01 = GESAMT-Prozentsatz des Tarifsystems je Beschäftigtengruppe (Parameter at_mbgm_tarif, normativ: laufend 39,05 % = KV 7,65 + PV 22,80 + AV 5,90 + UV 1,10 + WF 1,00 + IESG 0,10; SZ 37,55 % = DN KV 3,87 + PV 10,25 + AV 2,95 + DG 20,48). Abschläge als EIGENE Verrechnungspositionen je Basis: A03/A02/A01 = Minderung AV auf 0/1/2 % (§ 2a AMPFG, nur DN-AV, je Verrechnungsbasis AB UND SZ), A09 = UV-Entfall 60, A10 = AV+IE-Entfall Pensionsanspruch (Konkurrenz a4: sperrt Staffelabschlag), A15 = PV-Halbierung Bonusphase — konsistent mit der GP4-§-2a-DN-seitig-Konvention. BV (BMSVG): eigene Verrechnungsbasis BV (ungedeckelt, GP5) + Position V01 1,53 %. RSUM = Basis x Satz (mBGM-Tarifierung), Konsistenz-Check gegen GP4-Payslip-Beitragssummen ±0,10 € als Prüfwarnung. Storno: R1-Sätze mit REFU/VSUM wie Original. Fehlanzeige: Paket ohne mBGM-Sätze (ANZM 0). Geringfügige/fallweise ohne Parametrisierung: listenweiser Abbruch (keine Tarif-Erfindung; BSGR B044/B045/B010/B030 aus dem SV-Tarifsystem pflegen).

Versichertenmeldung (models/versichertenmeldung.py — DM-ORG E.29, BEST VR, Version 03, Satzlänge 772): M3 vor Arbeitsantritt / M4 (7 Kalendertage ab PV-Ende) mit deklarativer Event-Erkennung über die Meldungs-Registry (l10n.at.payroll.vr.event) — idempotente Läufe, Dimona-auto-Idee ohne write-diff-Hacks. Felder: BKNR/VSNR/GEBD/FANA/VONA (Namenssplit am letzten Leerzeichen), ADAT/EBSV, BBER 01-04 aus l10n_at_personalgruppe/lehrling, GERF (Kataloggehalt vs. GFG), FRDV, BVAB/BVJN aus dem GP5-BMSVG-Flag, VWAZ (Stunden x100, neu ab 01.01.2026), AGRD aus dem hr.departure.reason-Mapping (Standard 00). Fallweise Anmeldung (BEST MA, SART 32, Version 07, Länge 450): MVP je Anmeldetag am Vertragsbeginn; tagesgenaue Einsatztage via Work-Entry-Auswertung = dokumentierter Rest.

NSchAB-Branche als Company-Flag (l10n_at_nschab): B001-T01 + 3,80 % (Schlechtwetterentschädigung, ÖGK-Tarifsystem Normalbetriebe mit Schlechtwetterentschädigung).

Tests: test_meldewesen_private (2 — mBGM-Satzhierarchie mit A03 je Basis aus November-Fixture + GSUM-Konsistenz; VR M3/M4 mit Registry-Idempotenz und AGRD). Rechenfälle docs/rechenfaelle/meldewesen.md. 19.0.7.0.0.
2026-09-12 17:31:12 +02:00

147 lines
6.2 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- ============================================================ -->
<!-- GP7 Meldewesen (privat): mBGM + Versichertenmeldung. -->
<!-- ============================================================ -->
<record id="mbgm_list_view" model="ir.ui.view">
<field name="name">l10n.at.payroll.mbgm.list</field>
<field name="model">l10n.at.payroll.mbgm</field>
<field name="arch" type="xml">
<list string="mBGM (JASV)">
<field name="beitragsmonat"/>
<field name="art"/>
<field name="state" widget="badge"
decoration-success="state == 'done'"
decoration-info="state == 'draft'"/>
</list>
</field>
</record>
<record id="mbgm_form_view" model="ir.ui.view">
<field name="name">l10n.at.payroll.mbgm.form</field>
<field name="model">l10n.at.payroll.mbgm</field>
<field name="arch" type="xml">
<form string="Monatliche Beitragsgrundlagenmeldung (mBGM)">
<header>
<button name="action_erzeugen" type="object"
string="Lauf erzeugen (Datei)"
class="btn-primary"
invisible="state == 'done'"/>
<field name="state" widget="statusbar"
statusbar_visible="draft,done"/>
</header>
<sheet>
<group>
<group>
<field name="beitragsmonat"/>
<field name="art"/>
<field name="storno_id"
invisible="art != 'ST'"/>
</group>
<group>
<field name="company_id"
groups="base.group_multi_company"/>
</group>
</group>
<notebook>
<page string="mBGM-Sätze" name="linien">
<field name="line_ids">
<list editable="bottom">
<field name="employee_name"/>
<field name="versicherungsnummer"/>
<field name="bsgr"/>
<field name="refw"/>
<field name="vsum"/>
</list>
</field>
</page>
<page string="Datei &amp; Protokoll" name="datei">
<group>
<field name="datei"
filename="datei_name"/>
<field name="datei_name" invisible="1"/>
</group>
<field name="protokoll"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="action_mbgm" model="ir.actions.act_window">
<field name="name">mBGM (JASV)</field>
<field name="res_model">l10n.at.payroll.mbgm</field>
<field name="view_mode">list,form</field>
</record>
<record id="vr_form_view" model="ir.ui.view">
<field name="name">l10n.at.payroll.vr.form</field>
<field name="model">l10n.at.payroll.vr</field>
<field name="arch" type="xml">
<form string="Versichertenmeldung (An-/Abmeldung)">
<header>
<button name="action_erzeugen" type="object"
string="Meldungen erzeugen (Datei)"
class="btn-primary"
invisible="state == 'done'"/>
<field name="state" widget="statusbar"
statusbar_visible="draft,done"/>
</header>
<sheet>
<group>
<group>
<field name="stichtag"/>
<field name="nur_fallweise"/>
</group>
<group>
<field name="company_id"
groups="base.group_multi_company"/>
</group>
</group>
<notebook>
<page string="Datei &amp; Protokoll" name="datei">
<group>
<field name="datei"
filename="datei_name"/>
<field name="datei_name" invisible="1"/>
</group>
<field name="protokoll"/>
<field name="event_ids">
<list>
<field name="employee_id"/>
<field name="art"/>
<field name="adatum"/>
<field name="refw"/>
</list>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="action_vr" model="ir.actions.act_window">
<field name="name">Versichertenmeldung (An-/Abmeldung)</field>
<field name="res_model">l10n.at.payroll.vr</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<menuitem id="menu_l10n_at_payroll_private_meldewesen"
name="Meldewesen (ELDA/eSV)"
parent="l10n_at_hr_payroll_private.menu_l10n_at_payroll_private_root"
sequence="70"/>
<menuitem id="menu_l10n_at_payroll_private_mbgm"
name="mBGM (JASV)"
parent="menu_l10n_at_payroll_private_meldewesen"
action="action_mbgm" sequence="10"/>
<menuitem id="menu_l10n_at_payroll_private_vr"
name="Versichertenmeldung"
parent="menu_l10n_at_payroll_private_meldewesen"
action="action_vr" sequence="20"/>
</odoo>