views.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. # -*- coding: utf-8 -*-
  2. from django.http import HttpResponse
  3. from django.template import RequestContext
  4. from django.shortcuts import render, render_to_response
  5. from django.core.exceptions import PermissionDenied
  6. from coin.billing.models import Invoice
  7. from coin.members.models import Member
  8. from coin.html2pdf import render_as_pdf
  9. from coin.billing.create_subscriptions_invoices import create_all_members_invoices_for_a_period
  10. from coin.billing.utils import get_invoice_from_id_or_number
  11. def gen_invoices(request):
  12. create_all_members_invoices_for_a_period()
  13. return HttpResponse('blop')
  14. def invoice_pdf(request, id):
  15. """
  16. Renvoi une facture générée en format pdf
  17. id peut être soit la pk d'une facture, soit le numero de facture
  18. """
  19. invoice = get_invoice_from_id_or_number(id)
  20. if not invoice.has_owner(request.user.username)\
  21. and not request.user.is_superuser:
  22. raise PermissionDenied
  23. pdf = render_as_pdf('billing/invoice_pdf.html', {"invoice": invoice})
  24. response = HttpResponse(content_type='application/pdf')
  25. #response['Content-Disposition'] = 'attachment; filename="facture.pdf"'
  26. response.write(pdf)
  27. return response
  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