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_hr_payroll_private: Mutterschutz/Wochengeld — Entgelt-Stopp, volle §-162-Abs-3-Berechnung, fiktive BV (AP7)
Rollenklärung (lb-msf-03, ASVG § 162 Abs 1): Wochengeld ist eine KV-Leistung — die ÖGK zahlt; der Dienstgeber stoppt das Entgelt in den Beschäftigungsfristen (MSchG §§ 3/5), liefert die Bemessungsdaten (Arbeits-/Entgeltbestätigung folgt mit AP8) und fuehrt die Abfertigung Neu auf fiktiver Grundlage. - models/mutterschutz.py: _at_msch_status (Kalendertage/Arbeitstage/ Episode aus der neuen Urlaubsart 'Mutterschutz-Frist', WET ATP_MSCH), _at_wochengeld — volle Wochengeld-Rechnung § 162 Abs 3 ASVG: Ø-Netto der drei Referenzmonate (letzte 13 Wochen) x (1 + satzungs- SZ-Prozentsatz 14/17/21 %, Parameter at_msch_sz_prozentsatz, vor Erstverwendung mandantenseitig zu verifizieren) ÷ Kalender- tage; Fallback kurzes DV (lb-msf-03) - Regel MSCH_ENTGELT: Entgelt-Stopp je Arbeitstag der Frist (negativ, Brutto; Tagesatz-Helper mit EFZG geteilt) - Fiktive BV-Grundlage § 7 Abs 4 BMSVG (RIS verifiziert): Monatsentgelt-Ø der letzten drei Kalendermonate vor dem Versicherungs- fall der Mutterschaft inkl. anteiliger Sonderzahlungen x Bezugs-KT/30, im _at_bv_basis_laufen-Hook neben der Krankengeld-Fiktion (AP4) - Rechenfaelle docs/rechenfaelle/mutterschutz.md; 4 Tests (Entgelt-Stopp + fiktive BV, §-162-Abs-3-Arithmetik, Wirkungslosigkeit ohne Frist, kurzes-DV-Fallback); Optionen dokumentiert: Sonderwochengeld § 163, Ruhen § 166, Karenz-Referenzmonat § 7 Abs 4 Z 1-3
This commit is contained in:
@@ -46,6 +46,16 @@
|
||||
<field name="country_id" ref="base.at"/>
|
||||
<field name="is_leave" eval="True"/>
|
||||
</record>
|
||||
<!-- AP7: Mutterschutz-Fristen (§§ 3/5 MSchG) — Wochengeldbezug, -->
|
||||
<!-- Entgelt gestoppt; Wochengeld zahlt die ÖGK. -->
|
||||
<record id="wett_atp_msch" model="hr.work.entry.type">
|
||||
<field name="name">Mutterschutz-Frist (MSchG §§ 3/5)</field>
|
||||
<field name="color">8</field>
|
||||
<field name="display_code">MSF</field>
|
||||
<field name="code">ATP_MSCH</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
<field name="is_leave" eval="True"/>
|
||||
</record>
|
||||
|
||||
<!-- Urlaubsarten (hr.leave.type) mit WET-Verknüpfung -->
|
||||
<record id="leave_type_at_urlaub" model="hr.leave.type">
|
||||
@@ -82,6 +92,17 @@
|
||||
<field name="work_entry_type_id"
|
||||
ref="l10n_at_hr_payroll_private.wett_atp_au"/>
|
||||
</record>
|
||||
<record id="leave_type_at_mutterschutz" model="hr.leave.type">
|
||||
<field name="name">Mutterschutz-Frist (§§ 3/5 MSchG)</field>
|
||||
<field name="requires_allocation" eval="False"/>
|
||||
<field name="leave_validation_type">hr</field>
|
||||
<field name="request_unit">day</field>
|
||||
<field name="support_document" eval="True"/>
|
||||
<field name="company_id" eval="False"/>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
<field name="work_entry_type_id"
|
||||
ref="l10n_at_hr_payroll_private.wett_atp_msch"/>
|
||||
</record>
|
||||
<record id="leave_type_at_karenz" model="hr.leave.type">
|
||||
<field name="name">Unbezahlte Karenz</field>
|
||||
<field name="requires_allocation" eval="False"/>
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<!-- AP7: Satzungsmäßiger Sonderzahlungs-Prozentsatz des -->
|
||||
<!-- Wochengeldes (§ 162 Abs 3 ASVG; lb-msf-03, Stand 2026-07: -->
|
||||
<!-- 14 % / 17 % / 21 % je nach Ausmaß der Sonderzahlungen — -->
|
||||
<!-- ⚠ satzungsabhängig, vor Erstverwendung mandantenseitig gegen -->
|
||||
<!-- die Satzung des KV-Trägers verifizieren; hier 17 % als -->
|
||||
<!-- mittlerer Wert, kein verifizierter Mandantenwert). -->
|
||||
<record id="hr_rule_parameter_at_msch_sz_prozentsatz" model="hr.rule.parameter">
|
||||
<field name="name">Wochengeld-Sonderzahlungsprozentsatz (§ 162 Abs 3 ASVG)</field>
|
||||
<field name="code">at_msch_sz_prozentsatz</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
</record>
|
||||
<record id="hr_rule_parameter_value_at_msch_sz_prozentsatz"
|
||||
model="hr.rule.parameter.value">
|
||||
<field name="rule_parameter_id"
|
||||
ref="hr_rule_parameter_at_msch_sz_prozentsatz"/>
|
||||
<field name="date_from">2026-01-01</field>
|
||||
<field name="parameter_value">17.0</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<!-- ============================================================ -->
|
||||
<!-- AP7: Mutterschutz — Entgelt-Stopp während der Beschäftigungs- -->
|
||||
<!-- verbote (MSchG §§ 3/5): Das Wochengeld zahlt die ÖGK (§ 162 -->
|
||||
<!-- Abs 1 ASVG), der Dienstgeber schuldet für die Verbots-Tage -->
|
||||
<!-- kein Entgelt (lb-msf-03). Negative Brutto-Zeile je Arbeitstag -->
|
||||
<!-- aus dem Arbeitseintragssatz (Muster KRANKENTGELT_PHASE); die -->
|
||||
<!-- fiktive BV-Grundlage läuft separat (§ 7 Abs 4 BMSVG). -->
|
||||
<!-- ============================================================ -->
|
||||
|
||||
<record id="rule_msch_entgelt" model="hr.salary.rule">
|
||||
<field name="name">Mutterschutz-Frist (kein Dienstgeber-Entgelt; Wochengeld zahlt ÖGK)</field>
|
||||
<field name="code">MSCH_ENTGELT</field>
|
||||
<field name="sequence" eval="47"/>
|
||||
<field name="category_id" ref="l10n_at_hr_payroll_private.category_atp_brutto"/>
|
||||
<field name="struct_id" ref="l10n_at_hr_payroll_private.structure_at_privat"/>
|
||||
<field name="condition_select">python</field>
|
||||
<field name="condition_python"><![CDATA[
|
||||
msch = payslip._at_msch_status()
|
||||
result = bool(msch and msch['arbeitstage'])
|
||||
]]></field>
|
||||
<field name="amount_select">code</field>
|
||||
<field name="l10n_at_bemessung">laufend</field>
|
||||
<field name="amount_python_compute"><![CDATA[
|
||||
# Beschäftigungsverbot je Arbeitstag: volle Tages-Entgelt-
|
||||
# Reduktion (Tagesatz ohne Teilentgelt-Reduktionen — Helper
|
||||
# teilt die Ausschlüsse mit EFZG und MSCH).
|
||||
msch = payslip._at_msch_status()
|
||||
result = -payslip._at_efz_tagesatz(result_rules) \
|
||||
* len(msch['arbeitstage'])
|
||||
]]></field>
|
||||
</record>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user