[IMP] l10n_at_hr_payroll: GP9 Company-Stammdaten-UI, Multi-Company-Record-Rules (AP9)

Company-Stammdaten-UI (views/company_views.xml): res.company-Formular-Inherit mit Reiter "Lohnverrechnung (AT)" — BKNR (10-stellig, Pflicht für alle Meldewesen-Läufe), Lohnsteuernummer (9-stellig), Bundesland (DZ-Satz), WKO-Mitglied (DZ-Pflicht), WF-Wien. Sichtbar nur mit hr_payroll.group_hr_payroll_user.

Multi-Company-Record-Rules (security/security_rules.xml): ir.rule-Records für l10n.at.payroll.l16, .l16.line, .kind, .frist — jede:r Payroll-User sieht nur die Daten der Companies, auf die sie/er Zugriff hat (company_ids aus ir.rule-Standard-Mechanik; Muster: hr_payroll-Engine).

19.0.5.1.0. 100/100 grün (Wegwerf-DB).
This commit is contained in:
2026-09-12 20:43:44 +02:00
parent 2f55bfb21a
commit 447a880063
3 changed files with 84 additions and 1 deletions
+3 -1
View File
@@ -1,7 +1,7 @@
# Part of the odoo-at-payroll project. License: LGPL-3.
{
'name': 'Österreich - Personalverrechnung Kern (AT Payroll Core)',
'version': '19.0.5.0.0',
'version': '19.0.5.1.0',
'author': 'ixsol',
'website': 'https://gem360.at',
'category': 'Human Resources/Payroll',
@@ -68,12 +68,14 @@ Kein VRV-Bezug: die Gemeinde-Buchhaltung (Anlage 3b, Ansatz/MVAG) läuft
'depends': ['hr_payroll'],
'data': [
'security/ir.model.access.csv',
'security/security_rules.xml',
'data/rule_parameters_2026.xml',
'data/rule_parameters_lst_2026.xml',
'data/rule_parameters_sv_2026.xml',
'data/rule_parameters_2027.xml',
'data/tasy_mapping.xml',
'views/tasy_views.xml',
'views/company_views.xml',
'views/meldewesen_views.xml',
'views/fristen_views.xml',
'report/belege_reports.xml',
@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- ============================================================ -->
<!-- GP9/AP9: Multi-Company-Record-Rules für alle AT-Payroll- -->
<!-- Datenmodelle (Muster: hr_payroll-Engine). Jede:r Payroll- -->
--> User sieht nur die Daten der Companies, auf die sie/er Zugriff
<!-- hat (company_ids aus ir.rule-Standard-Mechanik). -->
<!-- ============================================================ -->
<!-- Lohnzettel Finanz (L16) + Zeilen -->
<record id="rule_l16_company" model="ir.rule">
<field name="name">L16: eigene Company</field>
<field name="model_id" ref="model_l10n_at_payroll_l16"/>
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
<field name="groups"
eval="[(4, ref('hr_payroll.group_hr_payroll_user'))]"/>
</record>
<record id="rule_l16_line_company" model="ir.rule">
<field name="name">L16-Zeile: eigene Company</field>
<field name="model_id" ref="model_l10n_at_payroll_l16_line"/>
<field name="domain_force">[('l16_id.company_id', 'in', company_ids)]</field>
<field name="groups"
eval="[(4, ref('hr_payroll.group_hr_payroll_user'))]"/>
</record>
<!-- Kind (FB+-Wartung) -->
<record id="rule_kind_company" model="ir.rule">
<field name="name">Kind: eigene Company</field>
<field name="model_id" ref="model_l10n_at_payroll_kind"/>
<field name="domain_force">[('employee_id.company_id', 'in', company_ids)]</field>
<field name="groups"
eval="[(4, ref('hr_payroll.group_hr_payroll_user'))]"/>
</record>
<!-- Fristenkalender -->
<record id="rule_frist_company" model="ir.rule">
<field name="name">Frist: eigene Company</field>
<field name="model_id" ref="model_l10n_at_payroll_frist"/>
<field name="domain_force">[('company_id', 'in', company_ids)]</field>
<field name="groups"
eval="[(4, ref('hr_payroll.group_hr_payroll_user'))]"/>
</record>
</odoo>
@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- ============================================================ -->
<!-- GP9/AP9: Company-Stammdaten-UI für die AT-Lohnverrechnung. -->
<!-- BKNR und Lohnsteuernummer sind Pflicht für alle Meldewesen- -->
<!-- Läufe (L16, mBGM, Versichertenmeldung); Bundesland und Flags -->
<!-- steuern die Beitragssätze (DZ-Satz je BL, WF-Wien, NSchAB). -->
<!-- ============================================================ -->
<record id="res_company_view_form_l10n_at" model="ir.ui.view">
<field name="name">res.company.form.l10n.at</field>
<field name="model">res.company</field>
<field name="inherit_id" ref="base.view_company_form"/>
<field name="arch" type="xml">
<xpath expr="//notebook" position="inside">
<page string="Lohnverrechnung (AT)"
name="l10n_at_payroll"
groups="hr_payroll.group_hr_payroll_user">
<group>
<group string="Meldewesen (ELDA/eSV)"
name="l10n_at_meldewesen">
<field name="l10n_at_beitragskontonummer"
placeholder="z. B. 1412345678"/>
<field name="l10n_at_lohnsteuernummer"
placeholder="9-stellig (2 FA + 7 StNr)"/>
</group>
<group string="Beitragssätze &amp; Abgaben"
name="l10n_at_abgaben">
<field name="l10n_at_bundesland"/>
<field name="l10n_at_wk_mitglied"/>
<field name="l10n_at_wf_wien"/>
</group>
</group>
</page>
</xpath>
</field>
</record>
</odoo>