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)