X-Git-Url: https://git.siccegge.de//index.cgi?a=blobdiff_plain;ds=sidebyside;f=teilnehmertool.py;h=b11b6882567448aaf48b38ff0105803337e084b5;hb=a0b00470ee8d2ddb81d057e054c960214ad169f3;hp=098f44f211a1e7f3e4bd40ffbbb4011fabda0df4;hpb=cb6b44b95739a8cc4eb0197aaf104a6c145b6a4b;p=teilnehmertool.git diff --git a/teilnehmertool.py b/teilnehmertool.py index 098f44f..b11b688 100755 --- a/teilnehmertool.py +++ b/teilnehmertool.py @@ -30,15 +30,24 @@ def import_teilnehmer(input): conn.commit() -def mark_pay(): +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() @@ -54,7 +63,7 @@ def create_mail(outdir='output'): 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()) @@ -64,14 +73,17 @@ def create_mail(outdir='output'): 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'): @@ -114,7 +126,7 @@ def main(): 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) @@ -123,14 +135,13 @@ def main(): create_nametag(args.output) elif args.email: create_mail(args.output) + elif args.pay: + mark_pay(args.output) elif args.importcsv: assert(args.input) import_teilnehmer(args.input) - elif args.pay: - mark_pay() - if __name__ == '__main__': main()