[ADD] l10n_at_hr_payroll_private: KV framework (GP1)

GP1 of the approved General-AT implementation plan: the KV
framework for the Austrian private economy on the Odoo 19
hr_payroll engine.

- l10n.at.payroll.kv: collective agreement master data with chamber,
  union, validity date and a trace link to the KV library
  (personalverrechnung/quellen/kv/)
- l10n.at.payroll.kv.wert: versioned KV parameters following the
  hr.rule.parameter.value pattern (Python literal, unique per
  KV/code/date); consumed via employee.kv_id._wert(code, date)
- l10n.at.payroll.kv.gruppe / .stufe: Verwendungsgruppen with
  Erfahrungsstufen year tables, unique(gruppe, stufe, gueltig_ab),
  Stichtag lookup
- hr.version / hr.employee contract fields: kv_id, kv_gruppe_id,
  erfahrungsstufe, ueberzahlung
- import wizard for KV intake and yearly updates: table paste
  (Gruppe;Stufe;Gehalt[;Bezeichnung]), preview, >10% jump warning
  (warn lines never applied automatically), new gueltig_ab versions,
  historical values untouched
- seed D2 (SI-2203 Handwerk und Gewerbe, SI-2748 Metallgewerbe):
  wage tables from 1. 1. 2026 curated from the KV library texts -
  18 groups, 131 stage values, 27 parameters, including the special
  progression groups IV-M / V-OM (SI-2748) and the discontinued
  VG I (SI-2203)
- tests: test_kv_katalog (seed lookups, Stichtag behaviour,
  versioning, parameters, wizard, contract fields)

Statically validated (py_compile, XML well-formedness, CSV
consistency, wizard logic simulation); runtime acceptance pending
PostgreSQL on the dev host.
This commit is contained in:
2026-09-09 22:10:26 +02:00
parent 6e444b088a
commit 67374611c6
16 changed files with 1274 additions and 12 deletions
@@ -0,0 +1,11 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_l10n_at_payroll_kv_user,L10n AT Payroll KV User,model_l10n_at_payroll_kv,hr_payroll.group_hr_payroll_user,1,0,0,0
access_l10n_at_payroll_kv_manager,L10n AT Payroll KV Manager,model_l10n_at_payroll_kv,hr_payroll.group_hr_payroll_manager,1,1,1,1
access_l10n_at_payroll_kv_wert_user,L10n AT Payroll KV-Wert User,model_l10n_at_payroll_kv_wert,hr_payroll.group_hr_payroll_user,1,0,0,0
access_l10n_at_payroll_kv_wert_manager,L10n AT Payroll KV-Wert Manager,model_l10n_at_payroll_kv_wert,hr_payroll.group_hr_payroll_manager,1,1,1,1
access_l10n_at_payroll_kv_gruppe_user,L10n AT Payroll KV-Gruppe User,model_l10n_at_payroll_kv_gruppe,hr_payroll.group_hr_payroll_user,1,0,0,0
access_l10n_at_payroll_kv_gruppe_manager,L10n AT Payroll KV-Gruppe Manager,model_l10n_at_payroll_kv_gruppe,hr_payroll.group_hr_payroll_manager,1,1,1,1
access_l10n_at_payroll_kv_gruppe_stufe_user,L10n AT Payroll KV-Gruppe-Stufe User,model_l10n_at_payroll_kv_gruppe_stufe,hr_payroll.group_hr_payroll_user,1,0,0,0
access_l10n_at_payroll_kv_gruppe_stufe_manager,L10n AT Payroll KV-Gruppe-Stufe Manager,model_l10n_at_payroll_kv_gruppe_stufe,hr_payroll.group_hr_payroll_manager,1,1,1,1
access_l10n_at_payroll_kv_import_wizard,L10n AT Payroll KV-Import Wizard,model_l10n_at_payroll_kv_import_wizard,hr_payroll.group_hr_payroll_user,1,1,1,1
access_l10n_at_payroll_kv_import_line,L10n AT Payroll KV-Import Line,model_l10n_at_payroll_kv_import_line,hr_payroll.group_hr_payroll_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_l10n_at_payroll_kv_user L10n AT Payroll KV User model_l10n_at_payroll_kv hr_payroll.group_hr_payroll_user 1 0 0 0
3 access_l10n_at_payroll_kv_manager L10n AT Payroll KV Manager model_l10n_at_payroll_kv hr_payroll.group_hr_payroll_manager 1 1 1 1
4 access_l10n_at_payroll_kv_wert_user L10n AT Payroll KV-Wert User model_l10n_at_payroll_kv_wert hr_payroll.group_hr_payroll_user 1 0 0 0
5 access_l10n_at_payroll_kv_wert_manager L10n AT Payroll KV-Wert Manager model_l10n_at_payroll_kv_wert hr_payroll.group_hr_payroll_manager 1 1 1 1
6 access_l10n_at_payroll_kv_gruppe_user L10n AT Payroll KV-Gruppe User model_l10n_at_payroll_kv_gruppe hr_payroll.group_hr_payroll_user 1 0 0 0
7 access_l10n_at_payroll_kv_gruppe_manager L10n AT Payroll KV-Gruppe Manager model_l10n_at_payroll_kv_gruppe hr_payroll.group_hr_payroll_manager 1 1 1 1
8 access_l10n_at_payroll_kv_gruppe_stufe_user L10n AT Payroll KV-Gruppe-Stufe User model_l10n_at_payroll_kv_gruppe_stufe hr_payroll.group_hr_payroll_user 1 0 0 0
9 access_l10n_at_payroll_kv_gruppe_stufe_manager L10n AT Payroll KV-Gruppe-Stufe Manager model_l10n_at_payroll_kv_gruppe_stufe hr_payroll.group_hr_payroll_manager 1 1 1 1
10 access_l10n_at_payroll_kv_import_wizard L10n AT Payroll KV-Import Wizard model_l10n_at_payroll_kv_import_wizard hr_payroll.group_hr_payroll_user 1 1 1 1
11 access_l10n_at_payroll_kv_import_line L10n AT Payroll KV-Import Line model_l10n_at_payroll_kv_import_line hr_payroll.group_hr_payroll_user 1 1 1 1