From d9c42e89db11916ce614f769d104131cc2e6f5cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Kervella?= Date: Wed, 11 Apr 2018 17:20:40 +0000 Subject: [PATCH] Fix 81 and Strip out facture.tex for readability --- cotisations/forms.py | 6 - .../templates/cotisations/factures.tex | 126 ++++++++++-------- cotisations/tex.py | 2 +- cotisations/views.py | 22 +-- 4 files changed, 87 insertions(+), 69 deletions(-) diff --git a/cotisations/forms.py b/cotisations/forms.py index 696f1f5c..554e402e 100644 --- a/cotisations/forms.py +++ b/cotisations/forms.py @@ -158,12 +158,6 @@ class NewFactureFormPdf(Form): dest = forms.CharField(required=True, max_length=255, label=_l("Recipient")) # TODO : change chambre field to address chambre = forms.CharField(required=False, max_length=10, label=_l("Address")) - # TODO : change fid field to invoice_id - fid = forms.CharField( - required=True, - max_length=10, - label=_l("Invoice number") - ) # TODO : change Facture to Invoice class EditFactureForm(FieldPermissionFormMixin, NewFactureForm): diff --git a/cotisations/templates/cotisations/factures.tex b/cotisations/templates/cotisations/factures.tex index 1619ea5e..4751edc1 100644 --- a/cotisations/templates/cotisations/factures.tex +++ b/cotisations/templates/cotisations/factures.tex @@ -32,76 +32,98 @@ \usepackage{graphicx} \usepackage{tabularx} \usepackage{eurosym} +\usepackage{multicol} \pagestyle{empty} % No page numbers \linespread{1.5} % Line spacing \setlength{\doublerulesep}{\arrayrulewidth} % Double rules look like one thick one -\def \tab {\hspace*{3ex}} % Define \tab to create some horizontal white space \setlength{\parindent}{0cm} \begin{document} -%\newcommand{\product}[5][0][0][0][0][0]{ -%\setlength{ptotal}{#3*\real{#4}} -%\addtolength{total}{#3*\real{#4}} + + %---------------------------------------------------------------------------------------- + % HEADING SECTION + %---------------------------------------------------------------------------------------- + \begin{center} + {\Huge\bf {{asso_name|safe}} } % Company providing the invoice + \end{center} -%---------------------------------------------------------------------------------------- -% HEADING SECTION -%---------------------------------------------------------------------------------------- -%\includegraphics[width=3.5cm]{% templatetag openbrace %}{{ tpl_path }}} -\tab \tab \tab \tab \tab {\Huge\bf {{asso_name|safe}} }\hfil % Company providing the invoice -\bigskip\break % Whitespace -\hrule % Horizontal line \\ -\vspace{0.5cm} -{\bf Adresse :} \tab \parbox [t] {0.5\textwidth}{ {{line1|safe}} \\ {{line2|safe}} } \hfill \parbox [t] {0.3\textwidth}{ {\bf Téléphone :} {{phone}} \\ {\bf Mail :} {{email|safe}} } \\ % Your address and contact information -\\ -{\bf Siret :} \tab{{siret}} -\\ \\ \\ -\\ -\parbox [t] {0.5\textwidth}{ {\bf Pour :} {{dest.name|safe}} {{dest.surname|safe}} \\ {\bf Adresse :} \tab {% if dest.room == None %} Aucune adresse renseignée {% else %}{{dest.room}}{% endif %} } \hfill \parbox [t] {0.3\textwidth}{ {\bf Date :} {{DATE}} } -\\ \\ + \bigskip + \hrule + \smallskip -{\bf Facture \no :} \tab {{ fid }} \\\\ -%---------------------------------------------------------------------------------------- -% TABLE OF EXPENSES -%---------------------------------------------------------------------------------------- + \begin{multicols}{2} + \begin{tabular}{@{\extracolsep{\fill}}l r} + {\bf Adresse :} & {{line1|safe}} \\ + & {{line2|safe}} \\ + \end{tabular} + \columnbreak + \\ + {\bf Téléphone :} {{phone}} \\ + {\bf Mail :} {{email|safe}} + \end{multicols} -\begin{tabularx}{\textwidth}{|X|r|r|r|} -\hline - \textbf{Désignation} & \textbf{Prix Unit.} \euro & \textbf{Quantité} & \textbf{Prix total} \euro\\ -\hline + {\bf Siret :} {{siret|safe}} + + \vspace{2cm} + + \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} l r} + {\bf Pour :} {{recipient_name|safe}} & {\bf Date :} {{DATE}} \\ + {\bf Adresse :} {% if address is None %}Aucune adresse renseignée{% else %}{{address}}{% endif %} & \\ + \end{tabular*} + {% if fid is not None %} + {\bf Facture n\textsuperscript{o} :} {{ fid }} \\ + {% endif %} -{% for a in article %} -\hline - {{a.0.name}} & {{a.0.prix}} \euro & {{a.1}} & {{a.2}} \euro\\ -\hline -{% endfor %} + %---------------------------------------------------------------------------------------- + % TABLE OF EXPENSES + %---------------------------------------------------------------------------------------- + + \begin{tabularx}{\textwidth}{|X|r|r|r|} - \hline -\end{tabularx} + \hline + \textbf{Désignation} & \textbf{Prix Unit.} \euro & \textbf{Quantité} & \textbf{Prix total} \euro\\ + \hline + \hline + + {% for a in article %} + {{a.0.name}} & {{a.0.prix}} \euro & {{a.1}} & {{a.2}} \euro\\ + \hline + {% endfor %} + + \hline + \end{tabularx} + + \vspace{1cm} -\vspace{1cm} -\hfill -\begin{tabular}{|l|r|} -\hline -\textbf{Total} & {{total|floatformat:2}} \euro \\ -\textbf{Votre règlement} & {% if paid %}{{total|floatformat:2}}{% else %} 00,00 {% endif %} \euro \\ -\hline -\textbf{À PAYER} & {% if not paid %}{{total|floatformat:2}}{% else %} 00,00 {% endif %} \euro\\ -\hline -\hline + \hfill + \begin{tabular}{|l|r|} + \hline + \textbf{Total} & {{total|floatformat:2}} \euro \\ + \textbf{Votre règlement} & {% if paid %}{{total|floatformat:2}}{% else %} 00,00 {% endif %} \euro \\ + \hline + \textbf{À PAYER} & {% if not paid %}{{total|floatformat:2}}{% else %} 00,00 {% endif %} \euro\\ + \hline + \hline + \end{tabular} + + \vfill -\end{tabular} -\vspace{1.5cm} % Whitespace -\hrule % Horizontal line -\vspace{0.25cm} -\footnotesize{TVA non applicable, art. 293 B du CGI} - -{% endlanguage %} -%---------------------------------------------------------------------------------------- + %---------------------------------------------------------------------------------------- + % FOOTNOTE + %---------------------------------------------------------------------------------------- + + \hrule + \smallskip + \footnotesize{TVA non applicable, art. 293 B du CGI} + + %---------------------------------------------------------------------------------------- \end{document} + +{% endlanguage %} diff --git a/cotisations/tex.py b/cotisations/tex.py index e3bf62f5..fb50d05b 100644 --- a/cotisations/tex.py +++ b/cotisations/tex.py @@ -48,7 +48,7 @@ def render_invoice(request, ctx={}): filename = '_'.join([ 'invoice', slugify(ctx['asso_name']), - slugify(ctx['dest'].pseudo), + slugify(ctx['recipient_name']), str(ctx['DATE'].year), str(ctx['DATE'].month), str(ctx['DATE'].day), diff --git a/cotisations/views.py b/cotisations/views.py index f99ff93e..517644b0 100644 --- a/cotisations/views.py +++ b/cotisations/views.py @@ -201,20 +201,18 @@ def new_facture_pdf(request): invoice_form = NewFactureFormPdf(request.POST or None) if invoice_form.is_valid(): tbl = [] - article = facture_form.cleaned_data['article'] - quantity = facture_form.cleaned_data['number'] - paid = facture_form.cleaned_data['paid'] - recipient = facture_form.cleaned_data['dest'] - room = facture_form.cleaned_data['chambre'] - invoice_id = facture_form.cleaned_data['fid'] + article = invoice_form.cleaned_data['article'] + quantity = invoice_form.cleaned_data['number'] + paid = invoice_form.cleaned_data['paid'] + recipient = invoice_form.cleaned_data['dest'] + address = invoice_form.cleaned_data['chambre'] for art in article: tbl.append([art, quantity, art.prix * quantity]) total_price = sum(a[2] for a in tbl) - user = {'name': recipient, 'room': room} return render_invoice(request, { 'DATE': timezone.now(), - 'dest': user, - 'fid': invoice_id, + 'recipient_name': recipient, + 'address': address, 'article': tbl, 'total': total_price, 'paid': paid, @@ -251,7 +249,11 @@ def facture_pdf(request, facture, factureid): 'paid': True, 'fid': facture.id, 'DATE': facture.date, - 'dest': facture.user, + 'recipient_name': "{} {}".format( + facture.user.name, + facture.user.surname + ), + 'addresse': facture.user.room, 'article': purchases, 'total': facture.prix_total(), 'asso_name': AssoOption.get_cached_value('name'),