]> git.siccegge.de Git - teilnehmertool.git/blobdiff - teilnehmertool.py
Tempaltefixierung
[teilnehmertool.git] / teilnehmertool.py
old mode 100644 (file)
new mode 100755 (executable)
index 4961e70..b11b688
@@ -30,6 +30,26 @@ def import_teilnehmer(input):
 
     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):
@@ -43,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())
@@ -53,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'):
@@ -86,7 +109,9 @@ def main():
                        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')
@@ -101,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)
@@ -110,6 +135,8 @@ 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)