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 AP1 pay scale model (GemBG Bgld.)
Katalogmodell nach Implementierungsplan AP1 (freigegeben 2026-09-09): - ``gemeinde.payroll.entlohnungsgruppe`` (Code, Schema, §, Bundesland, Vorrückungszeitraum je Gruppe; § 66 Abs 2 GemBG: 4 Jahre, abweichend 2 Jahre für Betreuungspersonen-/Sondergruppen) und ``gemeinde.payroll.entlohnungsstufe`` (Stufe, Monatsentgelt, Stichtag, unique je Gruppe/Stufe/Stichtag) mit Stichtags-Lookup-Helfern. - Seed 2026: 35 Entlohnungsgruppen, 433 Werte (Schemata I/gv, II/gh, Ia/bv, IIa/bh, kb, av sowie §-Gruppen 150c/151/151c), Werte aus der konsolidierten GemBG-Fassung 09.09.2026 (Wert 1.7.2026 gemäß Artikel 4 RV 0715/XXIII. GP; 2025er-Stichtagsannahme für nicht 2026 angepasste Tabellen als AP0-Verifikationspunkt dokumentiert). Generator mit Herkunftsnachweis: personalverrechnung/tools/extract_gembg_katalog.py. - GemBG-Felder auf der Payroll-Version (hr.version) plus Employee-Spiegel nach dem Engine-Muster (related/inherited): Entlohnungsgruppe, Stufe, Besoldungsdienstalter, Vorrückungstermin — berechnet nach § 66 Abs 2 (erster Tag des Monats nach Vollendung weiterer n Jahre BDA), manuell überschreibbar für Überleitungsfälle (§§ 157a ff). - Vorrückungs-Wizard (§ 66 Abs 2): fällige Versionen zum Stichtag, Stufenerhöhung mit Höchststufen-Schutz und Ergebnis-Notification — bewusst kein stilles Mutieren im Lohnlauf (Dokumentationspflicht). - Views/Menüs (Personalverrechnung Bgld. unter Payroll), Security auf hr_payroll-Gruppen, Employee-Form-Anbindung in payroll_group. - Tests (Rechenfälle AP1): Seed-Werte inkl. Quellenanomalie kb1a/6, Stichtags-Lookup, Jahresversionierung, Vorrückungstermin (BDA 15.03.2020 -> 1.4.2028), Wizard-Anwendung mit Höchststufen-Skip. Statische Validierung grün (py_compile, XML, Manifest, CSV-Integrität); Runtime-Testlauf auf dem Dev-Host (gem360_dev) ausständig, wie im Implementierungsplan M2 vorgesehen.
This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="entlohnungsgruppe_list_view" model="ir.ui.view">
|
||||
<field name="name">gemeinde.payroll.entlohnungsgruppe.list</field>
|
||||
<field name="model">gemeinde.payroll.entlohnungsgruppe</field>
|
||||
<field name="arch" type="xml">
|
||||
<list string="Entlohnungsgruppen">
|
||||
<field name="code"/>
|
||||
<field name="schema"/>
|
||||
<field name="paragraph"/>
|
||||
<field name="vorrueckungszeitraum_jahre"/>
|
||||
<field name="bundesland" column_invisible="1"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="entlohnungsgruppe_form_view" model="ir.ui.view">
|
||||
<field name="name">gemeinde.payroll.entlohnungsgruppe.form</field>
|
||||
<field name="model">gemeinde.payroll.entlohnungsgruppe</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Entlohnungsgruppe">
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="schema"/>
|
||||
<field name="paragraph"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="bundesland"/>
|
||||
<field name="vorrueckungszeitraum_jahre"/>
|
||||
<field name="active" widget="boolean_toggle"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Entlohnungsstufen" name="stufen">
|
||||
<field name="entlohnungsstufe_ids">
|
||||
<list editable="bottom">
|
||||
<field name="stufe"/>
|
||||
<field name="monatsentgelt"/>
|
||||
<field name="gueltig_ab"/>
|
||||
</list>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="entlohnungsstufe_list_view" model="ir.ui.view">
|
||||
<field name="name">gemeinde.payroll.entlohnungsstufe.list</field>
|
||||
<field name="model">gemeinde.payroll.entlohnungsstufe</field>
|
||||
<field name="arch" type="xml">
|
||||
<list string="Entlohnungsstufen" multi_edit="1">
|
||||
<field name="entlohnungsgruppe_id"/>
|
||||
<field name="stufe"/>
|
||||
<field name="monatsentgelt" sum="Summe"/>
|
||||
<field name="gueltig_ab"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_entlohnungsgruppe" model="ir.actions.act_window">
|
||||
<field name="name">Entlohnungsgruppen (GemBG)</field>
|
||||
<field name="res_model">gemeinde.payroll.entlohnungsgruppe</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
</record>
|
||||
|
||||
<record id="action_entlohnungsstufe" model="ir.actions.act_window">
|
||||
<field name="name">Entlohnungsstufen (GemBG)</field>
|
||||
<field name="res_model">gemeinde.payroll.entlohnungsstufe</field>
|
||||
<field name="view_mode">list</field>
|
||||
<field name="context">{'search_default_groupby_entlohnungsgruppe_id': 1}</field>
|
||||
</record>
|
||||
|
||||
<record id="vorrueckung_wizard_form_view" model="ir.ui.view">
|
||||
<field name="name">gemeinde.payroll.vorrueckung.wizard.form</field>
|
||||
<field name="model">gemeinde.payroll.vorrueckung.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Vorrückungen anwenden">
|
||||
<group>
|
||||
<field name="stichtag"/>
|
||||
</group>
|
||||
<field name="anzahl" invisible="1"/>
|
||||
<field name="version_ids">
|
||||
<list create="0" delete="0">
|
||||
<field name="employee_id"/>
|
||||
<field name="entlohnungsgruppe_id"/>
|
||||
<field name="entlohnungsstufe"/>
|
||||
<field name="besoldungsdienstalter"/>
|
||||
<field name="vorrueckungstermin"/>
|
||||
</list>
|
||||
</field>
|
||||
<footer>
|
||||
<button string="Vorrückungen anwenden" name="action_apply"
|
||||
type="object" class="btn-primary"/>
|
||||
<button string="Abbrechen" class="btn-secondary"
|
||||
special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_vorrueckung_wizard" model="ir.actions.act_window">
|
||||
<field name="name">Vorrückungen anwenden (§ 66 Abs 2)</field>
|
||||
<field name="res_model">gemeinde.payroll.vorrueckung.wizard</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_gemeinde_payroll_root"
|
||||
name="Personalverrechnung (Bgld.)"
|
||||
parent="hr_work_entry_enterprise.menu_hr_payroll_root"
|
||||
sequence="90"/>
|
||||
|
||||
<menuitem id="menu_gemeinde_payroll_gruppen"
|
||||
name="Entlohnungsgruppen"
|
||||
parent="menu_gemeinde_payroll_root"
|
||||
action="action_entlohnungsgruppe" sequence="10"/>
|
||||
|
||||
<menuitem id="menu_gemeinde_payroll_stufen"
|
||||
name="Entlohnungsstufen"
|
||||
parent="menu_gemeinde_payroll_root"
|
||||
action="action_entlohnungsstufe" sequence="20"/>
|
||||
|
||||
<menuitem id="menu_gemeinde_payroll_vorrueckung"
|
||||
name="Vorrückungen anwenden"
|
||||
parent="menu_gemeinde_payroll_root"
|
||||
action="action_vorrueckung_wizard" sequence="30"/>
|
||||
</odoo>
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="payroll_hr_employee_view_form_gembg" model="ir.ui.view">
|
||||
<field name="name">hr.employee.form.gembg</field>
|
||||
<field name="model">hr.employee</field>
|
||||
<field name="inherit_id" ref="hr_payroll.payroll_hr_employee_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<group name="payroll_group" position="inside">
|
||||
<group name="gembg_besoldung" string="Bgld. GemBG"
|
||||
groups="hr_payroll.group_hr_payroll_user">
|
||||
<field name="entlohnungsgruppe_id"/>
|
||||
<field name="entlohnungsstufe" invisible="not entlohnungsgruppe_id"/>
|
||||
<field name="besoldungsdienstalter" invisible="not entlohnungsgruppe_id"/>
|
||||
<field name="vorrueckungstermin" invisible="not entlohnungsgruppe_id"/>
|
||||
</group>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user