]> git.siccegge.de Git - teilnehmertool.git/commitdiff
Add reminder function
authorChristoph Egger <Christoph.Egger@fau.de>
Mon, 30 Sep 2013 21:41:59 +0000 (23:41 +0200)
committerChristoph Egger <Christoph.Egger@fau.de>
Mon, 30 Sep 2013 21:41:59 +0000 (23:41 +0200)
Also create new payment confirmation if amount of money received
changed since what is recorded in the database

Includes updated teilnehmer.sqlite

teilnehmertool.py
templates/erinnerung.eml [new file with mode: 0644]

index 9ff5ca740b9505e9267e23dfd8e7eb7b84c50e68..35a47dca743546e292db999c510e6cd571169a51 100755 (executable)
@@ -43,7 +43,7 @@ def mark_pay(outdir):
         vorname, nachname, email, bezahlt = \
                  conn.execute("SELECT vorname, nachname, email, bezahlt FROM teilnehmer WHERE id = ?", [uid]).fetchone()
 
-        if bezahlt > 20:
+        if bezahlt == betrag:
             continue
 
         conn.execute("UPDATE teilnehmer SET bezahlt = ? WHERE id = ?", [betrag, uid])
@@ -92,6 +92,43 @@ def create_mail(outdir='output'):
                                                                                       preis, id])
     conn.commit()
 
+def create_remind(outdir='output'):
+    def gen_rechnung(tshirt, zipper):
+        preis = 25
+        kosten = u""
+        kosten += u"%s | %s\n" % (u"  Konferenzbeitrag".ljust(30), "25.00")
+        kosten += u"%s | %s\n" % ((u"  T-Shirt (Größe %s)" % tshirt).ljust(30), " 0.00")
+        if zipper != 'Kein Pulli':
+            kosten += u"%s | %s\n" % ((u"  Kapuzenzipper (Größe %s)" % zipper).ljust(30), "25.00")
+            preis += 25
+        kosten += ' '*2 + 29*'-' + '+' + 6*'-' + '\n'
+        kosten += u"%s | %s\n" % (u"  Summe".ljust(30), "%2d.00" % preis)
+
+        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())
+
+    template = env.get_template('erinnerung.eml')
+
+    for id, vorname, nachname, email, tshirt, zipper in \
+        conn.execute("SELECT id, vorname, nachname, email, tshirt, zipper FROM teilnehmer " +
+                     "WHERE bezahlt < 25 AND datetime(emailsent) < datetime(?)",
+                     [(datetime.datetime.now() - datetime.timedelta(14)).isoformat()]):
+
+        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=rechnung).encode('utf-8'))
+
+        conn.execute("UPDATE teilnehmer set emailsent = ?, betrag = ? WHERE id = ?", [datetime.datetime.now().isoformat(),
+                                                                                      preis, id])
+    conn.commit()
+
 def create_nametag(outdir='output'):
     template = env.get_template('nametag.svg')
         
@@ -117,6 +154,8 @@ def main():
                        help='Generiere E-Mails mit Überweisungsinformationen')
     group.add_argument('--pay', action='store_true',
                        help='Speichere Zahlungseingang')
+    group.add_argument('--remind', action='store_true',
+                       help='Generiere Zahlungsaufforderungserinnerung')
     
     # Argumente
     parser.add_argument('--db', default='teilnehmer.sqlite',
@@ -132,7 +171,7 @@ def main():
     conn = sqlite3.connect(args.db)
     conn.text_factory = str
 
-    if args.nametag or args.email or args.pay:
+    if args.nametag or args.email or args.pay or args.remind:
         assert(args.output)
         if not os.path.exists(args.output):
             os.mkdir(args.output)
@@ -143,6 +182,8 @@ def main():
             create_mail(args.output)
         elif args.pay:
             mark_pay(args.output)
+        elif args.remind:
+            create_remind(args.output)
 
     elif args.importcsv:
         assert(args.input)
diff --git a/templates/erinnerung.eml b/templates/erinnerung.eml
new file mode 100644 (file)
index 0000000..22ece17
--- /dev/null
@@ -0,0 +1,31 @@
+From: kif415-orga@fsi.cs.fau.de
+To: {{vorname}} {{nachname}} <{{email}}>
+Reply-To: kif415-orga@fsi.cs.fau.de
+Subject: Teilnehmerbeitrag KIF 41,5
+Content-Type: text/plain; charset=utf-8
+Content-Disposition: inline
+Content-Transfer-Encoding: 8bit
+
+Moin!
+
+Wir haben von dir bisher keine Überweisung erhalten. Solltest du
+bereits bezahlt haben, dann melde dich bitte umgehend bei uns, sodass
+wir überprüfen können, wo das Geld geblieben ist.
+
+Falls do noch nicht überwiesen hast, würden wir uns freuen, wenn du
+das noch nachholen könntest. Zur Erinnerung:
+
+{{rechnung}}
+
+  Inhaber:          XXXX
+  Kontonr:          XXXX
+  BLZ:              XXXX
+  IBAN:             XXXX
+  Bank:             XXXX
+  BIC:              XXXX
+  Verwendungszweck: KIF-415 Konferenzbeitrag
+                    {{token}}
+
+Wir freuen uns auf dein Kommen!
+
+  Die KIF 41,5 Orga