/[lohnrechner]/trunk/LST2008.py
ViewVC logotype

Diff of /trunk/LST2008.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 8 by wilde, Thu Jan 13 10:17:05 2005 UTC revision 26 by wilde, Thu Jan 27 10:14:51 2005 UTC
# Line 1  Line 1 
1    # -*- coding: iso-8859-1 -*-
2  # --------------------------------------------------------------------  # --------------------------------------------------------------------
3  # LST2005 -- Python Modul zur Berechnung der Deutschen Lohnsteuer 2005  # LST2005 -- Python Modul zur Berechnung der Deutschen Lohnsteuer 2005
4  # $Id$  # $Id$
# Line 236  class LST: Line 237  class LST:
237              if self.RE4 > self.VBEZ:              if self.RE4 > self.VBEZ:
238                  self._ANP += 920                  self._ANP += 920
239          else:          else:
240              self._ANP = 0              self._ANP = 0            
241          if self.STKL == 1:          if self.STKL == 1:
242              self._SAP = 36              self._SAP = 36
243              self._KFB = self.ZKF * 5808              self._KFB = self.ZKF * 5808
# Line 276  class LST: Line 277  class LST:
277              self._VSP1 = 1.0              self._VSP1 = 1.0
278          else:          else:
279              if self._ZRE4VP > 62400:              if self._ZRE4VP > 62400:
280                  self._ZRE4VP = 62400.0                  self._ZRE4VP = 62400
281              self._VSP1 = 0.2 * self._ZRE4VP              self._VSP1 = 0.2 * self._ZRE4VP
282              self._VSP1 = self._VSP1 * 0.0975              self._VSP1 = FixedPointFloor(self._VSP1 * 0.0975)
283          self._VSP2 = 0.11 * self._ZRE4VP          self._VSP2 = FixedPointFloor(0.11 * self._ZRE4VP)
284          self._VHB = 1500 * self._KZTAB          self._VHB = 1500 * self._KZTAB
285          if self._VSP2 > self._VHB:          if self._VSP2 > self._VHB:
286              self._VSP2 = self._VHB              self._VSP2 = self._VHB
# Line 371  class LST: Line 372  class LST:
372              self.SOLZLZZ = 0              self.SOLZLZZ = 0
373          if self.R > 0:          if self.R > 0:
374              self._JW = self._JBMG * 100              self._JW = self._JBMG * 100
375              self._UPANTEIL              self._UPANTEIL()
376              self.BK = self._ANTEIL1              self.BK = self._ANTEIL1
377          else:          else:
378              self.BK = 0              self.BK = 0
# Line 490  class LST: Line 491  class LST:
491              self._MRE4()              self._MRE4()
492              self._MLSTJAHR()              self._MLSTJAHR()
493              self._LST2 = self._ST * 100              self._LST2 = self._ST * 100
494              self.STV = (self._LST2 - self.LST1) * 5              self.STV = (self._LST2 - self._LST1) * 5
495              self._LST3 -= self._LST1              self._LST3 -= self._LST1
496              if self._LST3 < self.STV:              if self._LST3 < self.STV:
497                  self.STV = self._LST3                  self.STV = self._LST3
# Line 538  class LST: Line 539  class LST:
539          self.JVBEZ = value          self.JVBEZ = value
540                    
541      def Set_KRV(self, value):      def Set_KRV(self, value):
542          if value not in (0,1):          assert value in (0,1), "must be 0 or 1"
             raise ValueError  
