views.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3. from django.http import HttpResponse, HttpResponseRedirect
  4. from django.template import RequestContext
  5. from django.shortcuts import render, render_to_response
  6. from django.contrib import messages
  7. from sendfile import sendfile
  8. from coin.billing.models import Invoice
  9. from coin.members.models import Member
  10. from coin.html2pdf import render_as_pdf
  11. from coin.billing.create_subscriptions_invoices import create_all_members_invoices_for_a_period
  12. from coin.billing.utils import get_invoice_from_id_or_number, assert_user_can_view_the_invoice
  13. def gen_invoices(request):
  14. create_all_members_invoices_for_a_period()
  15. return HttpResponse('blop')
  16. def invoice_pdf(request, id):
  17. """
  18. Renvoi une facture générée en format pdf
  19. id peut être soit la pk d'une facture, soit le numero de facture
  20. """
  21. invoice = get_invoice_from_id_or_number(id)
  22. assert_user_can_view_the_invoice(request, invoice)
  23. pdf_filename = 'Facture_%s.pdf' % invoice.number
  24. return sendfile(request, invoice.pdf.path,
  25. attachment=True, attachment_filename=pdf_filename)
  26. def invoice(request, id):
  27. """
  28. Affiche une facture et son détail
  29. id peut être soit la pk d'une facture, soit le numero de facture
  30. """
  31. invoice = get_invoice_from_id_or_number(id)
  32. assert_user_can_view_the_invoice(request, invoice)
  33. return render_to_response('billing/invoice.html', {"invoice": invoice},
  34. context_instance=RequestContext(request))
  35. return response