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

Diff of /trunk/lohnrechner.py

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

revision 80 by wilde, Wed Jan 16 09:39:58 2008 UTC revision 81 by frank, Wed Feb 11 11:04:42 2009 UTC
# Line 73  class Lohnrechner(LST2008.LStRechner2008 Line 73  class Lohnrechner(LST2008.LStRechner2008
73          self.lohn.bind("<Return>", self.NewInput)          self.lohn.bind("<Return>", self.NewInput)
74          self.lohn.grid(row=1, column=1, sticky=W)          self.lohn.grid(row=1, column=1, sticky=W)
75    
76          Label(frame, text="Steuerklasse:").grid(row=2, sticky=E)          sonstbezlabel = Label(frame, text="Sonstige Bez�ge:")
77            self.sonstbez = Entry(frame)
78            self.sonstbez.bind("<Return>", self.NewInput)
79            # Sonstige Bezuege bisher nur unter Randbedingungen:
80            # - Einmalig im Kalenderjahr
81            # - Keine Ber�cksichtigung bei der Berechnung Sozialbeitr�ge
82            # Daher per Vorgabe "versteckt", bei Bedarf einfuegen:
83            # sonstbezlabel.grid(row=2, sticky=E)
84            # self.sonstbez.grid(row=2, column=1, sticky=W)
85            
86            Label(frame, text="Steuerklasse:").grid(row=3, sticky=E)
87          self.stkl = IntVar()          self.stkl = IntVar()
88          stklframe = Frame(frame)          stklframe = Frame(frame)
89          stklframe.grid(row=2, column=1, sticky=W)          stklframe.grid(row=3, column=1, sticky=W)
90          for text, val in [("I", 1),          for text, val in [("I", 1),
91                            ("II", 2),                            ("II", 2),
92                            ("III", 3),                            ("III", 3),
# Line 90  class Lohnrechner(LST2008.LStRechner2008 Line 100  class Lohnrechner(LST2008.LStRechner2008
100                  stklradio.select()                  stklradio.select()
101              stklradio.pack(side=LEFT)              stklradio.pack(side=LEFT)
102    
103          Label(frame, text="Kirchensteuer:").grid(row=3, sticky=E)          Label(frame, text="Kirchensteuer:").grid(row=4, sticky=E)
104          self.kirche = IntVar()          self.kirche = IntVar()
105          Checkbutton(frame, onvalue=1, offvalue=0, command=self.NewInput,          Checkbutton(frame, onvalue=1, offvalue=0, command=self.NewInput,
106                      variable=self.kirche).grid(row=3, column=1,sticky=W)                      variable=self.kirche).grid(row=4, column=1,sticky=W)
107    
108          Label(frame, text="Kinderfreibetrag:").grid(row=4, sticky=E)          Label(frame, text="Kinderfreibetrag:").grid(row=5, sticky=E)
109          self.kfb = Entry(frame)          self.kfb = Entry(frame)
110          self.kfb.bind("<Return>", self.NewInput)          self.kfb.bind("<Return>", self.NewInput)
111          self.kfb.grid(row=4, column=1, sticky=W)          self.kfb.grid(row=5, column=1, sticky=W)
112    
113          Label(frame, text="Kinder:").grid(row=5, sticky=E)          Label(frame, text="Kinder:").grid(row=6, sticky=E)
114          self.kinder = IntVar()          self.kinder = IntVar()
115          self.kinderradio = Checkbutton(frame, onvalue=1, offvalue=0,          self.kinderradio = Checkbutton(frame, onvalue=1, offvalue=0,
116                                         command=self.NewInput,                                         command=self.NewInput,
117                                         variable=self.kinder)                                         variable=self.kinder)
118          self.kinderradio.grid(row=5, column=1, sticky=W)          self.kinderradio.grid(row=6, column=1, sticky=W)
119                    
120          Label(frame, text="Bundesland:").grid(row=6, sticky=NE)          Label(frame, text="Bundesland:").grid(row=7, sticky=NE)
121          landframe = Frame(frame)          landframe = Frame(frame)
122          scrollbar = Scrollbar(landframe, orient=VERTICAL)          scrollbar = Scrollbar(landframe, orient=VERTICAL)
123          self.landbox = Listbox(landframe, height=4, selectmode=SINGLE,          self.landbox = Listbox(landframe, height=4, selectmode=SINGLE,
# Line 119  class Lohnrechner(LST2008.LStRechner2008 Line 129  class Lohnrechner(LST2008.LStRechner2008
129          self.landbox.pack(side=RIGHT, fill=Y)          self.landbox.pack(side=RIGHT, fill=Y)
130          scrollbar.config(command=self.landbox.yview)          scrollbar.config(command=self.landbox.yview)
131          scrollbar.pack(side=LEFT, fill=BOTH, expand=1)          scrollbar.pack(side=LEFT, fill=BOTH, expand=1)
132          landframe.grid(row=6, rowspan=4, column=1, sticky=W)          landframe.grid(row=7, rowspan=4, column=1, sticky=W)
133                    
134          Label(frame, text="Lohnsteuer:").grid(row=0, column=2, sticky=E)          Label(frame, text="Lohnsteuer:").grid(row=0, column=2, sticky=E)
135          self.lst = Entry(frame)          self.lst = Entry(frame)
# Line 138  class Lohnrechner(LST2008.LStRechner2008 Line 148  class Lohnrechner(LST2008.LStRechner2008
148          self.netto1.grid(row=3, column=3, sticky=W)          self.netto1.grid(row=3, column=3, sticky=W)
149    
150          # Sozialversicherung Ein/Ausgabe          # Sozialversicherung Ein/Ausgabe
151          Label(frame, text="Sozialversicherung:").grid(row=10, sticky=E)          Label(frame, text="Sozialversicherung:").grid(row=11, sticky=E)
152          self.sozv = IntVar()          self.sozv = IntVar()
153          sozvradio = Checkbutton(frame, onvalue=1, offvalue=0,          sozvradio = Checkbutton(frame, onvalue=1, offvalue=0,
154                                  command=self.NewInput, variable=self.sozv)                                  command=self.NewInput, variable=self.sozv)
155          sozvradio.select()          sozvradio.select()
156          sozvradio.grid(row=10, column=1, sticky=W)          sozvradio.grid(row=11, column=1, sticky=W)
157    
158          Label(frame, text="Krankenkassenbeitrag:").grid(row=11, sticky=E)          Label(frame, text="Krankenkassenbeitrag:").grid(row=12, sticky=E)
159          self.kvsatz = Entry(frame)          self.kvsatz = Entry(frame)
160          self.kvsatz.bind("<Return>", self.NewInput)          self.kvsatz.bind("<Return>", self.NewInput)
161          self.kvsatz.grid(row=11, column=1, sticky=W)          self.kvsatz.grid(row=12, column=1, sticky=W)
162    
163          Label(frame, text="Krankenkassenzuschlag (0.9%):").grid(row=12, sticky=E)          Label(frame, text="Krankenkassenzuschlag (0.9%):").grid(row=13, sticky=E)
164          self.kvsoli = IntVar()          self.kvsoli = IntVar()
165          kvsoliradio = Checkbutton(frame, onvalue=1, offvalue=0,          kvsoliradio = Checkbutton(frame, onvalue=1, offvalue=0,
166                                    command=self.NewInput, variable=self.kvsoli)                                    command=self.NewInput, variable=self.kvsoli)
167          kvsoliradio.select()          kvsoliradio.select()
168          kvsoliradio.grid(row=12, column=1, sticky=W)          kvsoliradio.grid(row=13, column=1, sticky=W)
169    
170    
171          Label(frame, text="Rentenversicherung:").grid(row=4, column=2, sticky=E)          Label(frame, text="Rentenversicherung:").grid(row=4, column=2, sticky=E)
# Line 207  class Lohnrechner(LST2008.LStRechner2008 Line 217  class Lohnrechner(LST2008.LStRechner2008
217      def ResetInput(self):      def ResetInput(self):
218          self.ResetInputGeb()          self.ResetInputGeb()
219          self.ResetInputLohn()          self.ResetInputLohn()
220            self.ResetInputSonstBez()
221          self.ResetInputKfb()          self.ResetInputKfb()
222          self.ResetInputKVsatz()          self.ResetInputKVsatz()
223          self.NewLandSel()          self.NewLandSel()
# Line 219  class Lohnrechner(LST2008.LStRechner2008 Line 230  class Lohnrechner(LST2008.LStRechner2008
230          self.lohn.delete(0, END)          self.lohn.delete(0, END)
231          self.lohn.insert(0, "0")          self.lohn.insert(0, "0")
232    
233        def ResetInputSonstBez(self):
234            self.sonstbez.delete(0, END)
235            self.sonstbez.insert(0, "0")
236    
237      def ResetInputKfb(self):      def ResetInputKfb(self):
238          self.kfb.delete(0, END)          self.kfb.delete(0, END)
239          self.kfb.insert(0, "0")          self.kfb.insert(0, "0")
# Line 234  class Lohnrechner(LST2008.LStRechner2008 Line 249  class Lohnrechner(LST2008.LStRechner2008
249              self.ResetInputLohn()              self.ResetInputLohn()
250    
251          try:          try:
252                self.SetSonstigeBezuege(float(self.sonstbez.get()))
253            except:
254                self.ResetInputSonstBez()
255    
256            # JRE4: N�tig f�r Sonstige Bez�ge.
257            # Voraussichtlicher Jahresarbeitslohn ohne sonstige Bez�ge und ohne
258            # Verg�tung f�r mehrj�hrige T�tigkeit in Cent (ggf. 0)
259            # lohnrechner berechnet diesen aus dem monatlichen Lohn.
260            try:
261                self.Set_JRE4(round(float(self.lohn.get())*100.0,2)*12)
262            except:
263                pass
264    
265            # JVBEZ: N�tig f�r Sonstige Bez�ge.
266            # lohnrechner ber�cksichtigt keine Versorgungsbez�ge, daher 0.
267            self.Set_JVBEZ(0)
268    
269            try:
270              self.SetGeb(int(self.geb.get()))              self.SetGeb(int(self.geb.get()))
271          except:          except:
272              self.ResetInputGeb()              self.ResetInputGeb()
# Line 256  class Lohnrechner(LST2008.LStRechner2008 Line 289  class Lohnrechner(LST2008.LStRechner2008
289          self.InitCalc()          self.InitCalc()
290          self.Calc()          self.Calc()
291          self.lst.delete(0, END)          self.lst.delete(0, END)
292          self.lst.insert(0, "%.2f" % self.GetLohnsteuer())          self.lst.insert(0, "%.2f" % self.GetLohnsteuerGesamt())
293          self.soli.delete(0, END)          self.soli.delete(0, END)
294          self.soli.insert(0, "%.2f" % self.GetSoli())          self.soli.insert(0, "%.2f" % self.GetSoliGesamt())
295          self.kist.delete(0, END)          self.kist.delete(0, END)
296          self.kist.insert(0, "%.2f" % self.GetKirchensteuer())          self.kist.insert(0, "%.2f" % self.GetKirchensteuerGesamt())
297          netto1 = self.GetLohn() - self.GetLohnsteuer() \          netto1 = self.GetLohn() + self.GetSonstigeBezuege() \
298                   - self.GetSoli() - self.GetKirchensteuer()                   - self.GetLohnsteuerGesamt() \
299                     - self.GetSoliGesamt() - self.GetKirchensteuerGesamt()
300          self.netto1.delete(0, END)          self.netto1.delete(0, END)
301          self.netto1.insert(0, "%.2f" % netto1)          self.netto1.insert(0, "%.2f" % netto1)
302          self.rv.delete(0, END)          self.rv.delete(0, END)
# Line 312  Dieses Programm verwendet LST2008 %s" % Line 346  Dieses Programm verwendet LST2008 %s" %
346          self.KVsatz = (value / 100.0)          self.KVsatz = (value / 100.0)
347    
348      def GetAV(self):      def GetAV(self):
349          lohn = self.GetLohn()          lohn = self.GetLohnGesamt()
350          BMG2 = self.laender[self.land][3]          BMG2 = self.laender[self.land][3]
351          if lohn > BMG2 : lohn = BMG2          if lohn > BMG2 : lohn = BMG2
352          return round(self.sozv.get() * self.AVsatz * lohn, 2)          return round(self.sozv.get() * self.AVsatz * lohn, 2)
353    
354      def GetRV(self):      def GetRV(self):
355          lohn = self.GetLohn()          lohn = self.GetLohnGesamt()
356          BMG2 = self.laender[self.land][3]          BMG2 = self.laender[self.land][3]
357          if lohn > BMG2 : lohn = BMG2          if lohn > BMG2 : lohn = BMG2
358          return round(self.sozv.get() * self.RVsatz * lohn, 2)          return round(self.sozv.get() * self.RVsatz * lohn, 2)
359    
360      def GetPV(self):      def GetPV(self):
361          self.PVsatz = self.laender[self.land][2]          self.PVsatz = self.laender[self.land][2]
362          lohn = self.GetLohn()          lohn = self.GetLohnGesamt()
363          if lohn > self.BMG1 : lohn = self.BMG1          if lohn > self.BMG1 : lohn = self.BMG1
364          PV =  self.PVsatz * lohn          PV =  self.PVsatz * lohn
365          if self.kinder.get() == 0 :          if self.kinder.get() == 0 :
# Line 334  Dieses Programm verwendet LST2008 %s" % Line 368  Dieses Programm verwendet LST2008 %s" %
368    
369      def GetKV(self):      def GetKV(self):
370          self.KVsoli = self.kvsoli.get()          self.KVsoli = self.kvsoli.get()
371          lohn = self.GetLohn()          lohn = self.GetLohnGesamt()
372          if lohn > self.BMG1 : lohn = self.BMG1          if lohn > self.BMG1 : lohn = self.BMG1
373          if self.KVsoli :          if self.KVsoli :
374              return round(self.sozv.get() * ((self.KVsatz / 2) + 0.009) * lohn, 2)              return round(self.sozv.get() * ((self.KVsatz / 2) + 0.009) * lohn, 2)

Legend:
Removed from v.80  
changed lines
  Added in v.81

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26