From bc3325c1cb34431ae66ad20265d81fcc1ce28557 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 2 Oct 2020 16:44:54 +0200 Subject: [PATCH] Order overview PDF: Print net and gross --- src/pretix/plugins/reports/exporters.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/pretix/plugins/reports/exporters.py b/src/pretix/plugins/reports/exporters.py index 9a051677b..dc4e25043 100644 --- a/src/pretix/plugins/reports/exporters.py +++ b/src/pretix/plugins/reports/exporters.py @@ -14,6 +14,7 @@ from django.utils.formats import date_format, localize from django.utils.timezone import get_current_timezone, now from django.utils.translation import gettext as _, gettext_lazy, pgettext from reportlab.lib import colors +from reportlab.platypus import PageBreak from pretix.base.decimal import round_decimal from pretix.base.exporter import BaseExporter, ListExporter @@ -162,14 +163,22 @@ class OverviewReport(Report): return pagesizes.landscape(pagesizes.A4) def get_story(self, doc, form_data): - from reportlab.lib.units import mm - from reportlab.platypus import Paragraph, Spacer, Table, TableStyle if form_data.get('date_from'): form_data['date_from'] = parse(form_data['date_from']) if form_data.get('date_until'): form_data['date_until'] = parse(form_data['date_until']) + story = self._table_story(doc, form_data) + if self.event.tax_rules.exists(): + story += [PageBreak()] + story += self._table_story(doc, form_data, net=True) + return story + + def _table_story(self, doc, form_data, net=False): + from reportlab.lib.units import mm + from reportlab.platypus import Paragraph, Spacer, Table, TableStyle + headlinestyle = self.get_style() headlinestyle.fontSize = 15 headlinestyle.fontName = 'OpenSansBd' @@ -195,9 +204,8 @@ class OverviewReport(Report): ('LINEBEFORE', (7, 1), (7, -1), 1, colors.lightgrey), ('LINEBEFORE', (9, 1), (9, -1), 1, colors.lightgrey), ] - story = [ - Paragraph(_('Orders by product'), headlinestyle), + Paragraph(_('Orders by product') + ' ' + (_('(excl. taxes)') if net else _('(incl. taxes)')), headlinestyle), Spacer(1, 5 * mm) ] if form_data.get('date_axis'): @@ -260,14 +268,14 @@ class OverviewReport(Report): ]) for l, s in states: tdata[-1].append(str(tup[0].num[l][0])) - tdata[-1].append(floatformat(tup[0].num[l][1], places)) + tdata[-1].append(floatformat(tup[0].num[l][2 if net else 1], places)) for item in tup[1]: tdata.append([ str(item) ]) for l, s in states: tdata[-1].append(str(item.num[l][0])) - tdata[-1].append(floatformat(item.num[l][1], places)) + tdata[-1].append(floatformat(item.num[l][2 if net else 1], places)) if item.has_variations: for var in item.all_variations: tdata.append([ @@ -275,14 +283,14 @@ class OverviewReport(Report): ]) for l, s in states: tdata[-1].append(str(var.num[l][0])) - tdata[-1].append(floatformat(var.num[l][1], places)) + tdata[-1].append(floatformat(var.num[l][2 if net else 1], places)) tdata.append([ _("Total"), ]) for l, s in states: tdata[-1].append(str(total['num'][l][0])) - tdata[-1].append(floatformat(total['num'][l][1], places)) + tdata[-1].append(floatformat(total['num'][l][2 if net else 1], places)) table = Table(tdata, colWidths=colwidths, repeatRows=3) table.setStyle(TableStyle(tstyledata))