mirror of
http://100.103.83.12:3003/fegger/odoo-at-payroll.git
synced 2026-09-17 08:52:45 +00:00
[MOV] l10n_at_gemeinde_payroll: extract SV/TASY core into l10n_at_hr_payroll
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# Part of the gem360 onboarding. See LICENSE / project docs for details.
|
||||
# Part of the odoo-at-payroll project. License: LGPL-3.
|
||||
{
|
||||
'name': 'Österreich - Gemeinde-Personalverrechnung (Bgld. GemBG)',
|
||||
'version': '19.0.1.3.0',
|
||||
'version': '19.0.1.4.0',
|
||||
'author': 'ixsol / gem360',
|
||||
'website': 'https://gem360.at',
|
||||
'category': 'Human Resources/Payroll',
|
||||
@@ -11,54 +11,47 @@ Gemeinde-Personalverrechnung für österreichische Gemeinden
|
||||
|
||||
Monatsverrechnung für Bedienstete burgenländischer Gemeinden auf der
|
||||
Odoo-19 ``hr_payroll``-Engine gemäß **Burgenländischem
|
||||
Gemeindebedienstetengesetz 2014** (LGBl. Nr. 42/2014):
|
||||
Gemeindebedienstetengesetz 2014** (LGBl. Nr. 42/2014).
|
||||
|
||||
- privatrechtliche Dienstverhältnisse (keine Beamten, kein
|
||||
Kollektivvertrag) — Entlohnungsgruppen/-stufen, Besoldungsdienstalter
|
||||
Der sektor-neutrale Bundes-Kern (SV-Werte, später Lohnsteuer und
|
||||
Meldewesen) liegt im Modul ``l10n_at_hr_payroll`` und wird hier
|
||||
konsumiert. Dieses Modul enthält die GemBG-Fachlogik:
|
||||
|
||||
- **AP1 Katalogmodell:** Entlohnungsgruppen/-stufen, Besoldungsdienstalter
|
||||
und Vorrückungen nach dem IVa. Hauptstück (§§ 132 ff, ab 1. 1. 2021),
|
||||
Werte aus den jährlichen Bgld. Bezügeanpassungs-Sammelgesetzen;
|
||||
- quartalsweise Sonderzahlung (50 % je Kalendervierteljahr), Zulagen
|
||||
(u. a. Kinderzulage, Funktions-, Erschwernis-, Journaldienst-),
|
||||
Über-/Mehrdienstleistung, Jubiläumszuwendung, Teilzeit;
|
||||
- Lohnsteuer (§ 33/§ 68 EStG), SV-Beiträge und öffentlicher
|
||||
FLAF-Dienstgeberbeitrag (ASVG), Geringfügigkeit;
|
||||
- Melde-Dateien L16 (FinanzOnline) und eSV/ELDA-XML (Übertragung beim
|
||||
Kunden/Steuerberater);
|
||||
- FI-Buchung auf den VRV-2015-Kontenplan (Anlage 3b) mit Ansatz-/MVAG-
|
||||
Attribution über ``l10n_at_vrv2015``.
|
||||
Werte aus den jährlichen Bgld. Bezügeanpassungs-Sammelgesetzen (Seed
|
||||
2026: 35 Gruppen, 433 Werte), Vorrückungs-Wizard (§ 66 Abs 2);
|
||||
- **AP2 Entgelt-Engine:** Structure „Gemeindebedienstete (Bgld. GemBG
|
||||
2014)" mit Regeln für Monatsentgelt (inkl. Ausbildungsphase/Teilzeit),
|
||||
Kinderzulage (§ 61, bei Teilzeit ungekürzt), Funktionszulage (§ 62),
|
||||
Über-/Mehrdienstleistung (§ 76, Tag/Nacht), Journaldienst (§ 79),
|
||||
Sonn-/Feiertag (§ 78), Bereitschaft (§ 80), Erschwernis (§ 83),
|
||||
Jubiläum (§ 89), Fahrtkosten (§ 88), quartalsweise Sonderzahlung
|
||||
(§ 133n) und Netto-Summe.
|
||||
|
||||
Lohnsteuer (AP3), SV-Abzüge/DG-Beiträge als Regeln (AP4), Meldewesen
|
||||
(AP5), Belege (AP6) folgen dem freigegebenen Implementierungsplan; die
|
||||
FI-Buchung auf den VRV-2015-Kontenplan (Anlage 3b) mit Ansatz-/MVAG-
|
||||
Attribution läuft über die Brücke ``l10n_at_gemeinde_payroll_vrv`` im
|
||||
gem360-Repo (AP7).
|
||||
|
||||
Mehr-Bundesland-Architektur: Landes-Kataloge und landesspezifische
|
||||
Regeln sind von Anfang an getrennt (Burgenland zuerst).
|
||||
|
||||
**Status:** AP1 (Katalogmodell) und SV-Wertelayer (AP4-Basis, TASY) implementiert:
|
||||
Entlohnungsgruppen/-stufen mit Jahresversionierung aus den Bezüge-
|
||||
anpassungs-Tabellen (Seed 2026: 35 Gruppen, 433 Werte), GemBG-Felder auf
|
||||
der Payroll-Version (Entlohnungsgruppe, Stufe, Besoldungsdienstalter,
|
||||
Vorrückungstermin nach § 66 Abs 2) mit Vorrückungs-Wizard; SV-Werte 2026
|
||||
als ``hr.rule.parameter``-Seed (aus ÖGK TASY-LSWH-Export generiert und
|
||||
gegen den offiziellen SV-Werte-Report gespiegelt) inkl. deklarativer
|
||||
TASY-Mapping-Tabelle und Import-Wizard (Preview, Sprungwarnung,
|
||||
explizite Bestätigung, versionierte Werte). Strukturen, Regeln,
|
||||
Meldewesen und VRV-Buchung folgen dem freigegebenen Implementierungsplan —
|
||||
Grundlagen: ``personalverrechnung/PLAN-payroll-bgld.md``,
|
||||
``personalverrechnung/RECHTSQUELLEN-Bgld.md``,
|
||||
``personalverrechnung/IMPLEMENTIERUNGSPLAN-Bgld.md``,
|
||||
``personalverrechnung/PLAN-TASY-SV-Import.md`` und der
|
||||
``payroll``-Agent-Skill.
|
||||
Grundlagen: ``personalverrechnung/`` (PLAN-payroll-bgld.md,
|
||||
RECHTSQUELLEN-Bgld.md, IMPLEMENTIERUNGSPLAN-Bgld.md,
|
||||
PLAN-repo-split.md) und der ``payroll``-Agent-Skill.
|
||||
""",
|
||||
'depends': ['hr_payroll', 'hr_payroll_account', 'l10n_at_vrv2015'],
|
||||
'depends': ['l10n_at_hr_payroll', 'hr_payroll', 'hr_payroll_account'],
|
||||
'data': [
|
||||
'security/ir.model.access.csv',
|
||||
'data/gemeinde.payroll.entlohnungsgruppe.csv',
|
||||
'data/gemeinde.payroll.entlohnungsstufe.csv',
|
||||
'data/rule_parameters_2026.xml',
|
||||
'data/rule_parameters_entgelt.xml',
|
||||
'data/tasy_mapping.xml',
|
||||
'data/payroll_structure_bgld.xml',
|
||||
'data/salary_rules_bgld_entgelt.xml',
|
||||
'views/entlohnung_views.xml',
|
||||
'views/hr_version_bgld_views.xml',
|
||||
'views/tasy_views.xml',
|
||||
],
|
||||
'countries': ['at'],
|
||||
'license': 'LGPL-3',
|
||||
|
||||
@@ -2,4 +2,3 @@
|
||||
from . import entlohnung
|
||||
from . import hr_version_bgld
|
||||
from . import hr_version_entgelt
|
||||
from . import tasy
|
||||
@@ -3,7 +3,3 @@ access_gemeinde_payroll_entlohnungsgruppe_user,Gemeinde Payroll Entlohnungsgrupp
|
||||
access_gemeinde_payroll_entlohnungsgruppe_manager,Gemeinde Payroll Entlohnungsgruppe Manager,model_gemeinde_payroll_entlohnungsgruppe,hr_payroll.group_hr_payroll_manager,1,1,1,1
|
||||
access_gemeinde_payroll_entlohnungsstufe_user,Gemeinde Payroll Entlohnungsstufe User,model_gemeinde_payroll_entlohnungsstufe,hr_payroll.group_hr_payroll_user,1,0,0,0
|
||||
access_gemeinde_payroll_entlohnungsstufe_manager,Gemeinde Payroll Entlohnungsstufe Manager,model_gemeinde_payroll_entlohnungsstufe,hr_payroll.group_hr_payroll_manager,1,1,1,1
|
||||
access_gemeinde_payroll_tasy_mapping_user,Gemeinde Payroll TASY-Mapping User,model_gemeinde_payroll_tasy_mapping,hr_payroll.group_hr_payroll_user,1,0,0,0
|
||||
access_gemeinde_payroll_tasy_mapping_manager,Gemeinde Payroll TASY-Mapping Manager,model_gemeinde_payroll_tasy_mapping,hr_payroll.group_hr_payroll_manager,1,1,1,1
|
||||
access_gemeinde_payroll_tasy_import_wizard,Gemeinde Payroll TASY-Import Wizard,model_gemeinde_payroll_tasy_import_wizard,hr_payroll.group_hr_payroll_user,1,1,1,1
|
||||
access_gemeinde_payroll_tasy_import_line,Gemeinde Payroll TASY-Import Line,model_gemeinde_payroll_tasy_import_line,hr_payroll.group_hr_payroll_user,1,1,1,1
|
||||
|
@@ -1,4 +1,3 @@
|
||||
# Part of the gem360 onboarding. See LICENSE / project docs for details.
|
||||
from . import test_katalog
|
||||
from . import test_tasy_import
|
||||
from . import test_entgelt
|
||||
@@ -0,0 +1,2 @@
|
||||
# Part of the odoo-at-payroll project. License: LGPL-3.
|
||||
from . import models
|
||||
@@ -0,0 +1,41 @@
|
||||
# Part of the odoo-at-payroll project. License: LGPL-3.
|
||||
{
|
||||
'name': 'Österreich - Personalverrechnung Kern (AT Payroll Core)',
|
||||
'version': '19.0.1.0.0',
|
||||
'author': 'ixsol',
|
||||
'website': 'https://gem360.at',
|
||||
'category': 'Human Resources/Payroll',
|
||||
'description': """
|
||||
Österreichischer Personalverrechnungs-Kern
|
||||
==========================================
|
||||
|
||||
Sektor-neutraler Bundes-Kern der österreichischen Personalverrechnung
|
||||
auf der Odoo-19 ``hr_payroll``-Engine. Wird konsumiert von
|
||||
``l10n_at_gemeinde_payroll`` (Bgld. GemBG) und später vom General-AT-
|
||||
Produkt (``l10n_at_hr_payroll_private``). Grundlagen: ``personalverrechnung/``
|
||||
(PLAN-payroll-bgld.md, RECHTSQUELLEN-Bgld.md, PLAN-repo-split.md).
|
||||
|
||||
- SV-Werte 2026 als ``hr.rule.parameter``-Seed (aus ÖGK TASY-LSWH-Export
|
||||
generiert und gegen den offiziellen SV-Werte-Report gespiegelt):
|
||||
KV/PV/UV/AV/AK/WF/BV/IESG-Beitragssätze, Geringfügigkeitsgrenze,
|
||||
Höchstbeitragsgrundlagen (monatlich/SZ), AV-Staffel § 2a AMPFG;
|
||||
- deklarative TASY-Mapping-Tabelle und Import-Wizard (Preview,
|
||||
Sprungwarnung > 10 %, explizite Bestätigung, versionierte Werte);
|
||||
- folgen nach Freigabe der Bgld.-APs: Lohnsteuer (§ 33/§ 68 EStG, AP3),
|
||||
Meldewesen (L16/FinanzOnline, eSV/ELDA, AP5), Belege (AP6).
|
||||
|
||||
Kein VRV-Bezug: die Gemeinde-Buchhaltung (Anlage 3b, Ansatz/MVAG) läuft
|
||||
über die Brücke ``l10n_at_gemeinde_payroll_vrv`` im gem360-Repo (AP7).
|
||||
""",
|
||||
'depends': ['hr_payroll'],
|
||||
'data': [
|
||||
'security/ir.model.access.csv',
|
||||
'data/rule_parameters_2026.xml',
|
||||
'data/tasy_mapping.xml',
|
||||
'views/tasy_views.xml',
|
||||
],
|
||||
'countries': ['at'],
|
||||
'license': 'LGPL-3',
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
}
|
||||
+11
-11
@@ -1,21 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<!-- Beitragsbemessungsbeträge (Cent-Werte, TASY-LSWH) -->
|
||||
<record id="tasy_mapping_gfg" model="gemeinde.payroll.tasy.mapping">
|
||||
<record id="tasy_mapping_gfg" model="l10n.at.payroll.tasy.mapping">
|
||||
<field name="tasy_art">bbb</field>
|
||||
<field name="tasy_code">GFGBTG</field>
|
||||
<field name="parameter_code">at_sv_gfg_monatlich</field>
|
||||
<field name="cent_werte" eval="True"/>
|
||||
<field name="faktor">1.0</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_hbg_mon" model="gemeinde.payroll.tasy.mapping">
|
||||
<record id="tasy_mapping_hbg_mon" model="l10n.at.payroll.tasy.mapping">
|
||||
<field name="tasy_art">bbb</field>
|
||||
<field name="tasy_code">HBGALLG</field>
|
||||
<field name="parameter_code">at_sv_hbg_monatlich</field>
|
||||
<field name="cent_werte" eval="True"/>
|
||||
<field name="faktor">30</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_hbg_sz" model="gemeinde.payroll.tasy.mapping">
|
||||
<record id="tasy_mapping_hbg_sz" model="l10n.at.payroll.tasy.mapping">
|
||||
<field name="tasy_art">bbb</field>
|
||||
<field name="tasy_code">HBGSZ</field>
|
||||
<field name="parameter_code">at_sv_hbg_sz_jaehrlich</field>
|
||||
@@ -24,42 +24,42 @@
|
||||
</record>
|
||||
|
||||
<!-- Tarifzweige (Beitragssätze; _dn/_dg wird angehängt) -->
|
||||
<record id="tasy_mapping_kv" model="gemeinde.payroll.tasy.mapping">
|
||||
<record id="tasy_mapping_kv" model="l10n.at.payroll.tasy.mapping">
|
||||
<field name="tasy_art">zweig</field>
|
||||
<field name="tasy_code">KV</field>
|
||||
<field name="parameter_code">at_sv_kv</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_pv" model="gemeinde.payroll.tasy.mapping">
|
||||
<record id="tasy_mapping_pv" model="l10n.at.payroll.tasy.mapping">
|
||||
<field name="tasy_art">zweig</field>
|
||||
<field name="tasy_code">PV</field>
|
||||
<field name="parameter_code">at_sv_pv</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_av" model="gemeinde.payroll.tasy.mapping">
|
||||
<record id="tasy_mapping_av" model="l10n.at.payroll.tasy.mapping">
|
||||
<field name="tasy_art">zweig</field>
|
||||
<field name="tasy_code">AV</field>
|
||||
<field name="parameter_code">at_sv_av</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_uv" model="gemeinde.payroll.tasy.mapping">
|
||||
<record id="tasy_mapping_uv" model="l10n.at.payroll.tasy.mapping">
|
||||
<field name="tasy_art">zweig</field>
|
||||
<field name="tasy_code">UV</field>
|
||||
<field name="parameter_code">at_sv_uv</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_iesg" model="gemeinde.payroll.tasy.mapping">
|
||||
<record id="tasy_mapping_iesg" model="l10n.at.payroll.tasy.mapping">
|
||||
<field name="tasy_art">zweig</field>
|
||||
<field name="tasy_code">IE</field>
|
||||
<field name="parameter_code">at_sv_iesg</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_bv" model="gemeinde.payroll.tasy.mapping">
|
||||
<record id="tasy_mapping_bv" model="l10n.at.payroll.tasy.mapping">
|
||||
<field name="tasy_art">zweig</field>
|
||||
<field name="tasy_code">BV</field>
|
||||
<field name="parameter_code">at_sv_bv</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_ak" model="gemeinde.payroll.tasy.mapping">
|
||||
<record id="tasy_mapping_ak" model="l10n.at.payroll.tasy.mapping">
|
||||
<field name="tasy_art">zweig</field>
|
||||
<field name="tasy_code">AK</field>
|
||||
<field name="parameter_code">at_sv_ak</field>
|
||||
</record>
|
||||
<record id="tasy_mapping_wf" model="gemeinde.payroll.tasy.mapping">
|
||||
<record id="tasy_mapping_wf" model="l10n.at.payroll.tasy.mapping">
|
||||
<field name="tasy_art">zweig</field>
|
||||
<field name="tasy_code">WF</field>
|
||||
<field name="parameter_code">at_sv_wf</field>
|
||||
@@ -0,0 +1,2 @@
|
||||
# Part of the odoo-at-payroll project. License: LGPL-3.
|
||||
from . import tasy
|
||||
+11
-11
@@ -1,11 +1,11 @@
|
||||
# Part of the gem360 onboarding. See LICENSE / project docs for details.
|
||||
# Part of the odoo-at-payroll project. License: LGPL-3.
|
||||
from lxml import etree
|
||||
|
||||
from odoo import _, api, fields, models
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
|
||||
class GemeindePayrollTasyMapping(models.Model):
|
||||
class L10nAtPayrollTasyMapping(models.Model):
|
||||
"""Mapping TASY-Code/-Zweig -> SV-Regelparameter (hr.rule.parameter).
|
||||
|
||||
Hält die Zuordnung deklarativ (data XML), damit der TASY-Import ohne
|
||||
@@ -13,7 +13,7 @@ class GemeindePayrollTasyMapping(models.Model):
|
||||
(z. B. BVAEB) erweiterbar bleibt. Für Tarifzweige wird an den
|
||||
Parameter-Code ``_dn``/``_dg`` angehängt.
|
||||
"""
|
||||
_name = 'gemeinde.payroll.tasy.mapping'
|
||||
_name = 'l10n.at.payroll.tasy.mapping'
|
||||
_description = 'TASY-Mapping (SV-Regelparameter)'
|
||||
_order = 'tasy_art, tasy_code'
|
||||
|
||||
@@ -49,12 +49,12 @@ class GemeindePayrollTasyMapping(models.Model):
|
||||
f" ({art})" if art else mapping.tasy_code)
|
||||
|
||||
|
||||
class GemeindePayrollTasyImportLine(models.TransientModel):
|
||||
_name = 'gemeinde.payroll.tasy.import.line'
|
||||
class L10nAtPayrollTasyImportLine(models.TransientModel):
|
||||
_name = 'l10n.at.payroll.tasy.import.line'
|
||||
_description = 'TASY-Import: Vorschauzeile'
|
||||
|
||||
wizard_id = fields.Many2one(
|
||||
'gemeinde.payroll.tasy.import.wizard', required=True, ondelete='cascade')
|
||||
'l10n.at.payroll.tasy.import.wizard', required=True, ondelete='cascade')
|
||||
parameter_code = fields.Char(required=True)
|
||||
name = fields.Char()
|
||||
alter_wert = fields.Char(string='Alter Wert', readonly=True)
|
||||
@@ -66,7 +66,7 @@ class GemeindePayrollTasyImportLine(models.TransientModel):
|
||||
"Warnzeilen werden nie automatisch übernommen.")
|
||||
|
||||
|
||||
class GemeindePayrollTasyImportWizard(models.TransientModel):
|
||||
class L10nAtPayrollTasyImportWizard(models.TransientModel):
|
||||
"""Lädt einen jährlichen ÖGK TASY-LSWH-Export und schreibt nach
|
||||
expliziter Bestätigung SV-Werte als hr.rule.parameter-Werte
|
||||
(Versionierung über date_from, historische Werte bleiben erhalten).
|
||||
@@ -79,7 +79,7 @@ class GemeindePayrollTasyImportWizard(models.TransientModel):
|
||||
freie-Dienstnehmer-Varianten (nur DN) verlieren. Mehrdeutige
|
||||
Auflösungen erzeugen Warnzeilen ohne automatische Übernahme.
|
||||
"""
|
||||
_name = 'gemeinde.payroll.tasy.import.wizard'
|
||||
_name = 'l10n.at.payroll.tasy.import.wizard'
|
||||
_description = 'SV-Werte aus TASY-LSWH-Export importieren'
|
||||
|
||||
file = fields.Binary(required=True, string='TASY-Export (XML)')
|
||||
@@ -90,7 +90,7 @@ class GemeindePayrollTasyImportWizard(models.TransientModel):
|
||||
default='B002', required=True,
|
||||
help="TASY-Code der Beschäftigtengruppe (B002 = Angestellte).")
|
||||
line_ids = fields.One2many(
|
||||
'gemeinde.payroll.tasy.import.line', 'wizard_id',
|
||||
'l10n.at.payroll.tasy.import.line', 'wizard_id',
|
||||
string='Vorschau')
|
||||
protocol = fields.Text(readonly=True)
|
||||
|
||||
@@ -179,7 +179,7 @@ class GemeindePayrollTasyImportWizard(models.TransientModel):
|
||||
parameter_obj = self.env['hr.rule.parameter']
|
||||
|
||||
bbbwerte = self._parse_bbbwerte(root)
|
||||
for mapping in self.env['gemeinde.payroll.tasy.mapping'].search(
|
||||
for mapping in self.env['l10n.at.payroll.tasy.mapping'].search(
|
||||
[('tasy_art', '=', 'bbb')]):
|
||||
candidates = [w for w in bbbwerte if w['code'] == mapping.tasy_code
|
||||
and w['von'] <= stichtag <= w['bis']]
|
||||
@@ -197,7 +197,7 @@ class GemeindePayrollTasyImportWizard(models.TransientModel):
|
||||
parameter_obj, protocol))
|
||||
|
||||
pairs = self._resolve_zweig_pairs(root, stichtag)
|
||||
for mapping in self.env['gemeinde.payroll.tasy.mapping'].search(
|
||||
for mapping in self.env['l10n.at.payroll.tasy.mapping'].search(
|
||||
[('tasy_art', '=', 'zweig')]):
|
||||
variants = pairs.get(mapping.tasy_code, {})
|
||||
chosen = None
|
||||
@@ -0,0 +1,5 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_l10n_at_payroll_tasy_mapping_user,L10n AT Payroll TASY-Mapping User,model_l10n_at_payroll_tasy_mapping,hr_payroll.group_hr_payroll_user,1,0,0,0
|
||||
access_l10n_at_payroll_tasy_mapping_manager,L10n AT Payroll TASY-Mapping Manager,model_l10n_at_payroll_tasy_mapping,hr_payroll.group_hr_payroll_manager,1,1,1,1
|
||||
access_l10n_at_payroll_tasy_import_wizard,L10n AT Payroll TASY-Import Wizard,model_l10n_at_payroll_tasy_import_wizard,hr_payroll.group_hr_payroll_user,1,1,1,1
|
||||
access_l10n_at_payroll_tasy_import_line,L10n AT Payroll TASY-Import Line,model_l10n_at_payroll_tasy_import_line,hr_payroll.group_hr_payroll_user,1,1,1,1
|
||||
|
@@ -0,0 +1,2 @@
|
||||
# Part of the odoo-at-payroll project. License: LGPL-3.
|
||||
from . import test_tasy_import
|
||||
+5
-5
@@ -1,4 +1,4 @@
|
||||
# Part of the gem360 onboarding. See LICENSE / project docs for details.
|
||||
# Part of the odoo-at-payroll project. License: LGPL-3.
|
||||
import base64
|
||||
from datetime import date
|
||||
|
||||
@@ -126,7 +126,7 @@ class TasyImportTest(TransactionCase):
|
||||
|
||||
def test_02_wizard_parse_fixture(self):
|
||||
"""Fixture: bbb Cent-Werte + Split-Variante gewinnt über freie DN."""
|
||||
wizard = self.env['gemeinde.payroll.tasy.import.wizard'].create({
|
||||
wizard = self.env['l10n.at.payroll.tasy.import.wizard'].create({
|
||||
'file': base64.b64encode(TASY_FIXTURE.encode()).decode(),
|
||||
'filename': 'fixture.xml',
|
||||
})
|
||||
@@ -146,7 +146,7 @@ class TasyImportTest(TransactionCase):
|
||||
|
||||
def test_03_wizard_apply_versions(self):
|
||||
"""Übernehmen schreibt versionierte Werte; Update am Stichtag."""
|
||||
wizard = self.env['gemeinde.payroll.tasy.import.wizard'].create({
|
||||
wizard = self.env['l10n.at.payroll.tasy.import.wizard'].create({
|
||||
'file': base64.b64encode(TASY_FIXTURE.encode()).decode(),
|
||||
'filename': 'fixture.xml',
|
||||
})
|
||||
@@ -158,7 +158,7 @@ class TasyImportTest(TransactionCase):
|
||||
self.assertTrue(value)
|
||||
self.assertEqual(float(value.parameter_value), 551.10)
|
||||
# erneuter Import am selben Stichtag aktualisiert statt zu duplizieren
|
||||
wizard2 = self.env['gemeinde.payroll.tasy.import.wizard'].create({
|
||||
wizard2 = self.env['l10n.at.payroll.tasy.import.wizard'].create({
|
||||
'file': base64.b64encode(TASY_FIXTURE.encode()).decode(),
|
||||
'filename': 'fixture.xml',
|
||||
})
|
||||
@@ -179,7 +179,7 @@ class TasyImportTest(TransactionCase):
|
||||
if not os.path.exists(path):
|
||||
self.skipTest('TASY-Quelldatei nicht im Workingtree')
|
||||
with open(path, 'rb') as fh:
|
||||
wizard = self.env['gemeinde.payroll.tasy.import.wizard'].create({
|
||||
wizard = self.env['l10n.at.payroll.tasy.import.wizard'].create({
|
||||
'file': base64.b64encode(fh.read()).decode(),
|
||||
'filename': 'TASY-LSWH-Export-20260324.xml',
|
||||
})
|
||||
+20
-15
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="tasy_mapping_list_view" model="ir.ui.view">
|
||||
<field name="name">gemeinde.payroll.tasy.mapping.list</field>
|
||||
<field name="model">gemeinde.payroll.tasy.mapping</field>
|
||||
<field name="name">l10n.at.payroll.tasy.mapping.list</field>
|
||||
<field name="model">l10n.at.payroll.tasy.mapping</field>
|
||||
<field name="arch" type="xml">
|
||||
<list string="TASY-Mappings">
|
||||
<field name="tasy_art"/>
|
||||
@@ -16,8 +16,8 @@
|
||||
</record>
|
||||
|
||||
<record id="tasy_mapping_form_view" model="ir.ui.view">
|
||||
<field name="name">gemeinde.payroll.tasy.mapping.form</field>
|
||||
<field name="model">gemeinde.payroll.tasy.mapping</field>
|
||||
<field name="name">l10n.at.payroll.tasy.mapping.form</field>
|
||||
<field name="model">l10n.at.payroll.tasy.mapping</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="TASY-Mapping">
|
||||
<sheet>
|
||||
@@ -40,13 +40,13 @@
|
||||
|
||||
<record id="action_tasy_mapping" model="ir.actions.act_window">
|
||||
<field name="name">TASY-Mappings (SV-Werte)</field>
|
||||
<field name="res_model">gemeinde.payroll.tasy.mapping</field>
|
||||
<field name="res_model">l10n.at.payroll.tasy.mapping</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
</record>
|
||||
|
||||
<record id="tasy_import_wizard_form_view" model="ir.ui.view">
|
||||
<field name="name">gemeinde.payroll.tasy.import.wizard.form</field>
|
||||
<field name="model">gemeinde.payroll.tasy.import.wizard</field>
|
||||
<field name="name">l10n.at.payroll.tasy.import.wizard.form</field>
|
||||
<field name="model">l10n.at.payroll.tasy.import.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="SV-Werte aus TASY-LSWH-Export importieren">
|
||||
<group>
|
||||
@@ -89,18 +89,23 @@
|
||||
|
||||
<record id="action_tasy_import_wizard" model="ir.actions.act_window">
|
||||
<field name="name">SV-Werte importieren (TASY)</field>
|
||||
<field name="res_model">gemeinde.payroll.tasy.import.wizard</field>
|
||||
<field name="res_model">l10n.at.payroll.tasy.import.wizard</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_gemeinde_payroll_tasy_mapping"
|
||||
name="TASY-Mappings (SV-Werte)"
|
||||
parent="menu_gemeinde_payroll_root"
|
||||
action="action_tasy_mapping" sequence="40"/>
|
||||
<menuitem id="menu_l10n_at_payroll_root"
|
||||
name="AT-Payroll (Kern)"
|
||||
parent="hr_work_entry_enterprise.menu_hr_payroll_root"
|
||||
sequence="80"/>
|
||||
|
||||
<menuitem id="menu_gemeinde_payroll_tasy_import"
|
||||
<menuitem id="menu_l10n_at_payroll_tasy_mapping"
|
||||
name="TASY-Mappings (SV-Werte)"
|
||||
parent="menu_l10n_at_payroll_root"
|
||||
action="action_tasy_mapping" sequence="10"/>
|
||||
|
||||
<menuitem id="menu_l10n_at_payroll_tasy_import"
|
||||
name="SV-Werte importieren (TASY)"
|
||||
parent="menu_gemeinde_payroll_root"
|
||||
action="action_tasy_import_wizard" sequence="50"/>
|
||||
parent="menu_l10n_at_payroll_root"
|
||||
action="action_tasy_import_wizard" sequence="20"/>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user