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

Diff of /trunk/LST2008.py

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

revision 3 by wilde, Tue Jan 11 17:10:26 2005 UTC revision 11 by wilde, Thu Jan 13 10:54:59 2005 UTC
# Line 13  Line 13 
13  """Lohnsteuerberechnung nach dem offiziellen Programmablaufplan  """Lohnsteuerberechnung nach dem offiziellen Programmablaufplan
14     wie in Programmablaufplan-LSt.pdf dokumentiert."""     wie in Programmablaufplan-LSt.pdf dokumentiert."""
15    
16    __version__ = "$Revision$"
17    # $Source$
18    
19    def _ModulVersion():
20        return __version__[11:-2]
21    
22  # Die Variablen Namen sind h�sslich, die Algorithmen nicht  # Die Variablen Namen sind h�sslich, die Algorithmen nicht
23  # dokumentiert, der Code grausam -- daf�r entspricht alles Zeile f�r  # dokumentiert, der Code grausam -- daf�r entspricht alles Zeile f�r
24  # Zeile obigem Dokument.  Jedenfalls sollte es so sein...  # Zeile obigem Dokument.  Jedenfalls sollte es so sein...
# Line 532  class LST: Line 538  class LST:
538          self.JVBEZ = value          self.JVBEZ = value
539                    
540      def Set_KRV(self, value):      def Set_KRV(self, value):
541          if value not in (0,1):          assert value in (0,1), "must be 0 or 1"
             raise ValueError  
542          self.KRV = value          self.KRV = value
543                    
544      def Set_LZZ(self, value):      def Set_LZZ(self, value):
545          assert value in (1,2,3,4), "must be in range 1-4 (JAHR, MONAT, WOCHE, TAG)"          assert value in (1,2,3,4), \
546                   "must be in range 1-4 (JAHR, MONAT, WOCHE, TAG)"
547          self.LZZ = value          self.LZZ = value
548                    
549      def Set_R(self, value):      def Set_R(self, value):
550            assert value >= 0.0 and value <= 100.0, \
551                   "must be in range 0.0-100.0 (Percent)"
552          self.R = value          self.R = value
553                    
554      def Set_SONSTB(self, value):      def Set_SONSTB(self, value):
555          self.SONSTB = value          self.SONSTB = value
556                    
557      def Set_STKL(self, value):      def Set_STKL(self, value):
558          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), \
559                   "must be in range 1-6 (I II III IV V VI)"
560          self.STKL = value          self.STKL = value
561                    
562      def Set_VBEZ(self, value):      def Set_VBEZ(self, value):
# Line 575  class LST: Line 584  class LST:
584          self.ZMVB = value          self.ZMVB = value
585    
586  # --------------------------------------------------------------------  # --------------------------------------------------------------------
587  # Eine etwas sch�nere API:  # Eine etwas sch�nere API
588  #  #
589    # FIX ME: Diese API ber�cksichtigt nicht alle M�glichen Parameter und
590    # Berechnungen, es fehlen insbesondere die Berechnungen zu Mehrj�hrigen
591    # Bez�gen und Sonstigen Leistungen.
592    
593  class LStRechner2005(LST):  class LStRechner2005(LST):
594      def __init__(self):      def __init__(self):
595          LST.__init__(self)          LST.__init__(self)
596            
597      def SetLohn(self, lohn):      def SetLohn(self, lohn):
598            """Setzt Lohn in Euro.Cent"""
599          self.Set_RE4(lohn * 100.0)          self.Set_RE4(lohn * 100.0)
600    
601      def SetZeitraum(self, lzz):      def SetZeitraum(self, lzz):
602            """Setzt Berechnungszeitraum (JAHR, MONAT, WOCHE, TAG)"""
603          self.Set_LZZ(lzz)          self.Set_LZZ(lzz)
604    
605      def SetSteuerklasse(self, stkl):      def SetSteuerklasse(self, stkl):
606            """Setzt Steuerklasse (I, II, III, IV, V, VI)"""
607          self.Set_STKL(stkl)          self.Set_STKL(stkl)
608    
609        def SetKirchensteuer(self, prozent):
610            """Setzt Kirchensteuer in Prozent"""
611            self.Set_R(prozent)
612    
613      def GetLohnsteuer(self):      def GetLohnsteuer(self):
614            """Liefert Lohnsteuer in Euro.Cent"""
615          return round(self.LSTLZZ / 100, 2)          return round(self.LSTLZZ / 100, 2)
616    
617        def GetSoli(self):
618            """Liefert Solidarit�tszuschlag in Euro.Cent"""
619            return round(self.SOLZLZZ / 100, 2)
620    
621        def GetKirchensteuer(self):
622            """Liefert Kirchensteuer in Euro.Cent"""
623            return FixedPointFloor(self.BK * self.R / 10000, 2)

Legend:
Removed from v.3  
changed lines
  Added in v.11

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26