4 |
# $Id$ |
# $Id$ |
5 |
# -------------------------------------------------------------------- |
# -------------------------------------------------------------------- |
6 |
# |
# |
7 |
# Copyright (c) 2005 by Intevation GmbH |
# Copyright (c) 2005, 2006 by Intevation GmbH |
8 |
# Authors: |
# Authors: |
9 |
# Sascha Wilde <wilde@intevation.de> |
# Sascha Wilde <wilde@intevation.de> |
10 |
# |
# |
51 |
|
|
52 |
class LST: |
class LST: |
53 |
def __init__(self, |
def __init__(self, |
54 |
RE4=0, |
AJAHR =0, |
55 |
ALTER1=0, |
ALTER1=0, |
56 |
HINZUR=0, |
HINZUR=0, |
57 |
JFREIB=0, |
JFREIB=0, |
61 |
KRV =0, |
KRV =0, |
62 |
LZZ =2, |
LZZ =2, |
63 |
R =0, |
R =0, |
64 |
|
RE4 =0, |
65 |
SONSTB=0, |
SONSTB=0, |
66 |
|
STERBE=0, |
67 |
STKL =1, |
STKL =1, |
68 |
VBEZ =0, |
VBEZ =0, |
69 |
VBEZM =0, |
VBEZM =0, |
70 |
VBEZS =0, |
VBEZS =0, |
71 |
VBS =0, |
VBS =0, |
72 |
|
VJAHR =0, |
73 |
|
VKAPA =0, |
74 |
VMT =0, |
VMT =0, |
75 |
WFUNDF=0, |
WFUNDF=0, |
76 |
ZKF =0, |
ZKF =0, |
77 |
ZMVB =0): |
ZMVB =0): |
78 |
self.Set_RE4(RE4) |
self.Set_AJAHR(AJAHR) |
79 |
self.Set_ALTER1(ALTER1) |
self.Set_ALTER1(ALTER1) |
80 |
self.Set_HINZUR(HINZUR) |
self.Set_HINZUR(HINZUR) |
81 |
self.Set_JFREIB(JFREIB) |
self.Set_JFREIB(JFREIB) |
85 |
self.Set_KRV(KRV) |
self.Set_KRV(KRV) |
86 |
self.Set_LZZ(LZZ) |
self.Set_LZZ(LZZ) |
87 |
self.Set_R(R) |
self.Set_R(R) |
88 |
|
self.Set_RE4(RE4) |
89 |
self.Set_SONSTB(SONSTB) |
self.Set_SONSTB(SONSTB) |
90 |
|
self.Set_STERBE(STERBE) |
91 |
self.Set_STKL(STKL) |
self.Set_STKL(STKL) |
92 |
self.Set_VBEZ(VBEZ) |
self.Set_VBEZ(VBEZ) |
93 |
self.Set_VBEZM(VBEZM) |
self.Set_VBEZM(VBEZM) |
94 |
self.Set_VBEZS(VBEZS) |
self.Set_VBEZS(VBEZS) |
95 |
self.Set_VBS(VBS) |
self.Set_VBS(VBS) |
96 |
|
self.Set_VJAHR(VJAHR) |
97 |
|
self.Set_VKAPA(VKAPA) |
98 |
self.Set_VMT(VMT) |
self.Set_VMT(VMT) |
99 |
self.Set_WFUNDF(WFUNDF) |
self.Set_WFUNDF(WFUNDF) |
100 |
self.Set_ZKF(ZKF) |
self.Set_ZKF(ZKF) |
125 |
self._EFA = 0 |
self._EFA = 0 |
126 |
self._FVB = 0 |
self._FVB = 0 |
127 |
self._FVBZ = 0 |
self._FVBZ = 0 |
128 |
|
self._HFVB = 0 |
129 |
|
self._J = 0 |
130 |
self._JBMG = 0 |
self._JBMG = 0 |
131 |
self._JW = 0 |
self._JW = 0 |
132 |
|
self._K = 0 |
133 |
self._KENNZ = 0 |
self._KENNZ = 0 |
134 |
self._KFB = 0 |
self._KFB = 0 |
135 |
self._KZTAB = 1 |
self._KZTAB = 1 |
148 |
self._ST = 0 |
self._ST = 0 |
149 |
self._ST1 = 0 |
self._ST1 = 0 |
150 |
self._ST2 = 0 |
self._ST2 = 0 |
151 |
|
self._TAB1=(None, # 1 als erstes Element, wie im PAP |
152 |
|
0.400, # bis 2005 |
153 |
|
0.384, # 2006 |
154 |
|
0.368, # 2007 |
155 |
|
0.352, # 2008 |
156 |
|
0.336, # 2009 |
157 |
|
0.320, # 2010 |
158 |
|
0.304, # 2011 |
159 |
|
0.288, # 2012 |
160 |
|
0.272, # 2013 |
161 |
|
0.256, # 2014 |
162 |
|
0.240, # 2015 |
163 |
|
0.224, # 2016 |
164 |
|
0.208, # 2017 |
165 |
|
0.192, # 2018 |
166 |
|
0.176, # 2019 |
167 |
|
0.160, # 2020 |
168 |
|
0.152, # 2021 |
169 |
|
0.144, # 2022 |
170 |
|
0.136, # 2023 |
171 |
|
0.128, # 2024 |
172 |
|
0.120, # 2025 |
173 |
|
0.112, # 2026 |
174 |
|
0.104, # 2027 |
175 |
|
0.096, # 2028 |
176 |
|
0.088, # 2029 |
177 |
|
0.080, # 2030 |
178 |
|
0.072, # 2031 |
179 |
|
0.064, # 2032 |
180 |
|
0.056, # 2033 |
181 |
|
0.048, # 2034 |
182 |
|
0.040, # 2035 |
183 |
|
0.032, # 2036 |
184 |
|
0.024, # 2037 |
185 |
|
0.016, # 2038 |
186 |
|
0.008, # 2039 |
187 |
|
0.000) # 2040 |
188 |
|
self._TAB2=(None, # 1 als erstes Element, wie im PAP |
189 |
|
3000, # bis 2005 |
190 |
|
2880, # 2006 |
191 |
|
2760, # 2007 |
192 |
|
2640, # 2008 |
193 |
|
2520, # 2009 |
194 |
|
2400, # 2010 |
195 |
|
2280, # 2011 |
196 |
|
2160, # 2012 |
197 |
|
2040, # 2013 |
198 |
|
1920, # 2014 |
199 |
|
1800, # 2015 |
200 |
|
1680, # 2016 |
201 |
|
1560, # 2017 |
202 |
|
1440, # 2018 |
203 |
|
1320, # 2019 |
204 |
|
1200, # 2020 |
205 |
|
1140, # 2021 |
206 |
|
1080, # 2022 |
207 |
|
1020, # 2023 |
208 |
|
960, # 2024 |
209 |
|
900, # 2025 |
210 |
|
840, # 2026 |
211 |
|
780, # 2027 |
212 |
|
720, # 2028 |
213 |
|
660, # 2029 |
214 |
|
600, # 2030 |
215 |
|
540, # 2031 |
216 |
|
480, # 2032 |
217 |
|
420, # 2033 |
218 |
|
360, # 2034 |
219 |
|
300, # 2035 |
220 |
|
240, # 2036 |
221 |
|
180, # 2037 |
222 |
|
120, # 2038 |
223 |
|
60, # 2039 |
224 |
|
0) # 2040 |
225 |
|
self._TAB3=(None, # 1 als erstes Element, wie im PAP |
226 |
|
900, # bis 2005 |
227 |
|
864, # 2006 |
228 |
|
828, # 2007 |
229 |
|
792, # 2008 |
230 |
|
756, # 2009 |
231 |
|
720, # 2010 |
232 |
|
684, # 2011 |
233 |
|
648, # 2012 |
234 |
|
612, # 2013 |
235 |
|
576, # 2014 |
236 |
|
540, # 2015 |
237 |
|
504, # 2016 |
238 |
|
468, # 2017 |
239 |
|
432, # 2018 |
240 |
|
396, # 2019 |
241 |
|
360, # 2020 |
242 |
|
342, # 2021 |
243 |
|
324, # 2022 |
244 |
|
306, # 2023 |
245 |
|
288, # 2024 |
246 |
|
270, # 2025 |
247 |
|
252, # 2026 |
248 |
|
234, # 2027 |
249 |
|
216, # 2028 |
250 |
|
198, # 2029 |
251 |
|
180, # 2030 |
252 |
|
162, # 2031 |
253 |
|
144, # 2032 |
254 |
|
126, # 2033 |
255 |
|
108, # 2034 |
256 |
|
90, # 2035 |
257 |
|
72, # 2036 |
258 |
|
54, # 2037 |
259 |
|
36, # 2038 |
260 |
|
18, # 2039 |
261 |
|
0) # 2040 |
262 |
|
self._TAB4=self._TAB1 |
263 |
|
self._TAB5=(None, # 1 als erstes Element, wie im PAP |
264 |
|
1900, # bis 2005 |
265 |
|
1824, # 2006 |
266 |
|
1748, # 2007 |
267 |
|
1672, # 2008 |
268 |
|
1596, # 2009 |
269 |
|
1520, # 2010 |
270 |
|
1444, # 2011 |
271 |
|
1368, # 2012 |
272 |
|
1292, # 2013 |
273 |
|
1216, # 2014 |
274 |
|
1140, # 2015 |
275 |
|
1064, # 2016 |
276 |
|
988, # 2017 |
277 |
|
912, # 2018 |
278 |
|
836, # 2019 |
279 |
|
760, # 2020 |
280 |
|
722, # 2021 |
281 |
|
684, # 2022 |
282 |
|
646, # 2023 |
283 |
|
608, # 2024 |
284 |
|
570, # 2025 |
285 |
|
532, # 2026 |
286 |
|
494, # 2027 |
287 |
|
456, # 2028 |
288 |
|
418, # 2029 |
289 |
|
380, # 2030 |
290 |
|
342, # 2031 |
291 |
|
304, # 2032 |
292 |
|
266, # 2033 |
293 |
|
228, # 2034 |
294 |
|
190, # 2035 |
295 |
|
152, # 2036 |
296 |
|
114, # 2037 |
297 |
|
76, # 2038 |
298 |
|
38, # 2039 |
299 |
|
0) # 2040 |
300 |
self._VBEZB = 0 |
self._VBEZB = 0 |
301 |
self._VHB = 0 |
self._VHB = 0 |
302 |
self._VSP = 0.0 # 2 Dezimalstellen |
self._VSP = 0.0 # 2 Dezimalstellen |
315 |
self._ZRE4VP = 0.0 # 2 Dezimalstellen |
self._ZRE4VP = 0.0 # 2 Dezimalstellen |
316 |
self._ZRE4VP1 = 0.0 # 2 Dezimalstellen |
self._ZRE4VP1 = 0.0 # 2 Dezimalstellen |
317 |
self._ZTABFB = 0 |
self._ZTABFB = 0 |
318 |
|
self._ZVBEZ = 0 |
319 |
self._ZVE = 0 |
self._ZVE = 0 |
320 |
self._ZX = 0 |
self._ZX = 0 |
321 |
self._ZZX = 0 |
self._ZZX = 0 |
344 |
self._MSOLZ() |
self._MSOLZ() |
345 |
self._MSONST() |
self._MSONST() |
346 |
self._MVMT() |
self._MVMT() |
347 |
|
|
348 |
# Benutzte Unterprogramme: |
# Benutzte Unterprogramme: |
349 |
def _MRE4LZZ(self): |
def _MRE4LZZ(self): |
350 |
if self.VBEZ == 0: |
if self.VBEZ == 0: |
397 |
if self.RE4 > self.VBEZ: |
if self.RE4 > self.VBEZ: |
398 |
self._ANP += 920 |
self._ANP += 920 |
399 |
else: |
else: |
400 |
self._ANP = 0 |
self._ANP = 0 |
401 |
if self.STKL == 1: |
if self.STKL == 1: |
402 |
self._SAP = 36 |
self._SAP = 36 |
403 |
self._KFB = self.ZKF * 5808 |
self._KFB = self.ZKF * 5808 |
421 |
if self.STKL < 5: |
if self.STKL < 5: |
422 |
self._UPEVP() |
self._UPEVP() |
423 |
else: |
else: |
424 |
self._VSP = 0.0 |
self._VSP = 0.0 |
425 |
self._ZVE = self._ZRE4 - self._ZTABFB - self._VSP |
self._ZVE = self._ZRE4 - self._ZTABFB - self._VSP |
426 |
if self._ZVE < 1: |
if self._ZVE < 1: |
427 |
self._ZVE = self._X = 0.0 |
self._ZVE = self._X = 0.0 |
549 |
self._ANTEIL2 = ceil(self._JW * 7 / 360.0) |
self._ANTEIL2 = ceil(self._JW * 7 / 360.0) |
550 |
else: |
else: |
551 |
self._ANTEIL1 = floor(self._JW / 360.0) |
self._ANTEIL1 = floor(self._JW / 360.0) |
552 |
self._ANTEIL2 = ceil(self._JW / 360.0) |
self._ANTEIL2 = ceil(self._JW / 360.0) |
553 |
|
|
554 |
def _UPTAB05(self): |
def _UPTAB05(self): |
555 |
if self._X < 7665: |
if self._X < 7665: |
626 |
old_lzz = self.LZZ |
old_lzz = self.LZZ |
627 |
old_vbez = self.VBEZ |
old_vbez = self.VBEZ |
628 |
old_re4 = self.RE4 |
old_re4 = self.RE4 |
629 |
# ------------------------------ |
# ------------------------------ |
630 |
self.LZZ = 1 |
self.LZZ = 1 |
631 |
self.VBEZ = self.JVBEZ + self.VBS |
self.VBEZ = self.JVBEZ + self.VBS |
632 |
self.RE4 = self.JRE4 + self.SONSTB |
self.RE4 = self.JRE4 + self.SONSTB |
675 |
|
|
676 |
# Methoden zum gepr�ften setzen der Wert |
# Methoden zum gepr�ften setzen der Wert |
677 |
# FIX ME: Pr�fung _sehr_ unvollst�ndig |
# FIX ME: Pr�fung _sehr_ unvollst�ndig |
678 |
def Set_RE4(self, value): |
|
679 |
assert value >= 0, "must not be negative" |
def Set_AJAHR(self, value): |
680 |
self.RE4 = value |
self.HINZUR = value |
681 |
|
|
682 |
def Set_ALTER1(self, value): |
def Set_ALTER1(self, value): |
683 |
assert value in (0,1), "must be 0 or 1" |
assert value in (0,1), "must be 0 or 1" |
684 |
self.ALTER1 = value |
self.ALTER1 = value |
685 |
|
|
686 |
def Set_HINZUR(self, value): |
def Set_HINZUR(self, value): |
687 |
self.HINZUR = value |
self.HINZUR = value |
688 |
|
|
689 |
def Set_JFREIB(self, value): |
def Set_JFREIB(self, value): |
690 |
self.JFREIB = value |
self.JFREIB = value |
691 |
|
|
692 |
def Set_JHINZU(self, value): |
def Set_JHINZU(self, value): |
693 |
self.JHINZU = value |
self.JHINZU = value |
694 |
|
|
695 |
def Set_JRE4(self, value): |
def Set_JRE4(self, value): |
696 |
self.JRE4 = value |
self.JRE4 = value |
697 |
|
|
698 |
def Set_JVBEZ(self, value): |
def Set_JVBEZ(self, value): |
699 |
self.JVBEZ = value |
self.JVBEZ = value |
700 |
|
|
701 |
def Set_KRV(self, value): |
def Set_KRV(self, value): |
702 |
assert value in (0,1), "must be 0 or 1" |
assert value in (0,1), "must be 0 or 1" |
703 |
self.KRV = value |
self.KRV = value |
704 |
|
|
705 |
def Set_LZZ(self, value): |
def Set_LZZ(self, value): |
706 |
assert value in (1,2,3,4), \ |
assert value in (1,2,3,4), \ |
707 |
"must be in range 1-4 (JAHR, MONAT, WOCHE, TAG)" |
"must be in range 1-4 (JAHR, MONAT, WOCHE, TAG)" |
708 |
self.LZZ = value |
self.LZZ = value |
709 |
|
|
710 |
def Set_R(self, value): |
def Set_R(self, value): |
711 |
assert value >= 0.0 and value <= 100.0, \ |
assert value >= 0.0 and value <= 100.0, \ |
712 |
"must be in range 0.0-100.0 (Percent)" |
"must be in range 0.0-100.0 (Percent)" |
713 |
self.R = value |
self.R = value |
714 |
|
|
715 |
|
def Set_RE4(self, value): |
716 |
|
assert value >= 0, "must not be negative" |
717 |
|
self.RE4 = value |
718 |
|
|
719 |
def Set_SONSTB(self, value): |
def Set_SONSTB(self, value): |
720 |
self.SONSTB = value |
self.SONSTB = value |
721 |
|
|
722 |
|
def Set_STERBE(self, value): |
723 |
|
self.STERBE = value |
724 |
|
|
725 |
def Set_STKL(self, value): |
def Set_STKL(self, value): |
726 |
assert value in (1,2,3,4,5,6), \ |
assert value in (1,2,3,4,5,6), \ |
727 |
"must be in range 1-6 (I II III IV V VI)" |
"must be in range 1-6 (I II III IV V VI)" |
728 |
self.STKL = value |
self.STKL = value |
729 |
|
|
730 |
def Set_VBEZ(self, value): |
def Set_VBEZ(self, value): |
731 |
self.VBEZ = value |
self.VBEZ = value |
732 |
|
|
739 |
def Set_VBS(self, value): |
def Set_VBS(self, value): |
740 |
self.VBS = value |
self.VBS = value |
741 |
|
|
742 |
|
def Set_VJAHR(self, value): |
743 |
|
self.VJAHR = value |
744 |
|
|
745 |
|
def Set_VKAPA(self, value): |
746 |
|
self.VKAPA = value |
747 |
|
|
748 |
def Set_VMT(self, value): |
def Set_VMT(self, value): |
749 |
self.VMT = value |
self.VMT = value |
750 |
|
|
756 |
value >= 0, \ |
value >= 0, \ |
757 |
"must be positive, and must not have more than one decimal digit" |
"must be positive, and must not have more than one decimal digit" |
758 |
self.ZKF = value |
self.ZKF = value |
759 |
|
|
760 |
def Set_ZMVB(self, value): |
def Set_ZMVB(self, value): |
761 |
self.ZMVB = value |
self.ZMVB = value |
762 |
|
|
770 |
class LStRechner2005(LST): |
class LStRechner2005(LST): |
771 |
def __init__(self): |
def __init__(self): |
772 |
LST.__init__(self) |
LST.__init__(self) |
773 |
|
|
774 |
def SetLohn(self, lohn): |
def SetLohn(self, lohn): |
775 |
"""Setzt Lohn in Euro.Cent""" |
"""Setzt Lohn in Euro.Cent""" |
776 |
self.Set_RE4(round (lohn * 100.0)) |
self.Set_RE4(round (lohn * 100.0)) |