[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,19 @@
id,kv_id:id,code,name,lohn_basis
kv2203_grp_ii,l10n_at_hr_payroll_private.kv_si_2203,II,Verwendungsgruppe II,monatlich
kv2203_grp_iii,l10n_at_hr_payroll_private.kv_si_2203,III,Verwendungsgruppe III,monatlich
kv2203_grp_iv,l10n_at_hr_payroll_private.kv_si_2203,IV,Verwendungsgruppe IV,monatlich
kv2203_grp_v,l10n_at_hr_payroll_private.kv_si_2203,V,Verwendungsgruppe V,monatlich
kv2203_grp_vi,l10n_at_hr_payroll_private.kv_si_2203,VI,Verwendungsgruppe VI,monatlich
kv2203_grp_m1,l10n_at_hr_payroll_private.kv_si_2203,M1,Meistergruppe M I (Hilfsmeister / Betriebsaufseher),monatlich
kv2203_grp_m2,l10n_at_hr_payroll_private.kv_si_2203,M2,Meistergruppe M II (Meister ohne Fachschule),monatlich
kv2203_grp_m2fs,l10n_at_hr_payroll_private.kv_si_2203,M2FS,Meistergruppe M II (Meister mit Fachschule),monatlich
kv2203_grp_m3,l10n_at_hr_payroll_private.kv_si_2203,M3,Meistergruppe M III (Obermeister),monatlich
kv2748_grp_i,l10n_at_hr_payroll_private.kv_si_2748,I,Verwendungsgruppe I,monatlich
kv2748_grp_ii,l10n_at_hr_payroll_private.kv_si_2748,II,Verwendungsgruppe II,monatlich
kv2748_grp_iii,l10n_at_hr_payroll_private.kv_si_2748,III,Verwendungsgruppe III,monatlich
kv2748_grp_iv,l10n_at_hr_payroll_private.kv_si_2748,IV,Verwendungsgruppe IV,monatlich
kv2748_grp_ivm,l10n_at_hr_payroll_private.kv_si_2748,IV-M,Verwendungsgruppe IV - Meister (eigener Vorrückungsverlauf),monatlich
kv2748_grp_v,l10n_at_hr_payroll_private.kv_si_2748,V,Verwendungsgruppe V,monatlich
kv2748_grp_vom,l10n_at_hr_payroll_private.kv_si_2748,V-OM,Verwendungsgruppe V - Obermeister (eigener Vorrückungsverlauf),monatlich
kv2748_grp_vi,l10n_at_hr_payroll_private.kv_si_2748,VI,Verwendungsgruppe VI,monatlich
kv2748_grp_meister,l10n_at_hr_payroll_private.kv_si_2748,MEISTER,Meistergruppe,monatlich
1 id kv_id:id code name lohn_basis
2 kv2203_grp_ii l10n_at_hr_payroll_private.kv_si_2203 II Verwendungsgruppe II monatlich
3 kv2203_grp_iii l10n_at_hr_payroll_private.kv_si_2203 III Verwendungsgruppe III monatlich
4 kv2203_grp_iv l10n_at_hr_payroll_private.kv_si_2203 IV Verwendungsgruppe IV monatlich
5 kv2203_grp_v l10n_at_hr_payroll_private.kv_si_2203 V Verwendungsgruppe V monatlich
6 kv2203_grp_vi l10n_at_hr_payroll_private.kv_si_2203 VI Verwendungsgruppe VI monatlich
7 kv2203_grp_m1 l10n_at_hr_payroll_private.kv_si_2203 M1 Meistergruppe M I (Hilfsmeister / Betriebsaufseher) monatlich
8 kv2203_grp_m2 l10n_at_hr_payroll_private.kv_si_2203 M2 Meistergruppe M II (Meister ohne Fachschule) monatlich
9 kv2203_grp_m2fs l10n_at_hr_payroll_private.kv_si_2203 M2FS Meistergruppe M II (Meister mit Fachschule) monatlich
10 kv2203_grp_m3 l10n_at_hr_payroll_private.kv_si_2203 M3 Meistergruppe M III (Obermeister) monatlich
11 kv2748_grp_i l10n_at_hr_payroll_private.kv_si_2748 I Verwendungsgruppe I monatlich
12 kv2748_grp_ii l10n_at_hr_payroll_private.kv_si_2748 II Verwendungsgruppe II monatlich
13 kv2748_grp_iii l10n_at_hr_payroll_private.kv_si_2748 III Verwendungsgruppe III monatlich
14 kv2748_grp_iv l10n_at_hr_payroll_private.kv_si_2748 IV Verwendungsgruppe IV monatlich
15 kv2748_grp_ivm l10n_at_hr_payroll_private.kv_si_2748 IV-M Verwendungsgruppe IV - Meister (eigener Vorrückungsverlauf) monatlich
16 kv2748_grp_v l10n_at_hr_payroll_private.kv_si_2748 V Verwendungsgruppe V monatlich
17 kv2748_grp_vom l10n_at_hr_payroll_private.kv_si_2748 V-OM Verwendungsgruppe V - Obermeister (eigener Vorrückungsverlauf) monatlich
18 kv2748_grp_vi l10n_at_hr_payroll_private.kv_si_2748 VI Verwendungsgruppe VI monatlich
19 kv2748_grp_meister l10n_at_hr_payroll_private.kv_si_2748 MEISTER Meistergruppe monatlich