From 32103fd606b9f8b83d6d49ce23bdef244cd6dcd1 Mon Sep 17 00:00:00 2001 From: Antoine Bernard Date: Sun, 3 Sep 2017 16:23:10 +0200 Subject: [PATCH] =?UTF-8?q?Fonction=20g=C3=A9n=C3=A9rant=20la=20preuve=20d?= =?UTF-8?q?'adh=C3=A9sion.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- factures/views.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/factures/views.py b/factures/views.py index 1fe4202..694ff03 100644 --- a/factures/views.py +++ b/factures/views.py @@ -121,3 +121,48 @@ class FactureView(PDFView): return super(FactureView, self).get(request) facture = FactureView.as_view() + +class FormulaireView(PDFView): + """ + View générant le fichier PDF d'un formulaire d'adhésion ou de + réadhésion. + """ + tex_template = 'factures/formulaire-adhesion.tex' # Dans usr/scripts ? + + def get(self, request, fid): + luser = conn_pool.get_user(request.user) + f = conn_pool.get_conn(request.user).search(u"fid=%s" % int(fid)) + if not f: # Si la facture n'existe pas + return redirect('factures:index') + else: # Sinon, le premier élément de f est la facture. + f = f[0] + + # On vérifie que l'utilisateur demande une facture dont il est le + # propriétaire, ou que l'utilisateur est un câbleur. + if not f.dn in [fac.dn for fac in luser.factures()] \ + and not request.user.has_perm('auth.crans_cableur'): + return redirect('factures:index') + + total = 0 + for i in range(0,len(f['article'])): + f['article'][i].value['ptotal'] = int(f['article'][i]['nombre']) * float(f['article'][i]['pu']) + total += f['article'][i].value['ptotal'] + if f.get('recuPaiement', []): + paid = total + else: + paid = 0 + + # On récupère la date et l'heure de la facture + (jour, heure) = f['historique'][0].value.split(',')[0].split(" ") + date = u"Le %s à %s" % (jour, heure.replace(":", "h")) + + self.context = { + 'paid': paid, + 'DATE': date, + 'f': f, + 'fid': fid, + } + + return super(FormulaireView, self).get(request) + +formulaire = FormulaireView.as_view() -- GitLab