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 csv
import io import io
from collections import OrderedDict from collections import OrderedDict
from decimal import Decimal
import pytz
from django import forms from django import forms
from django.db.models import Sum
from django.dispatch import receiver from django.dispatch import receiver
from django.utils.translation import ugettext as _ 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 ..exporter import BaseExporter
from ..signals import register_data_exporters from ..signals import register_data_exporters, register_payment_providers
class OrderListExporter(BaseExporter): 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): def render(self, form_data: dict):
output = io.StringIO() output = io.StringIO()
tz = pytz.timezone(self.event.settings.timezone)
writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC, delimiter=",") writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC, delimiter=",")
qs = self.event.orders.all().select_related('invoice_address') 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']: if form_data['paid_only']:
qs = qs.filter(status=Order.STATUS_PAID) 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) 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 = [ row = [
order.code, order.code,
str(order.total), str(order.total),
order.get_status_display(), order.get_status_display(),
order.email, order.email,
order.datetime.strftime('%Y-%m-%d'), order.datetime.astimezone(tz).strftime('%Y-%m-%d'),
] ]
try: try:
row += [ row += [
@@ -64,6 +104,24 @@ class OrderListExporter(BaseExporter):
except InvoiceAddress.DoesNotExist: except InvoiceAddress.DoesNotExist:
row += ['', '', '', '', '', '', ''] 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) writer.writerow(row)
return 'orders.csv', 'text/csv', output.getvalue().encode("utf-8") return 'orders.csv', 'text/csv', output.getvalue().encode("utf-8")

View File

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

View File

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