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

Annotation of /trunk/lohnrechner2007.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 23 - (hide annotations)
Fri Jan 14 13:46:49 2005 UTC (20 years, 3 months ago) by wilde
Original Path: trunk/RCS/lohnrechner.py
File MIME type: text/x-python
File size: 6601 byte(s)
Zwei kleine Bugfixes

1 wilde 6 #! /usr/bin/python
2 wilde 19 # -*- coding: iso-8859-1 -*-
3 wilde 6 # --------------------------------------------------------------------
4     # Lohnsteuer und Sozialabgaben Rechner
5     # $Id$
6     # --------------------------------------------------------------------
7     #
8     # Copyright (c) 2005 by Intevation GmbH
9     # Authors:
10     # Sascha Wilde <[email protected]>
11     #
12     # This program is free software under the GPL (>=v2)
13     # Read the file COPYING coming with this package for details.
14    
15     """Lohn/Gehaltsrechner für das Jahr 2005"""
16    
17 wilde 7 __version__ = "$Revision$"
18     # $Source$
19    
20 wilde 21 _release_version = "0.%s beta" % __version__[11:-2]
21 wilde 7
22 wilde 6 import LST2005
23     from Tkinter import *
24    
25     class Lohnrechner(LST2005.LStRechner2005):
26    
27     def __init__(self, root):
28     LST2005.LStRechner2005.__init__(self)
29    
30 wilde 22 # Land, Kirchensteuersatz
31     self.laender = [("Baden-Württemberg", 8),
32     ("Bayern", 8),
33     ("Berlin", 9),
34     ("Brandenburg", 9),
35     ("Bremen", 9),
36     ("Bremerhaven", 9),
37     ("Hamburg", 9),
38     ("Hessen", 9),
39     ("Mecklenburg-Vorpommern", 9),
40     ("Niedersachsen" ,9),
41     ("Nordrhein-Westfalen", 9),
42     ("Rheinland-Pfalz", 9),
43     ("Saarland", 9),
44     ("Sachsen", 9),
45     ("Sachsen-Anhalt", 9),
46     ("Schleswig-Holstein", 9),
47     ("Thüringen", 9)]
48    
49 wilde 7 root.title("Lohnrechner 2005 - v%s" % _release_version)
50 wilde 17 root.resizable(NO, NO)
51     self.root = root
52 wilde 7
53 wilde 22 frame = Frame(root)
54     frame.grid(padx=10, pady=10)
55    
56     Label(frame, text="Lohn:").grid(row=0, sticky=E)
57     self.lohn = Entry(frame)
58 wilde 9 self.lohn.bind("<Return>", self.NewInput)
59 wilde 6 self.lohn.grid(row=0, column=1, sticky=W)
60    
61 wilde 22 Label(frame, text="Steuerklasse:").grid(row=1, sticky=E)
62 wilde 21 self.stkl = IntVar()
63 wilde 22 stklframe = Frame(frame)
64 wilde 6 stklframe.grid(row=1, column=1, sticky=W)
65 wilde 21 for text, val in [("I", 1),
66     ("II", 2),
67     ("III", 3),
68     ("IV", 4),
69     ("V", 5),
70     ("VI", 6)]:
71 wilde 6 stklradio = Radiobutton(stklframe, text=text, value=val,
72 wilde 9 indicatoron=0, command=self.CalcOutput,
73 wilde 6 variable=self.stkl)
74     if text == "I":
75     stklradio.select()
76     stklradio.pack(side=LEFT)
77    
78 wilde 22 Label(frame, text="Kirchensteuer:").grid(row=2, sticky=E)
79     self.kirche = IntVar()
80     kircheradio = Checkbutton(frame, onvalue=1, offvalue=0,
81     command=self.CalcOutput,
82     variable=self.kirche).grid(row=2, column=1, sticky=W)
83 wilde 10
84 wilde 22 Label(frame, text="Kinderfreibetrag:").grid(row=3, sticky=E)
85     self.kfb = Entry(frame)
86 wilde 19 self.kfb.bind("<Return>", self.NewInput)
87     self.kfb.grid(row=3, column=1, sticky=W)
88    
89 wilde 22 Label(frame, text="Bundesland:").grid(row=4, sticky=E)
90     landframe = Frame(frame)
91     scrollbar = Scrollbar(landframe, orient=VERTICAL)
92     self.land = Listbox(landframe, height=4, selectmode=SINGLE,
93     yscrollcommand=scrollbar.set)
94     for land in self.laender:
95     self.land.insert(END, land[0])
96     self.land.select_set(0)
97 wilde 23 self.land.bind("<<ListboxSelect>>", self.NewInput)
98 wilde 22 self.land.pack(side=RIGHT, fill=Y)
99     scrollbar.config(command=self.land.yview)
100     scrollbar.pack(side=LEFT, fill=BOTH, expand=1)
101     landframe.grid(row=4, column=1, sticky=W)
102    
103 wilde 6 self.ResetInput()
104    
105 wilde 22 Label(frame, text="Lohnsteuer:").grid(row=0, column=2, sticky=E)
106     self.lst = Entry(frame)
107 wilde 6 self.lst.grid(row=0, column=3, sticky=W)
108    
109 wilde 22 Label(frame, text="Solidaritätszuschlag:").grid(row=1, column=2, sticky=E)
110     self.soli = Entry(frame)
111 wilde 6 self.soli.grid(row=1, column=3, sticky=W)
112    
113 wilde 22 Label(frame, text="Kirchensteuer:").grid(row=2, column=2, sticky=E)
114     self.kist = Entry(frame)
115 wilde 16 self.kist.grid(row=2, column=3, sticky=W)
116 wilde 10
117 wilde 22 buttons = Frame(frame)
118     buttons.grid(row=4, column=2, columnspan=2)
119 wilde 17 Button(buttons, text="Quit", command=root.quit).pack(side=LEFT)
120     Button(buttons, text="Info", command=self.Info).pack(side=LEFT)
121     Button(buttons, text="Berechnen", command=self.CalcOutput).pack(side=LEFT)
122 wilde 6
123     self.CalcOutput()
124 wilde 9
125     def NewInput(self, event):
126     self.CalcOutput()
127    
128 wilde 6 def ResetInput(self):
129 wilde 9 self.ResetInputLohn()
130 wilde 23 self.ResetInputKfb()
131 wilde 9
132     def ResetInputLohn(self):
133     self.lohn.delete(0, END)
134 wilde 6 self.lohn.insert(0, "0")
135 wilde 10
136 wilde 19 def ResetInputKfb(self):
137     self.kfb.delete(0, END)
138     self.kfb.insert(0, "0")
139    
140 wilde 6 def InitCalc(self):
141 wilde 9 try:
142     self.SetLohn(float(self.lohn.get()))
143     except:
144     self.ResetInputLohn()
145 wilde 10
146 wilde 19 try:
147     self.SetKinderfreibetrag(float(self.kfb.get()))
148     except:
149     self.ResetInputKfb()
150    
151 wilde 21 self.SetSteuerklasse(self.stkl.get())
152 wilde 22 self.SetKirchensteuer(self.kirche.get() *
153     self.laender[int(self.land.curselection()[0])][1])
154 wilde 6
155     def CalcOutput(self):
156     self.InitCalc()
157     self.Calc()
158     self.lst.delete(0, END)
159     self.lst.insert(0, "%.2f" % self.GetLohnsteuer())
160     self.soli.delete(0, END)
161     self.soli.insert(0, "%.2f" % self.GetSoli())
162 wilde 16 self.kist.delete(0, END)
163     self.kist.insert(0, "%.2f" % self.GetKirchensteuer())
164 wilde 6
165 wilde 17 def Info(self):
166     infowin = Toplevel(self.root)
167     infowin.title("Info")
168 wilde 18 Label(infowin, text="Lohnrechner 2005 v%s" % _release_version,
169 wilde 17 font=("Times", 14, "bold italic")).grid(row=0, pady=20)
170     Label(infowin, text=
171     "Copyright (C) 2005 Intevation GmbH \n\n\
172     Lohnrechner 2005 comes with ABSOLUTELY NO WARRANTY.\n\
173     This is free software, and you are welcome to redistribute it\n\
174     under the terms of the GNU General Public License.\n\
175     For more information about these matters, see the file named COPYING.\n\n\
176     Dieses Programm verwendet LST2005 %s" % LST2005._ModulVersion()).grid(row=1, padx=10)
177     Button(infowin, text="Ok", command=infowin.destroy).grid(row=2, pady=10)
178 wilde 6
179 wilde 17
180 wilde 6 if __name__ == "__main__":
181     root = Tk()
182     lr = Lohnrechner(root)
183     root.mainloop()
184    

Properties

Name Value
svn:eol-style native
svn:executable *
svn:keywords Author Date Id Revision

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26