-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfuehr_report.py
80 lines (70 loc) · 3.12 KB
/
fuehr_report.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import config
import mailer
import datetime
import dbcon
from dateutil.relativedelta import *
from datetime import date
personen = dbcon.personen()
abteilungsconfig = dbcon.abteilungsconfig()
for p in dbcon.persons_fuehr():
person = {}
person["id"] = str(p[0])
person["abteilung"] = str(p[1])
person["anrede"] = str(p[2])
person["name"] = str(p[3])
person["vorname"] = p[4]
person["fuehrerschein"] = p[5]
person["geburtstag"] = p[6]
person["pruefokdat"] = "N/A"
person["pruefnextdat"] = "N/A"
person["ungueltig"] = ""
pruefokdat = dbcon.pruefokdat_fuehr(p[0])
if isinstance(pruefokdat[0], datetime.date):
person["pruefokdat"] = pruefokdat[0].isoformat()
pruefnextdat = dbcon.pruefnextdat_fuehr(person["id"], pruefokdat)
if isinstance(pruefnextdat[0], datetime.date):
person["pruefnextdat"] = pruefnextdat[0].isoformat()
today = datetime.date.today()
if pruefnextdat[0] < today :
person["ungueltig"] = "<font color=red>ungültig</font>"
else:
if pruefnextdat[0] < today+relativedelta(months=3) :
person["ungueltig"] = "<font color=orange>kontaktieren!</font>"
else:
person["pruefnextdat"] = "N/A"
person["ungueltig"] = "<font color=red>ungültig</font>"
else :
pruefnextdat = dbcon.pruefnextdat_fuehr(person["id"])
if isinstance(pruefnextdat[0], datetime.date):
person["pruefnextdat"] = pruefnextdat[0].isoformat()
today = datetime.date.today()
if pruefnextdat[0] < today :
person["ungueltig"] = "<font color=red>ungültig</font>"
else:
if pruefnextdat[0] < today+relativedelta(months=3) :
person["ungueltig"] = "<font color=orange>kontaktieren!</font>"
else :
person["pruefnextdat"] = "N/A"
person["ungueltig"] = "<font color=red>ungültig</font>"
if abteilungsconfig[person["abteilung"]]["send_fuehr"] == "1":
person["fuehrerschein"] = person["fuehrerschein"].replace("C1", "XX")
person["fuehrerschein"] = person["fuehrerschein"].replace("c1", "XX")
# if it is a C1 only driver, overwrite ungueltig by green "U50"
if not "C" in person["fuehrerschein"] and "XX" in person["fuehrerschein"] :
if person["geburtstag"] >= today+relativedelta(years=-50) :
person["ungueltig"] = "<font color=green>U50</font>"
# if person["geburtstag"] >= today+relativedelta(months=-3,years=-50) :
# person["ungueltig"] = "<font color=orange>kontaktieren! bald 50!</font>"
if "C" in person["fuehrerschein"] or (abteilungsconfig[person["abteilung"]]["include_c1_drivers"] == "1" and "XX" in person["fuehrerschein"] ) :
person["fuehrerschein"] = person["fuehrerschein"].replace("XX", "C1")
personen[person["abteilung"]].append(person)
print("DEBUG: ================= personen dict ================= " )
print(personen)
print("DEBUG: ================= abteilungsconfig dict ================= ")
print(abteilungsconfig)
for k in personen.keys():
mailer.send_mail_fuehr(k, personen[k])
def yearsago(years, from_date=None):
if from_date is None:
from_date = datetime.now()
return from_date - relativedelta(years=years)