543          self.KRV = value          self.KRV = value
544                    
545      def Set_LZZ(self, value):      def Set_LZZ(self, value):
546          assert value in (1,2,3,4), "must be in range 1-4 (JAHR, MONAT, WOCHE, TAG)"          assert value in (1,2,3,4), \
547                   "must be in range 1-4 (JAHR, MONAT, WOCHE, TAG)"
548          self.LZZ = value          self.LZZ = value
549                    
550      def Set_R(self, value):      def Set_R(self, value):
551            assert value >= 0.0 and value <= 100.0, \
552                   "must be in range 0.0-100.0 (Percent)"
553          self.R = value          self.R = value
554                    
555      def Set_SONSTB(self, value):      def Set_SONSTB(self, value):
556          self.SONSTB = value          self.SONSTB = value
557                    
558      def Set_STKL(self, value):      def Set_STKL(self, value):
559          assert value in (1,2,3,4,5,6), "must be in range 1-6 (I II III IV V VI)"          assert value in (1,2,3,4,5,6), \
560                   "must be in range 1-6 (I II III IV V VI)"
561          self.STKL = value          self.STKL = value
562                    
563      def Set_VBEZ(self, value):      def Set_VBEZ(self, value):
# Line 575  class LST: Line 579  class LST:
579          self.WFUNDF = value          self.WFUNDF = value
580    
581      def Set_ZKF(self, value):      def Set_ZKF(self, value):
582            assert float(value) == float("%.1f" % value) and \
583                   value >= 0, \
584                   "must be positive, and must not have more than one decimal digit"
585          self.ZKF = value          self.ZKF = value
586            
587      def Set_ZMVB(self, value):      def Set_ZMVB(self, value):
588          self.ZMVB = value          self.ZMVB = value
589    
# Line 593  class LStRechner2005(LST): Line 600  class LStRechner2005(LST):
600            
601      def SetLohn(self, lohn):      def SetLohn(self, lohn):
602          """Setzt Lohn in Euro.Cent"""          """Setzt Lohn in Euro.Cent"""
603          self.Set_RE4(lohn * 100.0)          self.Set_RE4(round (lohn * 100.0))
604    
605        def GetLohn(self):
606            """Liefert Lohn in Euro.Cent"""
607            return self.RE4 / 100.0
608    
609      def SetZeitraum(self, lzz):      def SetZeitraum(self, lzz):
610          """Setzt Berechnungszeitraum (JAHR, MONAT, WOCHE, TAG)"""          """Setzt Berechnungszeitraum (JAHR, MONAT, WOCHE, TAG)"""
611          self.Set_LZZ(lzz)          self.Set_LZZ(lzz)
612    
613        def GetZeitraum(self):
614            """Liefert Berechnungszeitraum (JAHR, MONAT, WOCHE, TAG)"""
615            return self.LZZ
616    
617      def SetSteuerklasse(self, stkl):      def SetSteuerklasse(self, stkl):
618          """Setzt Steuerklasse (I, II, III, IV, V, VI)"""          """Setzt Steuerklasse (I, II, III, IV, V, VI)"""
619          self.Set_STKL(stkl)          self.Set_STKL(stkl)
620    
621      def SetKirchensteuer(self, prozent):      def GetSteuerklasse(self):
622          """Setzt Kirchensteuer in Prozent"""          """Liefert Steuerklasse (I, II, III, IV, V, VI)"""
623            return self.STKL
624    
625        def SetKirchensteuerProzent(self, prozent):
626            """Setzt Kirchensteuer in Prozent,
627            0 wenn keine Kirchensteuer zu zahlen ist."""
628          self.Set_R(prozent)          self.Set_R(prozent)
629    
630        def GetKirchensteuerProzent(self):
631            """Liefert Kirchensteuer in Prozent
632            oder 0 wenn keine Kirchensteuer zu zahlen ist."""
633            return self.R
634    
635        def SetKinderfreibetrag(self, kfb):
636            """Setzt Kinderfreibetrag lt. Lohnsteuerkarte"""
637            self.Set_ZKF(kfb)
638    
639        def GetKinderfreibetrag(self):
640            """Liefert Kinderfreibetrag lt. Lohnsteuerkarte"""
641            return self.ZFK
642    
643      def GetLohnsteuer(self):      def GetLohnsteuer(self):
644          """Liefert Lohnsteuer in Euro.Cent"""          """Liefert Lohnsteuer in Euro.Cent"""
645          return round(self.LSTLZZ / 100, 2)          return round(self.LSTLZZ / 100, 2)
646    
647      def GetSoli(self):      def GetSoli(self):
648          """Liefert Solidarit�tszuschlag in Euro.Cent"""          """Liefert Solidarit�tszuschlag in Euro.Cent"""
649          return round(self.SOLZLZZ / 100, 2)          return FixedPointFloor(self.SOLZLZZ / 100, 2)
650    
651      def GetKirchensteuer(self):      def GetKirchensteuer(self):
652          """Liefert Kirchensteuer in Euro.Cent"""          """Liefert Kirchensteuer in Euro.Cent"""

Legend:
Removed from v.8  
changed lines
  Added in v.26

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26