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: Lohnpfändung — Existenzminimum § 291a EO, DN-Abzug, Kostenersatz, DSE (AP11)
Pfändungs-/Exekutionsmaschinerie nach EO §§ 291/291a/292/301/302/ 292h für den Privatwirtschafts-DN (Plan: personalverrechnung/PLAN-Restluecken-AP11.md §AP11, MVP + Kostenersatz): - Neues Modell l10n.at.payroll.pfaendung (models/pfaendung.py): Gläubiger, Vollstreckungsträger, Pfändungsart, Zustellungsdatum, Forderungshöhe, Status aktiv/gesetzt/geloest, Verwalter (§ 301 Abs 1 Z 6), 4-Wochen-Zahlungssperre (§ 304), Kostenersatz-Variante (§ 292h), DSE-/Auszahlungsfristen (computed), Rang nach Einlangedatum, Constraint Löse-/Zustellungsdatum; hr.version: l10n_at_unterhaltspflichten (0–5) und l10n_at_sz_anspruch (§ 291a Abs 2 Z 1/Z 2); hr.salary.rule: Flags l10n_at_pfandung_unpfandbar (AP12-Schnittstelle) und l10n_at_pfandung_beendigung (AP14/15-Schnittstelle) - Engine (hr.payslip): Existenzminimum-Maschine § 291a EO je Topf (laufend/sz13/sz14/beendigung), Pfändungsberechnungsgrundlage § 291 EO (laufend = Bezüge − unpfändbar − SV-DN − LSt), Masse, Kostenersatz § 292h (2 %/max 8 € + 1 %/max 4 €, nie vom Existenzminimum), Regeln PFAENDUNG (seq 75) / PFAENDUNG_SZ (seq 76); result_rules enthält ungerundete Rule-Summen — Lesezugänge runden auf Cents (Zeilenbeträge), sonst 1-Cent-Drift - Parameter at_eo_azr (2025: 1.273,99 / 2026: 1.308,39 €) und at_eo_kostenersatz; DSE-Report (qweb-pdf auf hr.employee), Views/Menu unter Payroll-Wurzel, Security (payroll-Groups + Company-ir.rule) - Rechenfälle docs/rechenfaelle/pfaendung.md (RF-PFA-1…7): lb-pfa-03 exakt verifiziert (33.840 € → EX 16.684 € / pfändbar 17.156 €); 103/103 Tests grün - Offene Reste dokumentiert: Unterhaltsexekution 75 %/Koinzidenz, Vorschüsse § 290c, Sachbezüge (AP12), Beendigungs-Regeln (AP14/15), 2027-AZR-Werte Version 19.0.9.5.0
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<!-- ============================================================ -->
|
||||
<!-- AP11: Drittschuldnererklärung (DSE, lb-pfa-06). An das -->
|
||||
<!-- Exekutionsgericht und den betreibenden Gläubiger bzw. bei -->
|
||||
<!-- Verwalterbestellung an diesen; idR binnen 4 Wochen ab -->
|
||||
<!-- Zustellung (§ 301 EO). Auch bei Null-Pfändung / Ex- -->
|
||||
<!-- Mitarbeiter abzugeben. -->
|
||||
<!-- ============================================================ -->
|
||||
<record id="action_report_pfaendung_dse" model="ir.actions.report">
|
||||
<field name="name">Drittschuldnererklärung (Lohnpfändung)</field>
|
||||
<field name="model">hr.employee</field>
|
||||
<field name="report_type">qweb-pdf</field>
|
||||
<field name="report_name">l10n_at_hr_payroll_private.report_pfaendung_dse</field>
|
||||
<field name="report_file">l10n_at_hr_payroll_private.report_pfaendung_dse</field>
|
||||
<field name="paperformat_id" ref="base.paperformat_euro"/>
|
||||
<field name="binding_model_id" ref="hr.model_hr_employee"/>
|
||||
<field name="binding_type">report</field>
|
||||
</record>
|
||||
|
||||
<template id="report_pfaendung_dse">
|
||||
<t t-call="web.html_container">
|
||||
<t t-foreach="docs" t-as="employee">
|
||||
<t t-set="w" t-value="werte[employee.id]"/>
|
||||
<t t-call="web.external_layout">
|
||||
<div class="page">
|
||||
<h2>Drittschuldnererklärung — Arbeitsverhältnis</h2>
|
||||
<p class="text-muted">
|
||||
Erklärung des Dienstgebers als Drittschuldner
|
||||
über die Bezügeansprüche des Verpflichteten
|
||||
(§ 301 EO; lb-pfa-06).
|
||||
</p>
|
||||
<table class="table table-sm o_main_table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>Dienstnehmer:in</strong></td>
|
||||
<td><t t-out="employee.name"/></td>
|
||||
<td><strong>Unterhaltspflichten</strong></td>
|
||||
<td><t t-out="employee.l10n_at_unterhaltspflichten or 0"/> (max 5 wirksam)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Sonderzahlungsanspruch (13./14.)</strong></td>
|
||||
<td><t t-if="employee.l10n_at_sz_anspruch">ja</t><t t-else="">nein (erhöhter Grundbetrag)</t></td>
|
||||
<td><strong>Beschäftigt beim Drittschuldner</strong></td>
|
||||
<td><t t-if="w['lauf_basis'] is not None">ja (letzter validierter Lauf vorhanden)</t><t t-else="">— kein validierter Lauf</t></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>Pfändungen / Exekutionen (nach Rang)</h3>
|
||||
<table class="table table-sm o_main_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Rang</th>
|
||||
<th>Gläubiger</th>
|
||||
<th>Art</th>
|
||||
<th>Zustellung</th>
|
||||
<th class="text-end">Forderung</th>
|
||||
<th>Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr t-foreach="w['pfandungen']" t-as="p">
|
||||
<td><t t-out="p.rang"/></td>
|
||||
<td><t t-out="p.glaubiger"/></td>
|
||||
<td><t t-out="p.pfandung_art"/></td>
|
||||
<td><t t-out="p.zustellungsdatum"/></td>
|
||||
<td class="text-end">
|
||||
<span t-out="p.forderungshoehe"
|
||||
t-options='{"widget": "monetary", "display_currency": employee.currency_id}'/>
|
||||
</td>
|
||||
<td><t t-out="p.status"/></td>
|
||||
</tr>
|
||||
<tr t-if="not w['pfandungen']">
|
||||
<td colspan="6" class="text-muted">
|
||||
Keine aktive Pfändungsvormerkung erfasst.
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>Pfändbarer Betrag (laufender Bezug, § 291a EO)</h3>
|
||||
<table class="table table-sm o_main_table">
|
||||
<tbody>
|
||||
<tr t-if="w['lauf_basis'] is not None">
|
||||
<td>Berechnungsgrundlage (Netto nach SV-DN/LSt)</td>
|
||||
<td class="text-end">
|
||||
<span t-out="w['lauf_basis']"
|
||||
t-options='{"widget": "monetary", "display_currency": employee.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr t-if="w['lauf_basis'] is not None">
|
||||
<td>Existenzminimum (unpfändbar)</td>
|
||||
<td class="text-end">
|
||||
<span t-out="w['lauf_ex']"
|
||||
t-options='{"widget": "monetary", "display_currency": employee.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr t-if="w['lauf_basis'] is not None">
|
||||
<td><strong>Pfändbarer Betrag</strong></td>
|
||||
<td class="text-end">
|
||||
<strong><span t-out="w['lauf_pfaendbar']"
|
||||
t-options='{"widget": "monetary", "display_currency": employee.currency_id}'/></strong>
|
||||
</td>
|
||||
</tr>
|
||||
<tr t-if="w['lauf_basis'] is None">
|
||||
<td colspan="2" class="text-muted">
|
||||
Kein validierter Lauf — Beträge nicht
|
||||
ermittelt (Null-Pfändung / Ex-Mitarbeiter:
|
||||
Erklärung dennoch abgeben, lb-pfa-06).
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p class="small text-muted">
|
||||
Hinweis: Die Erklärung ist auch dann zu erstatten,
|
||||
wenn der Verpflichtete nicht (mehr) beschäftigt ist
|
||||
oder nichts Pfändbares bezogen wird (lb-pfa-06).
|
||||
Kostenersatz für die Erklärung: § 302 EO (keine USt,
|
||||
VwGH 2011/15/0181).
|
||||
</p>
|
||||
</div>
|
||||
</t>
|
||||
</t>
|
||||
</t>
|
||||
</template>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user