conn.commit()
+def mark_pay(outdir):
+ betrag = int(raw_input("Betrag: "))
+
+ template = env.get_template('eingangsbestaetigung.eml')
+
+ while True:
+ uid = raw_input("User: ")
+ if uid == "":
+ break
+ uid = int(uid)
+ conn.execute("UPDATE teilnehmer SET bezahlt = ? WHERE id = ?", [betrag, uid])
+ vorname, nachname, email = conn.execute("SELECT vorname, nachname, email FROM teilnehmer WHERE id = ?", [uid]).fetchone()
+
+ with open(os.path.join(outdir, email), 'w') as f:
+ f.write(template.render(vorname=vorname.decode('utf-8'),
+ nachname=nachname.decode('utf-8'),
+ email=email.decode('utf-8'),
+ betrag=betrag).encode('utf-8'))
+
+ conn.commit()
def create_mail(outdir='output'):
def gen_rechnung(tshirt, zipper):
kosten += ' '*2 + 29*'-' + '+' + 6*'-' + '\n'
kosten += u"%s | %s\n" % (u" Summe".ljust(30), "%2d.00" % preis)
- return kosten
+ return kosten, preis
def gen_token(id, vorname, nachname):
return u"%s-%s-%s" % (id, nachname.decode('utf-8').upper(), vorname.decode('utf-8').upper())
for id, vorname, nachname, email, tshirt, zipper in \
conn.execute("SELECT id, vorname, nachname, email, tshirt, zipper FROM teilnehmer WHERE emailsent = 0"):
+ rechnung, preis = gen_rechnung(tshirt, zipper)
+
with open(os.path.join(outdir, email), 'w') as f:
f.write(template.render(vorname=vorname.decode('utf-8'),
nachname=nachname.decode('utf-8'),
email=email.decode('utf-8'),
token=gen_token(id, vorname, nachname),
- rechnung=gen_rechnung(tshirt, zipper)).encode('utf-8'))
+ rechnung=rechnung).encode('utf-8'))
- conn.execute("UPDATE teilnehmer set emailsent = ? WHERE id = ?", [datetime.datetime.now().isoformat(), id])
+ conn.execute("UPDATE teilnehmer set emailsent = ?, betrag = ? WHERE id = ?", [datetime.datetime.now().isoformat(),
+ preis, id])
conn.commit()
def create_nametag(outdir='output'):
help='Generiere Nametags')
group.add_argument('--email', action='store_true',
help='Generiere E-Mails mit Überweisungsinformationen')
-
+ group.add_argument('--pay', action='store_true',
+ help='Speichere Zahlungseingang')
+
# Argumente
parser.add_argument('--db', default='teilnehmer.sqlite',
help='Teilnehmerdatenbank')
conn = sqlite3.connect(args.db)
conn.text_factory = str
- if args.nametag or args.email:
+ if args.nametag or args.email or args.pay:
assert(args.output)
if not os.path.exists(args.output):
os.mkdir(args.output)
create_nametag(args.output)
elif args.email:
create_mail(args.output)
+ elif args.pay:
+ mark_pay(args.output)
elif args.importcsv:
assert(args.input)