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 AP2 pay computation engine (GemBG Bgld.)
Entgelt-Engine nach Implementierungsplan AP2 (freigegeben 2026-09-09):
- Structure Type "Bgld. GemBG 2014" + Structure "Gemeindebedienstete"
mit 4 Kategorien (GEMBG_BRUTTO, GEMBG_ABZUG, GEMBG_NETTO, GEMBG_DG).
- Work-Entry-Types: Überstunden Tag/Nacht (§ 76), Mehrdienstleistung,
Journaldienst (§ 79), Bereitschaft (§ 80), Sonn-/Feiertag (§ 78).
- Input-Types: Erschwerniszulage (§ 83), Fahrtkostenzuschuss (§ 88),
Jubiläumszuwendung (§ 89).
- Entgelt-Regeln (13 Rules):
* ME — Monatsentgelt: Katalog-Lookup (Gruppe+Stufe+Stichtag),
Ausbildungsphase 5 % Abzug (§ 133h), Teilzeit via work_time_rate.
* KIZU — Kinderzulage: kinder_anzahl × 15,60 EUR (§ 61 GemBG),
bei Teilzeit UNGEKÜRZT (§ 59 Abs 2).
* FUZU — Funktionszulage: hr.version-Feld × work_time_rate (§ 62).
* UEZ_TAG/UEZ_NACHT — Überstundenvergütung (§ 76):
Grund = ME / (4,33 × Wochenstunden); Zuschlag 50 % Tag / 100 % Nacht.
* JZU — Journaldienstzulage (§ 79): Work-Entry × Parametersatz.
* SFZU — Sonn-/Feiertagszulage (§ 78): Stunden × Grundvergütung × %.
* BERB — Bereitschaftsentschädigung (§ 80): Stunden × Parametersatz.
* ERZU/FKZ/JUB — Input-basierte Bezüge (§§ 83/88/89).
* SZQ — Sonderzahlung QUARTALSWEISE (§ 133n): in Quartalsendmonaten
(März, Juni, September, Dezember) 50 % × (ME + KIZU).
* NETTO — Kategoriensumme (wird mit AP3/AP4 erweitert).
- hr.version-Felder: kinder_anzahl, funktionszulage, ausbildungsphase
(§ 61/§ 62/§ 133h) mit Employee-Spiegel nach Engine-Muster.
- Rule-Parameter: Kinderzulage 15,60 EUR, Journaldienstzulage,
Sonn-/Feiertags-%, Bereitschaftsstunde (letzte 3 als AP0-Platzhalter
mit 0.0 — Werte aus der Bezügeanpassung nach Beschaffung).
- Tests (8 Rechenfälle): Vollzeit av1 Stufe 1, Kinderzulage 2 Kinder
= 31,20 EUR, Funktionszulage, Ausbildungsphase 5 % Abzug,
SZ Quartalsende + Nicht-Quartalsende, Netto=Brutto (AP3/AP4 offen),
Stufe 12 Max.
- Employee-Form um Zulagen-Gruppe erweitert.
Modul-Version 19.0.1.3.0. Statische Validierung grün; Runtime-Testlauf
auf dem Dev-Host ausständig.
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<!-- ============================================================ -->
|
||||
<!-- Structure Type: Bgld. GemBG -->
|
||||
<!-- ============================================================ -->
|
||||
<record id="structure_type_gembg_bgld" model="hr.payroll.structure.type">
|
||||
<field name="name">Bgld. GemBG 2014</field>
|
||||
<field name="country_id" ref="base.at"/>
|
||||
<field name="default_schedule_pay">monthly</field>
|
||||
</record>
|
||||
|
||||
<!-- ============================================================ -->
|
||||
<!-- Structure: Gemeindebedienstete Bgld. -->
|
||||
<!-- ============================================================ -->
|
||||
<record id="structure_gembg_bgld" model="hr.payroll.structure">
|
||||
<field name="name">Gemeindebedienstete (Bgld. GemBG 2014)</field>
|
||||
<field name="code">GEMBG.BGLD</field>
|
||||
<field name="type_id" ref="structure_type_gembg_bgld"/>
|
||||
<field name="regular_pay" eval="True"/>
|
||||
</record>
|
||||
|
||||
<!-- ============================================================ -->
|
||||
<!-- Kategorien -->
|
||||
<!-- ============================================================ -->
|
||||
<record id="category_gembg_brutto" model="hr.salary.rule.category">
|
||||
<field name="name">GemBG Brutto (Entgelt)</field>
|
||||
<field name="code">GEMBG_BRUTTO</field>
|
||||
</record>
|
||||
<record id="category_gembg_abzug" model="hr.salary.rule.category">
|
||||
<field name="name">GemBG Abzüge (LSt, SV)</field>
|
||||
<field name="code">GEMBG_ABZUG</field>
|
||||
</record>
|
||||
<record id="category_gembg_netto" model="hr.salary.rule.category">
|
||||
<field name="name">GemBG Netto</field>
|
||||
<field name="code">GEMBG_NETTO</field>
|
||||
</record>
|
||||
<record id="category_gembg_dg" model="hr.salary.rule.category">
|
||||
<field name="name">GemBG Arbeitgeberanteile</field>
|
||||
<field name="code">GEMBG_DG</field>
|
||||
</record>
|
||||
|
||||
<!-- ============================================================ -->
|
||||
<!-- Work-Entry-Types für GemBG-Komponenten -->
|
||||
<!-- ============================================================ -->
|
||||
<record id="work_entry_type_ueberstunden_tag" model="hr.work.entry.type">
|
||||
<field name="name">Überstunden (tagsüber, § 76 GemBG)</field>
|
||||
<field name="code">GEMBG_UEB_TAG</field>
|
||||
<field name="round_days">NO</field>
|
||||
<field name="round_days_type">DOWN</field>
|
||||
<field name="is_paid" eval="True"/>
|
||||
</record>
|
||||
<record id="work_entry_type_ueberstunden_nacht" model="hr.work.entry.type">
|
||||
<field name="name">Überstunden (Nachtzeit 22-6 Uhr, § 76 GemBG)</field>
|
||||
<field name="code">GEMBG_UEB_NACHT</field>
|
||||
<field name="round_days">NO</field>
|
||||
<field name="round_days_type">DOWN</field>
|
||||
<field name="is_paid" eval="True"/>
|
||||
</record>
|
||||
<record id="work_entry_type_mehrdienst" model="hr.work.entry.type">
|
||||
<field name="name">Mehrdienstleistung (§ 76 GemBG)</field>
|
||||
<field name="code">GEMBG_MEHR</field>
|
||||
<field name="round_days">NO</field>
|
||||
<field name="round_days_type">DOWN</field>
|
||||
<field name="is_paid" eval="True"/>
|
||||
</record>
|
||||
<record id="work_entry_type_journaldienst" model="hr.work.entry.type">
|
||||
<field name="name">Journaldienst (§ 79 GemBG)</field>
|
||||
<field name="code">GEMBG_JOURNAL</field>
|
||||
<field name="round_days">NO</field>
|
||||
<field name="round_days_type">DOWN</field>
|
||||
<field name="is_paid" eval="True"/>
|
||||
</record>
|
||||
<record id="work_entry_type_bereitschaft" model="hr.work.entry.type">
|
||||
<field name="name">Bereitschaftsdienst (§ 80 GemBG)</field>
|
||||
<field name="code">GEMBG_BEREIT</field>
|
||||
<field name="round_days">NO</field>
|
||||
<field name="round_days_type">DOWN</field>
|
||||
<field name="is_paid" eval="True"/>
|
||||
</record>
|
||||
<record id="work_entry_type_sonn_feiertag" model="hr.work.entry.type">
|
||||
<field name="name">Sonn-/Feiertagsdienst (§ 78 GemBG)</field>
|
||||
<field name="code">GEMBG_SONNFEI</field>
|
||||
<field name="round_days">NO</field>
|
||||
<field name="round_days_type">DOWN</field>
|
||||
<field name="is_paid" eval="True"/>
|
||||
</record>
|
||||
|
||||
<!-- ============================================================ -->
|
||||
<!-- Input-Types für manuelle Zulagen -->
|
||||
<!-- ============================================================ -->
|
||||
<record id="input_type_funktionszulage" model="hr.payslip.input.type">
|
||||
<field name="name">Funktionszulage Überschreibung (§ 62)</field>
|
||||
<field name="code">FUZU_INPUT</field>
|
||||
</record>
|
||||
<record id="input_type_erschwerniszulage" model="hr.payslip.input.type">
|
||||
<field name="name">Erschwerniszulage (§ 83 GemBG)</field>
|
||||
<field name="code">ERZU_INPUT</field>
|
||||
</record>
|
||||
<record id="input_type_fahrtkosten" model="hr.payslip.input.type">
|
||||
<field name="name">Fahrtkostenzuschuss (§ 88 GemBG)</field>
|
||||
<field name="code">FKZ_INPUT</field>
|
||||
</record>
|
||||
<record id="input_type_jubilaeum" model="hr.payslip.input.type">
|
||||
<field name="name">Jubiläumszuwendung (§ 89 GemBG)</field>
|
||||
<field name="code">JUB_INPUT</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user