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])
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')
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',
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)
create_mail(args.output)
elif args.pay:
mark_pay(args.output)
+ elif args.remind:
+ create_remind(args.output)
elif args.importcsv:
assert(args.input)
--- /dev/null
+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