From de91a9872b259278a62ba641314d98cb9b90b007 Mon Sep 17 00:00:00 2001 From: Joseph Schorr Date: Fri, 4 Apr 2014 02:46:56 -0400 Subject: [PATCH] Add an invoice rendering tool --- tools/renderinvoice.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tools/renderinvoice.py diff --git a/tools/renderinvoice.py b/tools/renderinvoice.py new file mode 100644 index 000000000..a7fd1382c --- /dev/null +++ b/tools/renderinvoice.py @@ -0,0 +1,36 @@ +from app import stripe +from app import app + +from util.invoice import renderInvoiceToPdf + +from data import model + +import argparse + +from flask import Flask, current_app +from flask_mail import Mail + +def sendInvoice(invoice_id): + invoice = stripe.Invoice.retrieve(invoice_id) + if not invoice['customer']: + print 'No customer found' + return + + customer_id = invoice['customer'] + user = model.get_user_or_org_by_customer_id(customer_id) + if not user: + print 'No user found for customer %s' % (customer_id) + return + + + with app.app_context(): + file_data = renderInvoiceToPdf(invoice, user) + with open('invoice.pdf', 'wb') as f: + f.write(file_data) + + print 'Invoice output as invoice.pdf' + +parser = argparse.ArgumentParser(description='Generate an invoice') +parser.add_argument('invoice_id', help='The invoice ID') +args = parser.parse_args() +sendInvoice(args.invoice_id)