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: Sachbezüge (AP12)
This commit is contained in:
@@ -0,0 +1,173 @@
|
||||
# Rechenfälle steuerfreie Sachbezüge (AP12a)
|
||||
|
||||
Kern: Feld `hr.salary_rule.l10n_at_st_frei` + Methoden
|
||||
`_l10n_at_st_frei_ytd`/`_l10n_at_st_frei_freie_laufen` (Anbindung
|
||||
`_l10n_at_bemessung_laufen`) in `l10n_at_hr_payroll/models/lohnsteuer.py`,
|
||||
Parameter `at_st_grenzen` (`l10n_at_hr_payroll/data/rule_parameters_lst_2026.xml`).
|
||||
Privat: Eingabetypen `ATP_SB_*` (`data/input_types_private.xml`), Regeln
|
||||
`SB_MAHLZEIT`/`SB_BETRIEBSVERANSTALTUNG`/`SB_SACHZUWENDUNG`/`SB_RABATT`/
|
||||
`SB_HOMEOFFICE` (`data/salary_rules_sb_private.xml`), Parameter
|
||||
`at_sb_werte` (`data/rule_parameters_sb_private.xml`), LNK-Anbindung
|
||||
`_at_lnk_basis` (`models/payslip_private.py`). SV-Seite: bestehendes
|
||||
`l10n_at_sv49_frei`/`at_sv49_grenzen` (die SB-Regeln setzen beide Flags).
|
||||
|
||||
## Rechtsquellen (verifiziert 2026-09-13)
|
||||
|
||||
- **Mahlzeiten** (lb-sac-17): § 3 Abs 1 Z 17 EStG / § 49 Abs 3 Z 12 ASVG —
|
||||
„großer" Essensbon **€ 8,00/Arbeitstag** steuer- und beitragsfrei
|
||||
(Voraussetzungen: keine Verpflegungszulage u. a., sonst nur € 2,00);
|
||||
Jahresbemessung 220 Arbeitstage; Übersteigerung pflichtig.
|
||||
- **Betriebsveranstaltungen** (lb-sac-07, lb-sva-03): § 3 Abs 1 Z 14 EStG /
|
||||
§ 49 Abs 3 Z 17 ASVG — Teilnahme bis **€ 365,–/AN/Kalenderjahr** frei;
|
||||
keine Barablöse.
|
||||
- **Sachzuwendungen/Geschenke** (lb-ges-02): § 3 Abs 1 Z 14 EStG —
|
||||
Weihnachtsgeschenke sowie Dienst-/Firmenjubiläen je bis **€ 186,–/Jahr**
|
||||
(gesonderter Pool neben der BV); Barzuwendungen immer pflichtig.
|
||||
- **Mitarbeiterrabatte** (lb-sac-02): § 3 Abs 1 Z 21 EStG / § 49 Abs 3
|
||||
Z 29 ASVG — Rabatte **über 20 %** mit **€-1.000,–-Freibetrag/Jahr** je
|
||||
AN/AG; darunter keine Bezug; darüber abgabenpflichtig (laufend oder
|
||||
jährlicher Sachbezug).
|
||||
- **Homeoffice/Telearbeit** (lb-tel-04/05): § 26 Z 9 EStG / § 49 Abs 3
|
||||
Z 31 ASVG — Telearbeit-Pauschale **€ 3/Tag, max 100 Tage/Jahr**
|
||||
(= € 300/Jahr) nicht steuerbar; Lohnkonto: Anzahl Telearbeitstage
|
||||
erfassen.
|
||||
- Alle Freibeträge: **nur der übersteigende Teil** ist beitrags-/steuer-
|
||||
pflichtig (Freibeträge, keine Freigrenzen), lohnnebenkostenfrei.
|
||||
|
||||
## Maschinenmodell (2026)
|
||||
|
||||
- **Eingabe-Semantik** (manuell, `hr.payslip.input.amount`):
|
||||
- tagesbasiert (Mahlzeiten/Homeoffice): `amount` = **Anz. Arbeitstage**;
|
||||
Tageswert aus `at_sb_werte` (`mahlzeit_wert` Default 8,0 = tatsächl.
|
||||
Bonwert, `homeoffice_wert` 3,0 = gesetzlich fix); Regel: `result =
|
||||
wert`, `result_qty = tage` → Engine: `total = wert × tage`,
|
||||
`quantity = tage` (für die Cap-Berechnung Cap × Tage).
|
||||
- poolbasiert (BV/Sachzuwendung/Rabatt): `amount` = **Gesamtwert des
|
||||
Monats**; Regel: `result = amount` (`quantity` = 1).
|
||||
- **Freibetrag je Lauf** (Kern, `_l10n_at_st_frei_freie_laufen`,
|
||||
Spieglung `_l10n_at_sv49_freie_laufen`): tagesbasiert
|
||||
`frei = min(total, cap × menge)`; Homeoffice zusätzlich
|
||||
`rest_tage = 100 − YTD-Menge`, poolbasiert `frei = min(total,
|
||||
pool − YTD)`. YTD = Summe der Zeilen (Menge bzw. Total) **validierter**
|
||||
früherer Läufe des Kalenderjahres je DN (`_l10n_at_ytd_slaeufe`).
|
||||
- **Bemessungen**: LSt-BG laufend = Arbeitslohn − SVDN − § 68 −
|
||||
`st_frei`; LNK-BG = (laufend + im Monat gezahlter § 67) − `st_frei`
|
||||
− § 67 Abs 3/6 → SV-DN sind aus der LSt-BG abzugsfähig, aus der
|
||||
LNK-BG nicht (Zuflussprinzip, kein SV-Abzug).
|
||||
- **Caps** (`at_st_grenzen`, `at_sv49_grenzen`, 2026): Mahlzeit 8,0 €/AT ·
|
||||
Rabatt 1.000 €/J · BV 365 €/J · Jubiläum 186 €/J · Homeoffice
|
||||
3,0 €/AT, 100 Tage/J.
|
||||
|
||||
## RF-SB-1 — Mahlzeiten voll im Freibetrag
|
||||
|
||||
10 Gutschein-Arbeitstage à 8,0 € (`mahlzeit_wert`):
|
||||
|
||||
- `SB_MAHLZEIT`: total **80,00 €**, quantity 10.
|
||||
- frei (SV + LSt) = min(80, 8 × 10) = **80,00 €** → SV-BG, LSt-BG und
|
||||
LNK-BG **unverändert** gegenüber dem Lauf ohne SB (Tests test_01).
|
||||
|
||||
## RF-SB-2 — Mahlzeiten mit Überhang (Bonwert 11,00 €)
|
||||
|
||||
`at_sb_werte.mahlzeit_wert` = 11,00 (versioniert), 10 AT:
|
||||
|
||||
- `SB_MAHLZEIT`: total **110,00 €** (11 × 10), quantity 10.
|
||||
- frei = min(110, 8 × 10) = **80,00 €** → Überhang **30,00 €**.
|
||||
- SV-BG +30,00 · LNK-BG +30,00 · LSt-BG +30,00 **abzüglich** der darauf
|
||||
entfallenden SV-DN (SV abzugsfähig: ΔLSt + ΔSVDN = 30,00 €) (test_02).
|
||||
|
||||
## RF-SB-3 — Betriebsveranstaltungen (365-€-Pool)
|
||||
|
||||
Jänner 300 € (validiert), Februar 100 €:
|
||||
|
||||
- Jänner: frei min(300, 365−0) = **300 €** → voll frei.
|
||||
- Februar: YTD 300 → frei min(100, 365−300) = **65 €**, Überhang **35 €**
|
||||
in SV-/LSt-(netto SVDN)/LNK-Bemessung (test_03).
|
||||
|
||||
## RF-SB-4 — Eigene Pools: Sachzuwendung (186) & Rabatt (1.000)
|
||||
|
||||
- **Sachzuwendung**: Jänner 100 € (frei), Februar 100 € → frei
|
||||
186−100 = **86 €**, Überhang **14 €** (test_04).
|
||||
- **Rabatt**: Jänner 700 € (frei, über 20 %), Februar 500 € → frei
|
||||
1.000−700 = **300 €**, Überhang **200 €** (test_04).
|
||||
- Pools sind unabhängig (BV 365 ≠ Sachzuwendung 186).
|
||||
|
||||
## RF-SB-5 — Homeoffice (100-Tage-Limit)
|
||||
|
||||
70 Tage (validiert), dann 80 Tage:
|
||||
|
||||
- Jänner: 70 × 3 = **210 €** frei (70 ≤ 100 Tage).
|
||||
- Februar: rest 100−70 = 30 Tage → frei 30 × 3 = **90 €**; Zeile
|
||||
80 × 3 = 240 € → Überhang **150 €** pflichtig (test_05).
|
||||
|
||||
## RF-SB-6 — Ohne SB-Eingaben neutral
|
||||
|
||||
Keine `ATP_SB_*`-Eingaben → keine `SB_*`-Zeilen,
|
||||
`_l10n_at_st_frei_freie_laufen()` = `_l10n_at_sv49_freie_laufen()` = 0
|
||||
→ Bemessungen wie ohne AP12a (test_06).
|
||||
|
||||
## AP12b — Wertgebundene Sachbezüge (2026)
|
||||
|
||||
Stammdaten liegen auf `hr.version` (ein Fahrzeug/eine Wohnung pro
|
||||
Dienstverhältnis im MVP), ereignisbezogene Werte auf `ATP_SB_*`-Eingaben.
|
||||
Die Werte sind vollständig versioniert: `at_sb_wagen`, `at_sb_wagen_co2`,
|
||||
`at_sb_wohnung`, `at_sb_parkplatz`.
|
||||
|
||||
- **Dienstwagen** (lb-sac-03/04, § 4 SBWVO): AK × 2 % (über Grenzwert,
|
||||
cap 960) bzw. 1,5 % (Grenzwert erfüllt, cap 720); halber SB bei
|
||||
nachgewiesenen ≤ 500 Privat-km/Monat: 1 %/0,75 % (caps 480/360).
|
||||
CO₂-Grenzwert folgt dem Erstzulassungsjahr; 0 g/km = kein Ansatz;
|
||||
laufender Kostenbeitrag mindert nach § 4 Abs 7.
|
||||
- **Dienstwohnung** (lb-sac-09, § 2 Abs 7a SBWVO): m² × Richtwert je
|
||||
Bundesland; Normwohnung −30 %, Hausbesorger −35 % (kombiniert 55,5 %);
|
||||
arbeitsplatznah/nicht Lebensmittelpunkt: ≤ 35 m² = 0, über 35–45 m²
|
||||
−35 % während der ersten 12 Überlassungsmonate.
|
||||
- **Parkplatz** (lb-sac-18, § 4a SBWVO): 14,53 €/Monat minus DN-
|
||||
Kostenbeitrag, soweit keine dokumentierte Ausnahme vorliegt. AP12b
|
||||
behandelt ihn als laufenden Bezug; der Quelltext nennt die Kategorie
|
||||
nicht explizit (⚠ Annahme vor Produktivsetzung gegen LStR/RIS prüfen).
|
||||
- **Handy** (lb-sac-15): beruflich/fallweise privat = 0; überwiegend
|
||||
private Mehrkosten sind laufender manueller Bezug. Verkauf unter
|
||||
Buchwert ist als Eingabe „Buchwert minus Kaufpreis“: SV **laufend**,
|
||||
LSt **sonstig (§ 67)**, LNK-pflichtig.
|
||||
- **Bonusmeilen** (lb-sac-08): Einlösungswert ist Drittlohn, ausschließlich
|
||||
SV-laufend (§ 49 Abs 1 ASVG), kein eigenes LSt-/LNK-Brutto. Die darauf
|
||||
entfallende DN-SV mindert jedoch gemäß bestehender §-62-Kette die LSt-BG.
|
||||
|
||||
## RF-SB-7 — Dienstwagen
|
||||
|
||||
AK 36.700 €, EZ 2025, CO₂ 112 g/km (≤ 126): 36.700 × 1,5 % =
|
||||
**550,50 €**. Halber Sachbezug: **275,25 €**. Bei 130 g/km:
|
||||
36.700 × 2 % = **734,00 €**. E-Fahrzeug (0 g/km) = **0 €**.
|
||||
Kostenbeitrag 300 €: 550,50 − 300 = **250,50 €**.
|
||||
|
||||
## RF-SB-8 — Dienstwohnung und Parkplatz
|
||||
|
||||
- Wien, 72,4 m²: 72,4 × 6,67 = **482,91 €**.
|
||||
- Arbeitsplatznahe Kleinwohnung: 30 m² = **0 €**; 40 m² im Monat 1:
|
||||
40 × 6,67 × 65 % = **173,42 €**.
|
||||
- Parkplatz: 14,53 € minus 5 € Kostenbeitrag = **9,53 €**.
|
||||
|
||||
## RF-SB-9 — Handy und Bonusmeilen
|
||||
|
||||
- Private Handy-Mehrkosten 80 € nur bei Profil „überwiegend privat“:
|
||||
**80 € laufend**; berufliches Profil erzeugt keine Zeile.
|
||||
- Arbeitsmittel-Verkauf (Buchwert 800 € − Preis 100 €): **700 €**;
|
||||
SV-Basis laufend +700, SV-SZ-Basis 0, LSt-sonstig und LNK +700.
|
||||
- Bonusmeilen, Einlösungswert 300 €: SV-Basis +300, LNK 0, kein eigenes
|
||||
LSt-Brutto; Auszahlungsnetto vermindert sich nur um die DN-SV abzüglich
|
||||
der daraus folgenden LSt-Entlastung.
|
||||
|
||||
## Offene Punkte / dokumentierte Reste
|
||||
|
||||
- **Dienstwagen:** Mini-Sachbezug (Fahrtenbuch/km-Wert/Jahresvergleich),
|
||||
Fahrzeugwechsel, Pool/Fahrgemeinschaft, Mehrfachfahrzeuge und einmalige
|
||||
Kostenbeiträge (lb-sac-04) folgen außerhalb des MVP.
|
||||
- **Kleinwohnung:** Aufrollung/Nachversteuerung beim Überschreiten der
|
||||
12-Monats-Frist (§ 67 Abs 10), Mehrnutzer- und Gemeinschaftsflächen-
|
||||
aufteilung sind noch nicht automatisiert.
|
||||
- **Jobticket** (SBV § 4b): erst ab AP13.
|
||||
- **Lohnkonto-Aufzeichnungspflichten** (Mahlzeitenvoraussetzungen
|
||||
lb-sac-17, Telearbeitstage lb-tel-05, Rabatte > 20 % lb-sac-02 sowie
|
||||
Nachweise/Erklärungen AP12b): Arbeitgeber-Prüffeld, nicht Engine.
|
||||
- **2027-Werte**: alle `at_st_grenzen`/`at_sv49_grenzen`, `at_sb_werte`
|
||||
und AP12b-Parameter am Jahreswechsel nachführen (Wartung/RUNBOOK).
|
||||
Reference in New Issue
Block a user