import argparse import stripe from app import app from data import model from util.invoice import renderInvoiceToPdf 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.user.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)