def manage_orders_pdf(request, tmpl, order_id=0): try: order_id = int(order_id) order = Order.objects.get(id=order_id) except: order = None if not order: return HttpResponseRedirect('/') response = HttpResponse(mimetype='application/pdf') response['Content-Disposition'] = 'attachment; filename=invoice_order_%d.pdf' % order_id response.write(gen_pdf(tmpl, {'user': order.user, 'order': order, 'lang': request.LANGUAGE_CODE[0:2], 'address_lines': settings.FULL_ADDRESS.strip().split("\n"), 'currency': settings.CURRENCY, 'tva': settings.TVA['value'], 'invoice_msg_frenchtaxcode': settings.TVA['invoice_msg_frenchtaxcode'], 'invoice_msg_notaxes': settings.TVA['invoice_msg_notaxes'],})) return response
def invoices(folder, paid=True): ret = True if paid: results = User.objects.filter(order__payment_date__isnull=False).order_by('id') else: results = User.objects.filter(order__payment_date__isnull=True).order_by('id') fails = [] for u in results: translation.activate(u.get_profile().language) if paid: orders = u.order_set.filter(payment_date__isnull=False).order_by('id') else: orders = u.order_set.filter(payment_date__isnull=True).order_by('id') for i, o in enumerate(orders): bname = '%s/invoice_%04d-%03d.pdf' % (folder, u.id, i+1) print 'Writing invoice of user #%d: %s ...' % (u.id, bname), try: buffer = gen_pdf('resa/orders_pdf.xml', { 'user': u, 'order': o, 'lang': u.get_profile().language, 'address_lines': settings.FULL_ADDRESS.strip().split("\n"), 'currency': settings.CURRENCY, 'tva': settings.TVA['value'], 'invoice_msg_frenchtaxcode': settings.TVA['invoice_msg_frenchtaxcode'], 'invoice_msg_notaxes': settings.TVA['invoice_msg_notaxes'] }) except Exception, e: sys.stderr.write("FAILURE: %s" % (str(e))) buffer = None if buffer: pdffile = open(bname, 'w') pdffile.write(buffer) pdffile.close() print 'OK' else: print 'FAIL' fails.append(u.get_full_name())