Fix #305 -- tax data in CSV report

This commit is contained in:
Raphael Michel
2016-11-09 17:42:47 +01:00
parent 2e9e8eabb1
commit c9d38d7f23
3 changed files with 220 additions and 124 deletions

View File

@@ -1,15 +1,18 @@
import csv
import io
from collections import OrderedDict
from decimal import Decimal
import pytz
from django import forms
from django.db.models import Sum
from django.dispatch import receiver
from django.utils.translation import ugettext as _
from pretix.base.models import InvoiceAddress, Order
from pretix.base.models import InvoiceAddress, Order, OrderPosition
from ..exporter import BaseExporter
from ..signals import register_data_exporters
from ..signals import register_data_exporters, register_payment_providers
class OrderListExporter(BaseExporter):
@@ -29,27 +32,64 @@ class OrderListExporter(BaseExporter):
]
)
def _get_all_tax_rates(self, qs):
tax_rates = set(
qs.exclude(payment_fee=0).values_list('payment_fee_tax_rate', flat=True)
.distinct().order_by()
)
tax_rates |= set(
a for a
in OrderPosition.objects.filter(order__event=self.event)
.values_list('tax_rate', flat=True).distinct().order_by()
)
tax_rates = sorted(tax_rates)
return tax_rates
def render(self, form_data: dict):
output = io.StringIO()
tz = pytz.timezone(self.event.settings.timezone)
writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC, delimiter=",")
qs = self.event.orders.all().select_related('invoice_address')
headers = [
_('Order code'), _('Order total'), _('Status'), _('Email'), _('Order date'),
_('Company'), _('Name'), _('Address'), _('ZIP code'), _('City'), _('Country'), _('VAT ID')
]
if form_data['paid_only']:
qs = qs.filter(status=Order.STATUS_PAID)
tax_rates = self._get_all_tax_rates(qs)
headers = [
_('Order code'), _('Order total'), _('Status'), _('Email'), _('Order date'),
_('Company'), _('Name'), _('Address'), _('ZIP code'), _('City'), _('Country'), _('VAT ID'),
_('Payment date'), _('Payment type'), _('Payment method fee')
]
for tr in tax_rates:
headers += [
_('Gross at {rate} % tax').format(rate=tr),
_('Net at {rate} % tax').format(rate=tr),
_('Tax value at {rate} % tax').format(rate=tr),
]
writer.writerow(headers)
for order in qs:
provider_names = {}
responses = register_payment_providers.send(self.event)
for rec, response in responses:
provider = response(self.event)
provider_names[provider.identifier] = provider.verbose_name
sum_cache = {
(o['order__id'], o['tax_rate']): o for o in
OrderPosition.objects.values('tax_rate', 'order__id').order_by().annotate(
taxsum=Sum('tax_value'), grosssum=Sum('price')
)
}
for order in qs.order_by('datetime'):
row = [
order.code,
str(order.total),
order.get_status_display(),
order.email,
order.datetime.strftime('%Y-%m-%d'),
order.datetime.astimezone(tz).strftime('%Y-%m-%d'),
]
try:
row += [
@@ -64,6 +104,24 @@ class OrderListExporter(BaseExporter):
except InvoiceAddress.DoesNotExist:
row += ['', '', '', '', '', '', '']
row += [
order.payment_date.astimezone(tz).strftime('%Y-%m-%d') if order.payment_date else '',
provider_names.get(order.payment_provider, order.payment_provider),
str(order.payment_fee)
]
for tr in tax_rates:
taxrate_values = sum_cache.get((order.id, tr), {'grosssum': Decimal('0.00'), 'taxsum': Decimal('0.00')})
if tr == order.payment_fee_tax_rate and order.payment_fee_tax_value:
taxrate_values['grosssum'] += order.payment_fee
taxrate_values['taxsum'] += order.payment_fee_tax_value
row += [
str(taxrate_values['grosssum']),
str(taxrate_values['grosssum'] - taxrate_values['taxsum']),
str(taxrate_values['taxsum']),
]
writer.writerow(row)
return 'orders.csv', 'text/csv', output.getvalue().encode("utf-8")

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-09 11:06+0000\n"
"PO-Revision-Date: 2016-11-09 12:06+0100\n"
"POT-Creation-Date: 2016-11-09 16:38+0000\n"
"PO-Revision-Date: 2016-11-09 17:39+0100\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: Raphael Michel <michel@rami.io>\n"
"Language: de\n"
@@ -30,16 +30,16 @@ msgstr "E-Mail-Adressen (Textdatei)"
msgid "Filter by status"
msgstr "Nach Status filtern"
#: pretix/base/exporters/orderlist.py:17
#: pretix/base/exporters/orderlist.py:20
msgid "List of orders (CSV)"
msgstr "Liste der Bestellungen (CSV)"
#: pretix/base/exporters/orderlist.py:25
#: pretix/base/exporters/orderlist.py:28
#: pretix/plugins/checkinlists/exporters.py:39
msgid "Only paid orders"
msgstr "Nur bezahlte Bestellungen"
#: pretix/base/exporters/orderlist.py:38 pretix/base/models/orders.py:97
#: pretix/base/exporters/orderlist.py:59 pretix/base/models/orders.py:97
#: pretix/base/services/invoices.py:243
#: pretix/control/templates/pretixcontrol/order/index.html:72
#: pretix/control/templates/pretixcontrol/orders/index.html:32
@@ -51,25 +51,25 @@ msgstr "Nur bezahlte Bestellungen"
msgid "Order code"
msgstr "Bestellnummer"
#: pretix/base/exporters/orderlist.py:38
#: pretix/base/exporters/orderlist.py:59
#: pretix/control/templates/pretixcontrol/orders/index.html:80
#: pretix/plugins/reports/exporters.py:303
msgid "Order total"
msgstr "Gesamtbetrag"
#: pretix/base/exporters/orderlist.py:38 pretix/base/models/orders.py:103
#: pretix/base/exporters/orderlist.py:59 pretix/base/models/orders.py:103
#: pretix/control/templates/pretixcontrol/orders/index.html:84
#: pretix/plugins/reports/exporters.py:303
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:31
msgid "Status"
msgstr "Status"
#: pretix/base/exporters/orderlist.py:38
#: pretix/base/exporters/orderlist.py:59
#: pretix/control/templates/pretixcontrol/event/settings_base.html:36
msgid "Email"
msgstr "E-Mail"
#: pretix/base/exporters/orderlist.py:38 pretix/base/services/invoices.py:249
#: pretix/base/exporters/orderlist.py:59 pretix/base/services/invoices.py:249
#: pretix/control/templates/pretixcontrol/order/index.html:74
#: pretix/control/templates/pretixcontrol/orders/index.html:82
#: pretix/plugins/reports/exporters.py:242
@@ -77,14 +77,14 @@ msgstr "E-Mail"
msgid "Order date"
msgstr "Bestelldatum"
#: pretix/base/exporters/orderlist.py:39
#: pretix/base/exporters/orderlist.py:60
#: pretix/control/templates/pretixcontrol/order/index.html:266
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:77
#: pretix/presale/templates/pretixpresale/event/order.html:161
msgid "Company"
msgstr "Firma"
#: pretix/base/exporters/orderlist.py:39 pretix/base/models/event.py:56
#: pretix/base/exporters/orderlist.py:60 pretix/base/models/event.py:57
#: pretix/base/models/items.py:499 pretix/base/models/organizer.py:27
#: pretix/control/templates/pretixcontrol/order/index.html:268
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:79
@@ -93,35 +93,68 @@ msgstr "Firma"
msgid "Name"
msgstr "Name"
#: pretix/base/exporters/orderlist.py:39 pretix/base/models/orders.py:547
#: pretix/base/exporters/orderlist.py:60 pretix/base/models/orders.py:547
#: pretix/control/templates/pretixcontrol/order/index.html:270
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:81
#: pretix/presale/templates/pretixpresale/event/order.html:165
msgid "Address"
msgstr "Adresse"
#: pretix/base/exporters/orderlist.py:39 pretix/base/models/orders.py:548
#: pretix/base/exporters/orderlist.py:60 pretix/base/models/orders.py:548
msgid "ZIP code"
msgstr "Postleitzahl"
#: pretix/base/exporters/orderlist.py:39 pretix/base/models/orders.py:549
#: pretix/base/exporters/orderlist.py:60 pretix/base/models/orders.py:549
msgid "City"
msgstr "Ort"
#: pretix/base/exporters/orderlist.py:39 pretix/base/models/orders.py:550
#: pretix/base/exporters/orderlist.py:60 pretix/base/models/orders.py:550
#: pretix/control/templates/pretixcontrol/order/index.html:274
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:85
#: pretix/presale/templates/pretixpresale/event/order.html:169
msgid "Country"
msgstr "Land"
#: pretix/base/exporters/orderlist.py:39 pretix/base/models/orders.py:551
#: pretix/base/exporters/orderlist.py:60 pretix/base/models/orders.py:551
#: pretix/control/templates/pretixcontrol/order/index.html:277
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:88
#: pretix/presale/templates/pretixpresale/event/order.html:172
msgid "VAT ID"
msgstr "USt-ID"
#: pretix/base/exporters/orderlist.py:61 pretix/base/models/orders.py:127
#: pretix/control/templates/pretixcontrol/order/index.html:77
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:11
#: pretix/plugins/reports/exporters.py:243
#: pretix/plugins/reports/exporters.py:303
msgid "Payment date"
msgstr "Zahlungsdatum"
#: pretix/base/exporters/orderlist.py:61
msgid "Payment type"
msgstr "Zahlungsart"
#: pretix/base/exporters/orderlist.py:61 pretix/base/models/orders.py:137
#: pretix/control/templates/pretixcontrol/order/index.html:208
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:108
msgid "Payment method fee"
msgstr "Gebühr für gewählte Zahlungsmethode"
#: pretix/base/exporters/orderlist.py:66
#, python-brace-format
msgid "Gross at {rate} % tax"
msgstr "Brutto {rate} %"
#: pretix/base/exporters/orderlist.py:67
#, python-brace-format
msgid "Net at {rate} % tax"
msgstr "Netto {rate} %"
#: pretix/base/exporters/orderlist.py:68
#, python-brace-format
msgid "Tax value at {rate} % tax"
msgstr "Steuer {rate} %"
#: pretix/base/forms/__init__.py:95
msgid "disabled"
msgstr "deaktiviert"
@@ -273,7 +306,7 @@ msgstr "%(family)s, %(given)s"
msgid "Account information changed"
msgstr "Account-Informationen geändert"
#: pretix/base/models/event.py:61 pretix/base/models/organizer.py:31
#: pretix/base/models/event.py:62 pretix/base/models/organizer.py:31
msgid ""
"Should be short, only contain lowercase letters and numbers, and must be "
"unique among your events. This is being used in addresses and bank transfer "
@@ -283,36 +316,36 @@ msgstr ""
"unter Ihren Veranstaltungen einmalig sein. Wird in URLs und "
"Verwendungszwecken für Banküberweisungen benutzt."
#: pretix/base/models/event.py:66 pretix/base/models/organizer.py:36
#: pretix/base/models/event.py:67 pretix/base/models/organizer.py:36
msgid "The slug may only contain letters, numbers, dots and dashes."
msgstr ""
"Die Kurzform darf nur Buchstaben, Zahlen, Punkte und Bindestriche enthalten."
#: pretix/base/models/event.py:69 pretix/base/models/organizer.py:39
#: pretix/base/models/event.py:70 pretix/base/models/organizer.py:39
msgid "Slug"
msgstr "Kurzform"
#: pretix/base/models/event.py:71
#: pretix/base/models/event.py:72
msgid "Shop is live"
msgstr "Shop ist live"
#: pretix/base/models/event.py:75
#: pretix/base/models/event.py:76
msgid "Default currency"
msgstr "Standardwährung"
#: pretix/base/models/event.py:77
#: pretix/base/models/event.py:78
msgid "Event start time"
msgstr "Veranstaltungsbeginn"
#: pretix/base/models/event.py:79
#: pretix/base/models/event.py:80
msgid "Event end time"
msgstr "Veranstaltungsende"
#: pretix/base/models/event.py:81
#: pretix/base/models/event.py:82
msgid "Visible in public lists"
msgstr "Öffentlich sichtbar"
#: pretix/base/models/event.py:82
#: pretix/base/models/event.py:83
msgid ""
"If selected, this event may show up on the ticket system's start page or an "
"organization profile."
@@ -321,86 +354,86 @@ msgstr ""
"dieses Vorverkaufssystem oder auf der Profilseite eines Veranstalters "
"angezeigt werden."
#: pretix/base/models/event.py:86
#: pretix/base/models/event.py:87
msgid "End of presale"
msgstr "Ende des Vorverkaufs"
#: pretix/base/models/event.py:87
#: pretix/base/models/event.py:88
msgid "No products will be sold after this date."
msgstr "Es werden nach diesem Termin keine Produkte mehr verkauft."
#: pretix/base/models/event.py:91
#: pretix/base/models/event.py:92
msgid "Start of presale"
msgstr "Beginn des Vorverkaufs"
#: pretix/base/models/event.py:92
#: pretix/base/models/event.py:93
msgid "No products will be sold before this date."
msgstr "Es werden vor diesem Termin keine Produkte verkauft."
#: pretix/base/models/event.py:96
#: pretix/base/models/event.py:97
#: pretix/control/templates/pretixcontrol/event/settings_base.html:21
msgid "Plugins"
msgstr "Erweiterungen"
#: pretix/base/models/event.py:100 pretix/base/models/items.py:118
#: pretix/base/models/event.py:101 pretix/base/models/items.py:118
#: pretix/base/models/items.py:495 pretix/base/models/orders.py:108
#: pretix/base/models/orders.py:507 pretix/base/models/vouchers.py:64
#: pretix/base/services/invoices.py:257
msgid "Event"
msgstr "Veranstaltung"
#: pretix/base/models/event.py:101
#: pretix/base/models/event.py:102
#: pretix/control/templates/pretixcontrol/base.html:115
#: pretix/control/templates/pretixcontrol/events/index.html:3
#: pretix/control/templates/pretixcontrol/events/index.html:5
msgid "Events"
msgstr "Veranstaltungen"
#: pretix/base/models/event.py:114
#: pretix/base/models/event.py:115
msgid "The end of the presale period has to be later than its start."
msgstr "Das Ende des Vorverkaufs muss nach seinem Beginn liegen."
#: pretix/base/models/event.py:116
#: pretix/base/models/event.py:117
msgid "The end of the event has to be later than its start."
msgstr "Das Ende der Veranstaltung muss nach ihrem Beginn liegen."
#: pretix/base/models/event.py:230
#: pretix/base/models/event.py:233
msgid "Can change event settings"
msgstr "Kann Veranstaltungseinstellungen ändern"
#: pretix/base/models/event.py:234
#: pretix/base/models/event.py:237
msgid "Can change product settings"
msgstr "Kann Produkte ändern"
#: pretix/base/models/event.py:238
#: pretix/base/models/event.py:241
msgid "Can view orders"
msgstr "Kann Bestellungen einsehen"
#: pretix/base/models/event.py:242
#: pretix/base/models/event.py:245
msgid "Can change permissions"
msgstr "Kann Berechtigungen verändern"
#: pretix/base/models/event.py:246
#: pretix/base/models/event.py:249
msgid "Can change orders"
msgstr "Kann Bestellungen verändern"
#: pretix/base/models/event.py:250
#: pretix/base/models/event.py:253
msgid "Can view vouchers"
msgstr "Kann Gutscheine einsehen"
#: pretix/base/models/event.py:254
#: pretix/base/models/event.py:257
msgid "Can change vouchers"
msgstr "Kann Gutscheine verändern"
#: pretix/base/models/event.py:258
#: pretix/base/models/event.py:261
msgid "Event permission"
msgstr "Veranstaltungs-Berechtigung"
#: pretix/base/models/event.py:259
#: pretix/base/models/event.py:262
msgid "Event permissions"
msgstr "Veranstaltungs-Berechtigungen"
#: pretix/base/models/event.py:262 pretix/base/models/organizer.py:103
#: pretix/base/models/event.py:265 pretix/base/models/organizer.py:103
#, python-format
msgid "%(name)s on %(object)s"
msgstr "%(name)s für %(object)s"
@@ -706,24 +739,10 @@ msgstr "Datum"
msgid "Expiration date"
msgstr "Ablaufdatum"
#: pretix/base/models/orders.py:127
#: pretix/control/templates/pretixcontrol/order/index.html:77
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:11
#: pretix/plugins/reports/exporters.py:243
#: pretix/plugins/reports/exporters.py:303
msgid "Payment date"
msgstr "Zahlungsdatum"
#: pretix/base/models/orders.py:133
msgid "Payment provider"
msgstr "Zahlungsmethode"
#: pretix/base/models/orders.py:137
#: pretix/control/templates/pretixcontrol/order/index.html:208
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:108
msgid "Payment method fee"
msgstr "Gebühr für gewählte Zahlungsmethode"
#: pretix/base/models/orders.py:141
msgid "Payment method fee tax rate"
msgstr "Steuersatz auf Gebühr für gewählte Zahlungsmethode"

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-09 11:06+0000\n"
"PO-Revision-Date: 2016-11-09 12:07+0100\n"
"POT-Creation-Date: 2016-11-09 16:38+0000\n"
"PO-Revision-Date: 2016-11-09 17:39+0100\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: Raphael Michel <michel@rami.io>\n"
"Language: de\n"
@@ -30,16 +30,16 @@ msgstr "E-Mail-Adressen (Textdatei)"
msgid "Filter by status"
msgstr "Nach Status filtern"
#: pretix/base/exporters/orderlist.py:17
#: pretix/base/exporters/orderlist.py:20
msgid "List of orders (CSV)"
msgstr "Liste der Bestellungen (CSV)"
#: pretix/base/exporters/orderlist.py:25
#: pretix/base/exporters/orderlist.py:28
#: pretix/plugins/checkinlists/exporters.py:39
msgid "Only paid orders"
msgstr "Nur bezahlte Bestellungen"
#: pretix/base/exporters/orderlist.py:38 pretix/base/models/orders.py:97
#: pretix/base/exporters/orderlist.py:59 pretix/base/models/orders.py:97
#: pretix/base/services/invoices.py:243
#: pretix/control/templates/pretixcontrol/order/index.html:72
#: pretix/control/templates/pretixcontrol/orders/index.html:32
@@ -51,25 +51,25 @@ msgstr "Nur bezahlte Bestellungen"
msgid "Order code"
msgstr "Bestellnummer"
#: pretix/base/exporters/orderlist.py:38
#: pretix/base/exporters/orderlist.py:59
#: pretix/control/templates/pretixcontrol/orders/index.html:80
#: pretix/plugins/reports/exporters.py:303
msgid "Order total"
msgstr "Gesamtbetrag"
#: pretix/base/exporters/orderlist.py:38 pretix/base/models/orders.py:103
#: pretix/base/exporters/orderlist.py:59 pretix/base/models/orders.py:103
#: pretix/control/templates/pretixcontrol/orders/index.html:84
#: pretix/plugins/reports/exporters.py:303
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:31
msgid "Status"
msgstr "Status"
#: pretix/base/exporters/orderlist.py:38
#: pretix/base/exporters/orderlist.py:59
#: pretix/control/templates/pretixcontrol/event/settings_base.html:36
msgid "Email"
msgstr "E-Mail"
#: pretix/base/exporters/orderlist.py:38 pretix/base/services/invoices.py:249
#: pretix/base/exporters/orderlist.py:59 pretix/base/services/invoices.py:249
#: pretix/control/templates/pretixcontrol/order/index.html:74
#: pretix/control/templates/pretixcontrol/orders/index.html:82
#: pretix/plugins/reports/exporters.py:242
@@ -77,14 +77,14 @@ msgstr "E-Mail"
msgid "Order date"
msgstr "Bestelldatum"
#: pretix/base/exporters/orderlist.py:39
#: pretix/base/exporters/orderlist.py:60
#: pretix/control/templates/pretixcontrol/order/index.html:266
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:77
#: pretix/presale/templates/pretixpresale/event/order.html:161
msgid "Company"
msgstr "Firma"
#: pretix/base/exporters/orderlist.py:39 pretix/base/models/event.py:56
#: pretix/base/exporters/orderlist.py:60 pretix/base/models/event.py:57
#: pretix/base/models/items.py:499 pretix/base/models/organizer.py:27
#: pretix/control/templates/pretixcontrol/order/index.html:268
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:79
@@ -93,35 +93,68 @@ msgstr "Firma"
msgid "Name"
msgstr "Name"
#: pretix/base/exporters/orderlist.py:39 pretix/base/models/orders.py:547
#: pretix/base/exporters/orderlist.py:60 pretix/base/models/orders.py:547
#: pretix/control/templates/pretixcontrol/order/index.html:270
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:81
#: pretix/presale/templates/pretixpresale/event/order.html:165
msgid "Address"
msgstr "Adresse"
#: pretix/base/exporters/orderlist.py:39 pretix/base/models/orders.py:548
#: pretix/base/exporters/orderlist.py:60 pretix/base/models/orders.py:548
msgid "ZIP code"
msgstr "Postleitzahl"
#: pretix/base/exporters/orderlist.py:39 pretix/base/models/orders.py:549
#: pretix/base/exporters/orderlist.py:60 pretix/base/models/orders.py:549
msgid "City"
msgstr "Ort"
#: pretix/base/exporters/orderlist.py:39 pretix/base/models/orders.py:550
#: pretix/base/exporters/orderlist.py:60 pretix/base/models/orders.py:550
#: pretix/control/templates/pretixcontrol/order/index.html:274
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:85
#: pretix/presale/templates/pretixpresale/event/order.html:169
msgid "Country"
msgstr "Land"
#: pretix/base/exporters/orderlist.py:39 pretix/base/models/orders.py:551
#: pretix/base/exporters/orderlist.py:60 pretix/base/models/orders.py:551
#: pretix/control/templates/pretixcontrol/order/index.html:277
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:88
#: pretix/presale/templates/pretixpresale/event/order.html:172
msgid "VAT ID"
msgstr "USt-ID"
#: pretix/base/exporters/orderlist.py:61 pretix/base/models/orders.py:127
#: pretix/control/templates/pretixcontrol/order/index.html:77
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:11
#: pretix/plugins/reports/exporters.py:243
#: pretix/plugins/reports/exporters.py:303
msgid "Payment date"
msgstr "Zahlungsdatum"
#: pretix/base/exporters/orderlist.py:61
msgid "Payment type"
msgstr "Zahlungsart"
#: pretix/base/exporters/orderlist.py:61 pretix/base/models/orders.py:137
#: pretix/control/templates/pretixcontrol/order/index.html:208
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:108
msgid "Payment method fee"
msgstr "Gebühr für gewählte Zahlungsmethode"
#: pretix/base/exporters/orderlist.py:66
#, python-brace-format
msgid "Gross at {rate} % tax"
msgstr "Brutto {rate} %"
#: pretix/base/exporters/orderlist.py:67
#, python-brace-format
msgid "Net at {rate} % tax"
msgstr "Netto {rate} %"
#: pretix/base/exporters/orderlist.py:68
#, python-brace-format
msgid "Tax value at {rate} % tax"
msgstr "Steuer {rate} %"
#: pretix/base/forms/__init__.py:95
msgid "disabled"
msgstr "deaktiviert"
@@ -273,7 +306,7 @@ msgstr "%(family)s, %(given)s"
msgid "Account information changed"
msgstr "Account-Informationen geändert"
#: pretix/base/models/event.py:61 pretix/base/models/organizer.py:31
#: pretix/base/models/event.py:62 pretix/base/models/organizer.py:31
msgid ""
"Should be short, only contain lowercase letters and numbers, and must be "
"unique among your events. This is being used in addresses and bank transfer "
@@ -283,36 +316,36 @@ msgstr ""
"unter deinen Veranstaltungen einmalig sein. Wird in URLs und "
"Verwendungszwecken für Banküberweisungen benutzt."
#: pretix/base/models/event.py:66 pretix/base/models/organizer.py:36
#: pretix/base/models/event.py:67 pretix/base/models/organizer.py:36
msgid "The slug may only contain letters, numbers, dots and dashes."
msgstr ""
"Die Kurzform darf nur Buchstaben, Zahlen, Punkte und Bindestriche enthalten."
#: pretix/base/models/event.py:69 pretix/base/models/organizer.py:39
#: pretix/base/models/event.py:70 pretix/base/models/organizer.py:39
msgid "Slug"
msgstr "Kurzform"
#: pretix/base/models/event.py:71
#: pretix/base/models/event.py:72
msgid "Shop is live"
msgstr "Shop ist live"
#: pretix/base/models/event.py:75
#: pretix/base/models/event.py:76
msgid "Default currency"
msgstr "Standardwährung"
#: pretix/base/models/event.py:77
#: pretix/base/models/event.py:78
msgid "Event start time"
msgstr "Veranstaltungsbeginn"
#: pretix/base/models/event.py:79
#: pretix/base/models/event.py:80
msgid "Event end time"
msgstr "Veranstaltungsende"
#: pretix/base/models/event.py:81
#: pretix/base/models/event.py:82
msgid "Visible in public lists"
msgstr "Öffentlich sichtbar"
#: pretix/base/models/event.py:82
#: pretix/base/models/event.py:83
msgid ""
"If selected, this event may show up on the ticket system's start page or an "
"organization profile."
@@ -321,86 +354,86 @@ msgstr ""
"dieses Vorverkaufssystem oder auf der Profilseite eines Veranstalters "
"angezeigt werden."
#: pretix/base/models/event.py:86
#: pretix/base/models/event.py:87
msgid "End of presale"
msgstr "Ende des Vorverkaufs"
#: pretix/base/models/event.py:87
#: pretix/base/models/event.py:88
msgid "No products will be sold after this date."
msgstr "Es werden nach diesem Termin keine Produkte mehr verkauft."
#: pretix/base/models/event.py:91
#: pretix/base/models/event.py:92
msgid "Start of presale"
msgstr "Beginn des Vorverkaufs"
#: pretix/base/models/event.py:92
#: pretix/base/models/event.py:93
msgid "No products will be sold before this date."
msgstr "Es werden vor diesem Termin keine Produkte verkauft."
#: pretix/base/models/event.py:96
#: pretix/base/models/event.py:97
#: pretix/control/templates/pretixcontrol/event/settings_base.html:21
msgid "Plugins"
msgstr "Erweiterungen"
#: pretix/base/models/event.py:100 pretix/base/models/items.py:118
#: pretix/base/models/event.py:101 pretix/base/models/items.py:118
#: pretix/base/models/items.py:495 pretix/base/models/orders.py:108
#: pretix/base/models/orders.py:507 pretix/base/models/vouchers.py:64
#: pretix/base/services/invoices.py:257
msgid "Event"
msgstr "Veranstaltung"
#: pretix/base/models/event.py:101
#: pretix/base/models/event.py:102
#: pretix/control/templates/pretixcontrol/base.html:115
#: pretix/control/templates/pretixcontrol/events/index.html:3
#: pretix/control/templates/pretixcontrol/events/index.html:5
msgid "Events"
msgstr "Veranstaltungen"
#: pretix/base/models/event.py:114
#: pretix/base/models/event.py:115
msgid "The end of the presale period has to be later than its start."
msgstr "Das Ende des Vorverkaufs muss nach seinem Beginn liegen."
#: pretix/base/models/event.py:116
#: pretix/base/models/event.py:117
msgid "The end of the event has to be later than its start."
msgstr "Das Ende der Veranstaltung muss nach ihrem Beginn liegen."
#: pretix/base/models/event.py:230
#: pretix/base/models/event.py:233
msgid "Can change event settings"
msgstr "Kann Veranstaltungseinstellungen ändern"
#: pretix/base/models/event.py:234
#: pretix/base/models/event.py:237
msgid "Can change product settings"
msgstr "Kann Produkte ändern"
#: pretix/base/models/event.py:238
#: pretix/base/models/event.py:241
msgid "Can view orders"
msgstr "Kann Bestellungen einsehen"
#: pretix/base/models/event.py:242
#: pretix/base/models/event.py:245
msgid "Can change permissions"
msgstr "Kann Berechtigungen verändern"
#: pretix/base/models/event.py:246
#: pretix/base/models/event.py:249
msgid "Can change orders"
msgstr "Kann Bestellungen verändern"
#: pretix/base/models/event.py:250
#: pretix/base/models/event.py:253
msgid "Can view vouchers"
msgstr "Kann Gutscheine einsehen"
#: pretix/base/models/event.py:254
#: pretix/base/models/event.py:257
msgid "Can change vouchers"
msgstr "Kann Gutscheine verändern"
#: pretix/base/models/event.py:258
#: pretix/base/models/event.py:261
msgid "Event permission"
msgstr "Veranstaltungs-Berechtigung"
#: pretix/base/models/event.py:259
#: pretix/base/models/event.py:262
msgid "Event permissions"
msgstr "Veranstaltungs-Berechtigungen"
#: pretix/base/models/event.py:262 pretix/base/models/organizer.py:103
#: pretix/base/models/event.py:265 pretix/base/models/organizer.py:103
#, python-format
msgid "%(name)s on %(object)s"
msgstr "%(name)s für %(object)s"
@@ -706,24 +739,10 @@ msgstr "Datum"
msgid "Expiration date"
msgstr "Ablaufdatum"
#: pretix/base/models/orders.py:127
#: pretix/control/templates/pretixcontrol/order/index.html:77
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:11
#: pretix/plugins/reports/exporters.py:243
#: pretix/plugins/reports/exporters.py:303
msgid "Payment date"
msgstr "Zahlungsdatum"
#: pretix/base/models/orders.py:133
msgid "Payment provider"
msgstr "Zahlungsmethode"
#: pretix/base/models/orders.py:137
#: pretix/control/templates/pretixcontrol/order/index.html:208
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:108
msgid "Payment method fee"
msgstr "Gebühr für gewählte Zahlungsmethode"
#: pretix/base/models/orders.py:141
msgid "Payment method fee tax rate"
msgstr "Steuersatz auf Gebühr für gewählte Zahlungsmethode"