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_hr_payroll_private: add premiums at termination under § 16 AngG (AP14-B)
Close the premium-at-termination gap of the end-of-employment cycle: an aliquote periodic premium (annual, sales, bonus, 15th payment) whose entitlement period outlasts the termination is covered by § 16 AngG — the pro-rata amount follows the ratio of the elapsed service to the entitlement period, is due for employees regardless of the termination ground (loss clauses void, 9 ObA 82/13v), while performance-linked premiums for workers may validly hinge on non-fault grounds and premiums tied to a specific service (e.g. Bilanzgeld) are not aliquote without the service (lb-end-18). Two routes: PRAM_END (bemessung sonstig) covers premiums paid with the end-of-employment run — a special payment inside the annual sixth at the flat 6 % rate with the 620 EUR free amount and 2 615 EUR free threshold checked by the core, SV as special-payment contributions (KV/PV/AV without AK/WF) against the monthly HBG and the annual SZ cap, fully payroll-levy liable and BV-contributory at the uncapped 1.53 % rate (§ 6 Abs 1 iVm Abs 5 BMSVG). PRAM_END_TARIF (bemessung laufend plus the core l10n_at_s67_abs6_ueberhang flag) covers premiums due at a pre-agreed maturity because their amount only becomes determinable after the entitlement period ends (e.g. balance-sheet premiums): taxed like running pay with the payment-month tariff without touching the annual sixth (§ 67 Abs 10, not a § 67 Abs 8 lit c case per 98/14/0009 = ARD 5483/14/2004) — the SV contribution month rolls back into the termination year via a new payslip field consumed by an extended branch of the existing SV-basis-by-Beitragsmonat override (historical caps and rates, E-MVB 044-01-00-006), while the LSt stays in the payment month. The wizard section previews the § 16 pro-rata amount from the full premium, entitlement period and elapsed service, keeps the payable amount confirmable (KB agreement), requires the service/claim-basis confirmation, enforces the contribution month for the deferred case, and lands the memo on the payslip for the separate Lohnzettel workflow (LStR Rz 911a); the existing manual PRAM rule is untouched. The account matrix posts both rules to 6230. Verified against the original statute text in .ris/ (AngG § 16, BMSVG § 6 Abs 5) and the knowledge-base source lb-end-18; the full SZ roll-forward (storno plus recomputation against the termination year's SZ annual cap) and the mBGM storno/re-transmission remain open in the GP7 payroll-reporting track, and the BV attribution of the deferred premium remains in the payment month as a documented approximation. Version 19.0.16.0.0 (private)
This commit is contained in:
@@ -83,6 +83,10 @@ L10N_AT_BUCHUNGSMATRIX = {
|
||||
# Teil — gleiche vorläufige Aufwandskonten wie die Abfertigungen.
|
||||
'rule_vergleich': {'debit': ('6200',), 'debit_arbeiter': ('6000',)},
|
||||
'rule_vergleich_bv': {'debit': ('6200',), 'debit_arbeiter': ('6000',)},
|
||||
# Prämie bei Beendigung (§ 16 AngG): mit Endabrechnung und später
|
||||
# fällig — Prämien-Aufwandskonto wie rule_pram.
|
||||
'rule_pram_end': {'debit': ('6230',)},
|
||||
'rule_pram_end_tarif': {'debit': ('6230',)},
|
||||
# Nettoauszahlung (reconcilable, s. o.)
|
||||
'rule_netto': {'credit': ('3850',)},
|
||||
# DG-Beiträge (650–655 SV Arbeiter · 656–659 SV Angestellte)
|
||||
|
||||
@@ -145,6 +145,19 @@ class HrPayslip(models.Model):
|
||||
'BV-Anwartschafts-Zeiträume; beim Pauschalvergleich der '
|
||||
'Verhältnisfaktor Forderungsbetrag : Vergleichssumme '
|
||||
'(E-MVB 011-02-00-001).')
|
||||
l10n_at_pram_nachweis = fields.Text(
|
||||
string='AT Prämie bei Beendigung — Nachweis/Begründung', copy=False,
|
||||
help='Anspruchsgrundlage (KV-/Vertragsvereinbarung, '
|
||||
'Anspruchszeitraum), §-16-Aliquotierung, '
|
||||
'Leistungsverknüpfung und Fälligkeitsvereinbarung '
|
||||
'dokumentieren (lb-end-18).')
|
||||
l10n_at_pram_beitragsmonat = fields.Date(
|
||||
string='AT Prämie (§ 67 Abs 10) — SV-Beitragsmonat der Rollung',
|
||||
copy=False,
|
||||
help='Beitragsmonat, dem die später fällige anteilige Prämie '
|
||||
'sv-rechtlich zuzuordnen ist — der Zeitraum, in dem die '
|
||||
'Leistungen erbracht wurden (E-MVB 044-01-00-006, lb-end-18). '
|
||||
'Leer = Zuflussmonat.')
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# SV-Tage-Umrechnung und Verlängerungsmonate (§ 11 Abs 2 ASVG)
|
||||
@@ -590,7 +603,11 @@ class HrPayslip(models.Model):
|
||||
gelegt. Der Standardanteil jedes Monats bleibt auf die volle
|
||||
monatliche HBG gedeckelt, der Verlängerungsanteil auf den
|
||||
Tageswert (monatliche HBG × Verlängerungstage/30, lb-url-15);
|
||||
die Fenster laufen sequenziell (Abgang zuerst, UEL danach)."""
|
||||
die Fenster laufen sequenziell (Abgang zuerst, UEL danach).
|
||||
AP14-B: die später fällige Prämie (PRAM_END_TARIF) rollt über
|
||||
l10n_at_pram_beitragsmonat in den Beitragsmonat des
|
||||
Austrittsjahres (E-MVB 044, lb-end-18); die LSt bleibt im
|
||||
Zuflussmonat (§ 67 Abs 10)."""
|
||||
self.ensure_one()
|
||||
gruppen = {}
|
||||
verlaengerung = {}
|
||||
@@ -617,8 +634,12 @@ class HrPayslip(models.Model):
|
||||
tage_pro_monat[monat] = \
|
||||
tage_pro_monat.get(monat, 0) + tage
|
||||
continue
|
||||
monat = (rule.l10n_at_beitragsmonat or self.date_from) \
|
||||
.replace(day=1)
|
||||
if rule.code == 'PRAM_END_TARIF' \
|
||||
and self.l10n_at_pram_beitragsmonat:
|
||||
monat = self.l10n_at_pram_beitragsmonat.replace(day=1)
|
||||
else:
|
||||
monat = (rule.l10n_at_beitragsmonat or self.date_from) \
|
||||
.replace(day=1)
|
||||
gruppen[monat] = gruppen.get(monat, 0.0) + werte['total']
|
||||
standard = self.date_from.replace(day=1)
|
||||
if standard in gruppen:
|
||||
|
||||
Reference in New Issue
Block a user