[Lohnrechner-commits] r67 - trunk
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Thu Jan 25 12:13:09 CET 2007
Author: wilde
Date: 2007-01-25 12:13:08 +0100 (Thu, 25 Jan 2007)
New Revision: 67
Modified:
trunk/LST2007.py
trunk/lohnrechner.py
Log:
Anpassungen f?\195?\188r 2007 gem?\195?\164?\195?\159 neuem Programmablaufplan.
Modified: trunk/LST2007.py
===================================================================
--- trunk/LST2007.py 2007-01-25 10:26:33 UTC (rev 66)
+++ trunk/LST2007.py 2007-01-25 11:13:08 UTC (rev 67)
@@ -1,10 +1,10 @@
# -*- coding: iso-8859-1 -*-
# --------------------------------------------------------------------
-# LST2006 -- Python Modul zur Berechnung der Deutschen Lohnsteuer 2006
+# LST2007 -- Python Modul zur Berechnung der Deutschen Lohnsteuer 2007
# $Id$
# --------------------------------------------------------------------
#
-# Copyright (c) 2005, 2006 by Intevation GmbH
+# Copyright (c) 2005, 2006, 2007 by Intevation GmbH
# Authors:
# Sascha Wilde <wilde at intevation.de>
#
@@ -410,14 +410,18 @@
self._ZRE4 = FixedPointFloor((self._RE4LZZ + 0.56) * 3.6)
self._ZRE4VP = FixedPointFloor((self._RE4LZZV + 0.56) * 3.6)
self._ZVBEZ = FixedPointFloor((self.VBEZ - self._FVB + 0.56) * 3.6)
- if self._ZRE4 < 0:
+ if self._RE4LZZ < 0:
self._ZRE4 = 0.0
- if self._ZVBEZ < 0:
- self._ZVBEZ = 0.0
+ if self._RE4LZZV < 0:
+ self._ZRE4VP = 0.0
+ if (self.VBEZ == 0) and (self._FVB == 0):
+ self._ZVBEZ = 0
+ elif (self.VBEZ - self._FVB) < 0:
+ self._ZVBEZ = 0
def _MZTABFB(self):
self._ANP = 0
- if (self._ZVBEZ > 0) and (self._ZVBEZ < self._FVBZ):
+ if (self._ZVBEZ >= 0) and (self._ZVBEZ < self._FVBZ):
self._FVBZ = self._ZVBEZ
if (self.STKL < 6) and (self._ZVBEZ > 0):
if (self._ZVBEZ - self._FVBZ) < 102:
@@ -459,7 +463,7 @@
else:
self._X = floor(float(self._ZVE) / self._KZTAB)
if self.STKL < 5:
- self._UPTAB05()
+ self._UPTAB07()
else:
self._MST5_6()
@@ -469,8 +473,8 @@
else:
if self._ZRE4VP > 63000:
self._ZRE4VP = 63000
- self._VSP1 = 0.24 * self._ZRE4VP
- self._VSP1 = FixedPointFloor(self._VSP1 * 0.0975)
+ self._VSP1 = 0.28 * self._ZRE4VP
+ self._VSP1 = FixedPointFloor(self._VSP1 * 0.0995)
self._VSP2 = FixedPointFloor(0.11 * self._ZRE4VP)
self._VHB = 1500 * self._KZTAB
if self._VSP2 > self._VHB:
@@ -493,7 +497,7 @@
if self._VSPO > self._VSPKURZ:
self._VSP = self._VSPKURZ
else:
- self._VSP = ceil(self._VSPO)
+ self._VSP = floor(self._VSPO)
else:
self._UMVSP()
@@ -511,20 +515,24 @@
self._VSP += self._VSPMAX1
self._VSPREST = FixedPointCeil((self._VSPREST - self._VSPMAX1) / 2.0)
if self._VSPREST > self._VSPMAX2:
- self._VSP = ceil(self._VSP + self._VSPMAX2)
+ self._VSP = floor(self._VSP + self._VSPMAX2)
else:
- self._VSP = ceil(self._VSP + self._VSPREST)
+ self._VSP = floor(self._VSP + self._VSPREST)
else:
- self._VSP = ceil(self._VSP + self._VSPREST)
+ self._VSP = floor(self._VSP + self._VSPREST)
else:
- self._VSP = ceil(self._VSPO)
+ self._VSP = floor(self._VSPO)
def _MST5_6(self):
self._ZZX = self._X
if self._ZZX > 25812:
self._ZX = 25812
self._UP5_6()
- self._ST = floor(self._ST + (self._ZZX - 25812) * 0.42)
+ if self._ZZX > 200000:
+ self._ST = self._ST + (200000 - 25812) * 0.42
+ self._ST = floor(self._ST + (self._ZZX - 200000) * 0.45)
+ else:
+ self._ST = floor(self._ST + (self._ZZX - 25812) * 0.42)
else:
self._ZX = self._ZZX
self._UP5_6()
@@ -540,10 +548,10 @@
def _UP5_6(self):
self._X = self._ZX * 1.25
- self._UPTAB05()
+ self._UPTAB07()
self._ST1 = self._ST
self._X = self._ZX * 0.75
- self._UPTAB05()
+ self._UPTAB07()
self._ST2 = self._ST
self._DIFF = (self._ST1 - self._ST2) * 2
self._MIST = floor(self._ZX * 0.15)
@@ -585,7 +593,7 @@
self._ANTEIL1 = floor(self._JW / 360.0)
self._ANTEIL2 = ceil(self._JW / 360.0)
- def _UPTAB05(self):
+ def _UPTAB07(self):
if self._X < 7665:
self._ST = 0
elif self._X < 12740:
@@ -599,12 +607,18 @@
self._RW += 2397
self._RW *= self._Y
self._ST = floor(self._RW + 989)
+ elif self._X < 250001:
+ self._ST = floor(self._X * 0.42 - 7914)
else:
- self._ST = floor(self._X * 0.42 - 7914)
+ self._ST = floor(self._X * 0.45 - 15414)
self._ST *= self._KZTAB
def _MSONST(self):
- if self.SONSTB > 0:
+ if self.SONSTB == 0:
+ self.STS = 0
+ self.SOLZS = 0
+ self.BKS = 0
+ else:
# ------------------------------
# Nicht im offiziellen Programm-
# ablaufplan: Attribute sichern
@@ -627,6 +641,8 @@
self._MLSTJAHR()
self._LST2 = self._ST * 100
self.STS = self._LST2 - self._LST1
+ if (self.SONSTB > 0) and (self.STS < 0):
+ self.STS = 0
self.SOLZS = floor(self.STS * 5.5 / 100)
if self.R > 0:
self.BKS = self.STS
@@ -640,10 +656,6 @@
self.VBEZ = old_vbez
self.RE4 = old_re4
# ------------------------------
- else:
- self.STS = 0
- self.SOLZS = 0
- self.BKS = 0
def _MRE4LZZ2(self):
self._RE4LZZ = self.RE4 - self._FVB - self._ALTE \
@@ -660,6 +672,8 @@
old_vbez = self.VBEZ
old_re4 = self.RE4
# ------------------------------
+ if self.VKAPA < 0:
+ self.VKAPA = 0
if (self.VMT + self.VKAPA) > 0:
self.LZZ = 1
self.VBEZ = self.JVBEZ + self.VBS
@@ -679,6 +693,7 @@
self._MLSTJAHR()
self._LST3 = self._ST * 100
self.VBEZ = self.VBEZ - self.VKAPA
+ self.VBEZS = self.VBEZS - self.VKAPA
self.RE4 = self.JRE4 + self.SONSTB
self._MRE4LZZ()
if (self.RE4 - self.JFREIB + self.JHINZU) < 0:
@@ -813,14 +828,14 @@
# Berechnungen, es fehlen insbesondere die Berechnungen zu Mehrjährigen
# Bezügen und Sonstigen Leistungen.
-class LStRechner2006(LST):
+class LStRechner2007(LST):
def __init__(self):
LST.__init__(self)
def SetGeb(self, geb):
"""Setzt das Geburtsjahr"""
self.Set_AJAHR(geb + 65)
- if self.AJAHR <= 2006:
+ if self.AJAHR <= 2007:
self.Set_ALTER1(1)
else:
self.Set_ALTER1(0)
Modified: trunk/lohnrechner.py
===================================================================
--- trunk/lohnrechner.py 2007-01-25 10:26:33 UTC (rev 66)
+++ trunk/lohnrechner.py 2007-01-25 11:13:08 UTC (rev 67)
@@ -5,27 +5,27 @@
# $Id$
# --------------------------------------------------------------------
#
-# Copyright (c) 2005,2006 by Intevation GmbH
+# Copyright (c) 2005,2006,2007 by Intevation GmbH
# Authors:
# Sascha Wilde <wilde at intevation.de>
#
# This program is free software under the GPL (>=v2)
# Read the file COPYING coming with this package for details.
-"""Lohn/Gehaltsrechner für das Jahr 2006"""
+"""Lohn/Gehaltsrechner für das Jahr 2007"""
__version__ = "$Revision$"
# $Source$
_release_version = "0.%s" % __version__[11:-2]
-import LST2006
+import LST2007
from Tkinter import *
-class Lohnrechner(LST2006.LStRechner2006):
+class Lohnrechner(LST2007.LStRechner2007):
def __init__(self, root):
- LST2006.LStRechner2006.__init__(self)
+ LST2007.LStRechner2007.__init__(self)
# Land, Kirchensteuersatz, Pflegeversicherung AG-Anteil
self.laender = [("Baden-Württemberg", 8, 0.0085),
@@ -48,7 +48,7 @@
self.root = root
- self.root.title("Lohnrechner 2006 - v%s" % _release_version)
+ self.root.title("Lohnrechner 2007 - v%s" % _release_version)
self.SetupUI()
self.UpdateLand()
@@ -271,15 +271,15 @@
def Info(self):
infowin = Toplevel(self.root)
infowin.title("Info")
- Label(infowin, text="Lohnrechner 2006 v%s" % _release_version,
+ Label(infowin, text="Lohnrechner 2007 v%s" % _release_version,
font=("Times", 14, "bold italic")).grid(row=0, pady=20)
Label(infowin, text=
- "Copyright (C) 2005,2006 Intevation GmbH \n\n\
-Lohnrechner 2006 comes with ABSOLUTELY NO WARRANTY.\n\
+ "Copyright (C) 2005,2006,2007 Intevation GmbH \n\n\
+Lohnrechner 2007 comes with ABSOLUTELY NO WARRANTY.\n\
This is free software, and you are welcome to redistribute it\n\
under the terms of the GNU General Public License.\n\
For more information about these matters, see the file named COPYING.\n\n\
-Dieses Programm verwendet LST2006 %s" % LST2006._ModulVersion()).grid(row=1, padx=10)
+Dieses Programm verwendet LST2007 %s" % LST2007._ModulVersion()).grid(row=1, padx=10)
Button(infowin, text="Ok", command=infowin.destroy).grid(row=2, pady=10)
#
More information about the Lohnrechner-commits
mailing list