From ef91795d827cba7c95657046f649f7684c301f95 Mon Sep 17 00:00:00 2001 From: alex-senger Date: Wed, 30 Oct 2024 15:46:21 +0100 Subject: [PATCH] =?UTF-8?q?add=20freibetr=C3=A4ge=20mockup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../einkommenssteuerAbz\303\274ge.ttsl" | 60 +++++++++----- .../einkommensgrenzen.ttsl" | 2 +- .../freibetr\303\244ge.ttsl" | 82 +++++++++++++++---- 3 files changed, 109 insertions(+), 35 deletions(-) diff --git "a/src/resources/builtins/parameters/einkommenssteuerAbz\303\274ge.ttsl" "b/src/resources/builtins/parameters/einkommenssteuerAbz\303\274ge.ttsl" index c23c1d87..507d7c77 100644 --- "a/src/resources/builtins/parameters/einkommenssteuerAbz\303\274ge.ttsl" +++ "b/src/resources/builtins/parameters/einkommenssteuerAbz\303\274ge.ttsl" @@ -12,109 +12,128 @@ package einkommenssteuerAbzüge public constant kinderFreibetrag: Dict { # Reference: Art. 1 G. v. 23.12.1982 BGBl. I S. 1857. from 1983-01-01 = { - "sächlichesExistenzminimum": 110 + "sächlichesExistenzminimum": 110, + "sum": 110 }; # Reference: Art. 1 G. v. 26.06.1985 BGBl. I S. 1153. from 1986-01-01 = { - "sächlichesExistenzminimum": 635 + "sächlichesExistenzminimum": 635, + "sum": 635 }; # Reference: Artikel 1 G. v. 25.07.1988 BGBl. I S. 1093. from 1990-01-01 = { - "sächlichesExistenzminimum": 773 + "sächlichesExistenzminimum": 773, + "sum": 773 }; # Reference: Art. 1 G. v. 25.02.1992 BGBl. I S. 297. from 1992-01-01 = { - "sächlichesExistenzminimum": 1049 + "sächlichesExistenzminimum": 1049, + "sum": 1049 }; # Reference: Art. 1. G. v. 11.10.1995 BGBl. I S. 1250. from 1996-01-01 = { - "sächlichesExistenzminimum": 1601 + "sächlichesExistenzminimum": 1601, + "sum": 1601 }; from 1997-01-01 = { - "sächlichesExistenzminimum": 1767 + "sächlichesExistenzminimum": 1767, + "sum": 1767 }; # Reference: Art. 1 G. v. 28.12.1999 BGBl. I. S. 2552. from 2000-01-01 = { "beitragErziehungAusbildung": 774, - "sächlichesExistenzminimum": 1767 + "sächlichesExistenzminimum": 1767, + "sum": 2541 }; # Reference: Art. 1 G. v. 16.08.2001 BGBl. I S. 2074 from 2002-01-01 = { "beitragErziehungAusbildung": 1080, - "sächlichesExistenzminimum": 1824 + "sächlichesExistenzminimum": 1824, + "sum": 2904 }; # Reference: Art. 1 G. v. 22.12.2008 BGBl. I S. 2955 from 2009-01-01 = { "beitragErziehungAusbildung": 1080, # previous - "sächlichesExistenzminimum": 1932 + "sächlichesExistenzminimum": 1932, + "sum": 3012 }; # Reference: Art. 1 G. v. 22.12.2009 BGBl. I S. 3950 from 2010-01-01 = { "beitragErziehungAusbildung": 1320, - "sächlichesExistenzminimum": 2184 + "sächlichesExistenzminimum": 2184, + "sum": 3504 }; # Reference: Art. 1 G. v. 16.07.2015 BGBl. I S. 1202 from 2015-01-01 = { "beitragErziehungAusbildung": 1320, # previous - "sächlichesExistenzminimum": 2256 + "sächlichesExistenzminimum": 2256, + "sum": 3576 }; # Reference: Art. 2 G. v. 16.07.2015 BGBl. I S. 1202 from 2016-01-01 = { "beitragErziehungAusbildung": 1320, # previous - "sächlichesExistenzminimum": 2304 + "sächlichesExistenzminimum": 2304, + "sum": 3624 }; # Reference: Art. 8 G. v. 20.12.2016 BGBl. I. S. 3000 from 2017-01-01 = { "beitragErziehungAusbildung": 1320, # previous - "sächlichesExistenzminimum": 2358 + "sächlichesExistenzminimum": 2358, + "sum": 3678 }; # Reference: Art. 9 G. v. 20.12.2016 BGBl. I. S. 3000 from 2018-01-01 = { "beitragErziehungAusbildung": 1320, # previous - "sächlichesExistenzminimum": 2394 + "sächlichesExistenzminimum": 2394, + "sum": 3714 }; # Reference: Art. 1 G. v. 29.11.2018 BGBl. I S. 2210 from 2019-01-01 = { "beitragErziehungAusbildung": 1320, # previous - "sächlichesExistenzminimum": 2490 + "sächlichesExistenzminimum": 2490, + "sum": 3810 }; # Reference: Art. 3 G. v. 29.11.2018 BGBl. I S. 2210 from 2020-01-01 = { "beitragErziehungAusbildung": 1320, # previous - "sächlichesExistenzminimum": 2586 + "sächlichesExistenzminimum": 2586, + "sum": 3906 }; # Reference: Art. 1 G. v. 01.12.2020 BGBl. I S. 2616 from 2021-01-01 = { "sächlichesExistenzminimum": 2730, - "beitr_erz_ausb": 1464 + "beitr_erz_ausb": 1464, + "sum": 4194 }; # Reference: Art. 1 G. v. 08.12.2022 BGBl. I S. 2230. from 2022-01-01 = { "beitragErziehungAusbildung": 2730, # previous - "sächlichesExistenzminimum": 2810 + "sächlichesExistenzminimum": 2810, + "sum": 5540 }; # Reference: Art. 2 G. v. 08.12.2022 BGBl. I S. 2230. from 2023-01-01 = { "beitragErziehungAusbildung": 2730, # previous - "sächlichesExistenzminimum": 3012 + "sächlichesExistenzminimum": 3012, + "sum": 5742 }; # Reference: Art. 3 G. v. 08.12.2022 BGBl. I S. 2230. @@ -122,7 +141,8 @@ public constant kinderFreibetrag: Dict { from 2024-01-01 = { # deviation_from: previous "beitragErziehungAusbildung": 2730, # previous - "sächlichesExistenzminimum": 3306 + "sächlichesExistenzminimum": 3306, + "sum": 6036 }; } diff --git "a/src/resources/builtins/sozialversicherungsBeitr\303\244ge/einkommensgrenzen.ttsl" "b/src/resources/builtins/sozialversicherungsBeitr\303\244ge/einkommensgrenzen.ttsl" index 1066bd52..9209571e 100644 --- "a/src/resources/builtins/sozialversicherungsBeitr\303\244ge/einkommensgrenzen.ttsl" +++ "b/src/resources/builtins/sozialversicherungsBeitr\303\244ge/einkommensgrenzen.ttsl" @@ -1,4 +1,4 @@ -package einkomensgrenzen +package einkommensgrenzen from sozialversicherungsbeitrag import geringfügigeEinkommensgrenzenMonatlich from sozialversicherungsbeitrag import mindestlohn diff --git "a/src/resources/builtins/steuern/zuVersteuerndesEinkommen/freibetr\303\244ge.ttsl" "b/src/resources/builtins/steuern/zuVersteuerndesEinkommen/freibetr\303\244ge.ttsl" index 249e155d..6f2b1a3c 100644 --- "a/src/resources/builtins/steuern/zuVersteuerndesEinkommen/freibetr\303\244ge.ttsl" +++ "b/src/resources/builtins/steuern/zuVersteuerndesEinkommen/freibetr\303\244ge.ttsl" @@ -1,13 +1,21 @@ package freibeträge -from einkommenssteuerAbzuege import alleinerziehendFreibetrag -from einkommenssteuerAbzuege import alleinerzFreibetragZusatz +from einkommenssteuerAbzüge import alleinerziehendFreibetrag +from einkommenssteuerAbzüge import alleinerzFreibetragZusatz +from einkommenssteuerAbzüge import sonderausgabenpauschbetrag +from einkommenssteuerAbzüge import kinderbetreuungskostenAbzMaximum +from einkommenssteuerAbzüge import kinderbetreuungskostenAbzAnteil +from einkommenssteuerAbzüge import kinderFreibetrag from math import max +from math import min id data kinderfreibetragEmpfänger1: Int; id data kinderfreibetragEmpfänger2: Int; data kinderfreibetragAnspruch: Int; +id data steuernummer: Int; +data alleinerziehend: Boolean; +data anzPersonen: Int; /** * Gibt die Anzahl der Kinderfreibeträge zurück, auf die eine Person Anspruch hat. @@ -20,23 +28,24 @@ public function kinderfreibetragAnzahlAnsprüche(): Int groupedBy kinderfreibetr return anspruch1 + anspruch2; } -/** - * Berechnet den Behindertenpauschbetrag basierend auf dem Behinderungsgrad. - */ -public function behinderungsgradPauschbetrag( - behinderungsgrad: Int, -): Float { - # TODO - return 0.0; -} +# not implementable +# /** +# * Berechnet den Behindertenpauschbetrag basierend auf dem Behinderungsgrad. +# */ +# public function behinderungsgradPauschbetrag( +# behinderungsgrad: Int, +# ): Float { +# # TODO +# return 0.0; +# } /** * Berechnung des Alleinerziehendenfreibetrags (ehemals Haushaltsfreibetrag), der abhängig von der Anzahl der Kinder * und dem Jahr, in dem die Berechnung stattfindet, variiert. */ -public function alleinerzFreibetrag(): Float per year { +public function per year alleinerzFreibetrag(): Float { to 2014-12-31 { - if (alleinerziehend()) { + if (alleinerziehend) { return alleinerziehendFreibetrag; } else { return 0.0; @@ -44,7 +53,7 @@ public function alleinerzFreibetrag(): Float per year { } from 2015-01-01 { - if (alleinerziehend()) { + if (alleinerziehend) { return alleinerziehendFreibetrag + (kinderfreibetragAnzahlAnsprüche() - 1) * alleinerzFreibetragZusatz; } else { return 0.0; @@ -52,4 +61,49 @@ public function alleinerzFreibetrag(): Float per year { } } +# altersfreibetrag not implementable + +/** + * Berechnet die Sonderausgaben auf Steuernummer-Ebene, die je nach Jahr variieren. + * Bis 2011 wird nur ein Pauschalbetrag verwendet. Ab 2012 wird zusätzlich ein + * Betreuungsbetrag berücksichtigt. + */ +public function per year sonderausgaben(): Float groupedBy steuernummer { + to 2011-12-31 { + # Sonderausgabenpauschale bis einschließlich 2011 + return sonderausgabenpauschbetrag["single"] * anzahlPersonen; + } + + from 2012-01-01 { + # Sonderausgaben ab 2012: Berücksichtigung von Betreuungskosten + var sonderausgabenGesamt = sonderausgabenBetreuung(); + var pauschale = sonderausgabenpauschbetrag["single"] * anzahlPersonen; + + return max(sonderausgabenGesamt, pauschale); + } +} + +/** + * Berechnet die abzugsfähigen Kinderbetreuungskosten für jedes Kind unter 14 Jahren. + */ +public function per year abzugsfähigeBetreuungskosten(): Float { + return min( + per year betreuungskostenElternteil(), + kinderbetreuungskostenAbzMaximum + ); +} +/** + * Berechnet die Sonderausgaben für Kinderbetreuungskosten auf Steuernummer-Ebene. + * Siehe §10 Abs.1 Nr. 5 EStG für Details. + */ +public function per year sonderausgabenBetreuung(): Float { + return abzugsfähigeBetreuungskosten() * kinderbetreuungskostenAbzAnteil; +} + +/** + * Berechnet den individuellen Kinderfreibetrag. + */ +public function per year kinderfreibetrag(): Float { + return kinderFreibetrag["sum"] * anzahlAnsprüche(); +}