views.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. # -*- coding: utf-8 -*-
  2. from django.http import HttpResponse, HttpResponseRedirect
  3. from django.template import RequestContext
  4. from django.shortcuts import render, render_to_response
  5. from django.core.exceptions import PermissionDenied
  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
  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. if not invoice.has_owner(request.user.username)\
  23. and not request.user.is_superuser:
  24. raise PermissionDenied
  25. pdf_filename = 'Facture_%s.pdf' % invoice.number
  26. return sendfile(request, invoice.pdf.path,
  27. attachment=True, attachment_filename=pdf_filename)
  28. def invoice(request, id):
  29. """
  30. Affiche une facture et son détail
  31. id peut être soit la pk d'une facture, soit le numero de facture
  32. """
  33. invoice = get_invoice_from_id_or_number(id)
  34. if not invoice.has_owner(request.user.username)\
  35. and not request.user.is_superuser:
  36. raise PermissionDenied
  37. return render_to_response('billing/invoice.html', {"invoice": invoice},
  38. context_instance=RequestContext(request))
  39. return response