--- lohnrechner.py 2006/01/23 17:07:57 51 +++ lohnrechner.py 2006/01/25 11:45:40 55 @@ -17,7 +17,7 @@ __version__ = "$Revision$" # $Source$ -_release_version = "0.%s beta" % __version__[11:-2] +_release_version = "0.%s" % __version__[11:-2] import LST2006 from Tkinter import * @@ -62,15 +62,20 @@ frame.grid(padx=10, pady=10) # Steuern Ein/Ausgabe - Label(frame, text="Lohn (monatlich):").grid(row=0, sticky=E) + Label(frame, text="Geburtsjahr:").grid(row=0, sticky=E) + self.geb = Entry(frame) + self.geb.bind("", self.NewInput) + self.geb.grid(row=0, column=1, sticky=W) + + Label(frame, text="Lohn (monatlich):").grid(row=1, sticky=E) self.lohn = Entry(frame) self.lohn.bind("", self.NewInput) - self.lohn.grid(row=0, column=1, sticky=W) + self.lohn.grid(row=1, column=1, sticky=W) - Label(frame, text="Steuerklasse:").grid(row=1, sticky=E) + Label(frame, text="Steuerklasse:").grid(row=2, sticky=E) self.stkl = IntVar() stklframe = Frame(frame) - stklframe.grid(row=1, column=1, sticky=W) + stklframe.grid(row=2, column=1, sticky=W) for text, val in [("I", 1), ("II", 2), ("III", 3), @@ -84,17 +89,17 @@ stklradio.select() stklradio.pack(side=LEFT) - Label(frame, text="Kirchensteuer:").grid(row=2, sticky=E) + Label(frame, text="Kirchensteuer:").grid(row=3, sticky=E) self.kirche = IntVar() Checkbutton(frame, onvalue=1, offvalue=0, command=self.NewInput, - variable=self.kirche).grid(row=2, column=1,sticky=W) + variable=self.kirche).grid(row=3, column=1,sticky=W) - Label(frame, text="Kinderfreibetrag:").grid(row=3, sticky=E) + Label(frame, text="Kinderfreibetrag:").grid(row=4, sticky=E) self.kfb = Entry(frame) self.kfb.bind("", self.NewInput) - self.kfb.grid(row=3, column=1, sticky=W) + self.kfb.grid(row=4, column=1, sticky=W) - Label(frame, text="Bundesland:").grid(row=4, sticky=NE) + Label(frame, text="Bundesland:").grid(row=5, sticky=NE) landframe = Frame(frame) scrollbar = Scrollbar(landframe, orient=VERTICAL) self.landbox = Listbox(landframe, height=4, selectmode=SINGLE, @@ -106,7 +111,7 @@ self.landbox.pack(side=RIGHT, fill=Y) scrollbar.config(command=self.landbox.yview) scrollbar.pack(side=LEFT, fill=BOTH, expand=1) - landframe.grid(row=4, rowspan=4, column=1, sticky=W) + landframe.grid(row=5, rowspan=4, column=1, sticky=W) Label(frame, text="Lohnsteuer:").grid(row=0, column=2, sticky=E) self.lst = Entry(frame) @@ -125,24 +130,24 @@ self.netto1.grid(row=3, column=3, sticky=W) # Sozialversicherung Ein/Ausgabe - Label(frame, text="Sozialversicherung:").grid(row=8, sticky=E) + Label(frame, text="Sozialversicherung:").grid(row=9, sticky=E) self.sozv = IntVar() sozvradio = Checkbutton(frame, onvalue=1, offvalue=0, command=self.NewInput, variable=self.sozv) sozvradio.select() - sozvradio.grid(row=8, column=1, sticky=W) + sozvradio.grid(row=9, column=1, sticky=W) - Label(frame, text="Krankenkassenbeitrag:").grid(row=9, sticky=E) + Label(frame, text="Krankenkassenbeitrag:").grid(row=10, sticky=E) self.kvsatz = Entry(frame) self.kvsatz.bind("", self.NewInput) - self.kvsatz.grid(row=9, column=1, sticky=W) + self.kvsatz.grid(row=10, column=1, sticky=W) - Label(frame, text="Krankenkassenzuschlag (0.9%):").grid(row=10, sticky=E) + Label(frame, text="Krankenkassenzuschlag (0.9%):").grid(row=11, sticky=E) self.kvsoli = IntVar() kvsoliradio = Checkbutton(frame, onvalue=1, offvalue=0, command=self.NewInput, variable=self.kvsoli) kvsoliradio.select() - kvsoliradio.grid(row=10, column=1, sticky=W) + kvsoliradio.grid(row=11, column=1, sticky=W) Label(frame, text="Rentenversicherung:").grid(row=4, column=2, sticky=E) @@ -168,7 +173,7 @@ # Allgemeine UI Elemente buttons = Frame(frame) - buttons.grid(row=9, column=2, rowspan=2, columnspan=2) + buttons.grid(row=10, column=2, rowspan=2, columnspan=2) Button(buttons, text="Quit", command=self.root.quit).pack(side=LEFT) Button(buttons, text="Info", command=self.Info).pack(side=LEFT) Button(buttons, text="Berechnen", command=self.CalcOutput).pack(side=LEFT) @@ -190,11 +195,16 @@ self.CalcOutput() def ResetInput(self): + self.ResetInputGeb() self.ResetInputLohn() self.ResetInputKfb() self.ResetInputKVsatz() self.NewLandSel() + def ResetInputGeb(self): + self.geb.delete(0, END) + self.geb.insert(0, "1964") + def ResetInputLohn(self): self.lohn.delete(0, END) self.lohn.insert(0, "0") @@ -214,6 +224,11 @@ self.ResetInputLohn() try: + self.SetGeb(int(self.geb.get())) + except: + self.ResetInputGeb() + + try: self.SetKinderfreibetrag(float(self.kfb.get())) except: self.ResetInputKfb()