Merge pull request #10 from labtwentyfive/add-relative-service-fees

Allow for service fees based on order total
This commit is contained in:
Raphael Michel 2019-04-03 15:01:47 +01:00 committed by GitHub
commit 54025208aa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 145 additions and 4 deletions

View File

@ -45,5 +45,13 @@ msgid "Service fee"
msgstr ""
#: pretix_servicefees/views.py:12
msgid "Service fee (%)"
msgstr ""
#: pretix_servicefees/views.py:13
msgid "Service fee with resellers"
msgstr ""
#: pretix_servicefees/views.py:14
msgid "Service fee with resellers (%)"
msgstr ""

View File

@ -45,5 +45,13 @@ msgid "Service fee"
msgstr ""
#: pretix_servicefees/views.py:12
msgid "Service fee (%)"
msgstr ""
#: pretix_servicefees/views.py:13
msgid "Service fee with resellers"
msgstr ""
#: pretix_servicefees/views.py:14
msgid "Service fee with resellers (%)"
msgstr ""

View File

@ -48,5 +48,13 @@ msgid "Service fee"
msgstr ""
#: pretix_servicefees/views.py:12
msgid "Service fee (%)"
msgstr ""
#: pretix_servicefees/views.py:13
msgid "Service fee with resellers"
msgstr ""
#: pretix_servicefees/views.py:14
msgid "Service fee with resellers (%)"
msgstr ""

View File

@ -45,5 +45,13 @@ msgid "Service fee"
msgstr "Servicegebühr"
#: pretix_servicefees/views.py:12
msgid "Service fee (%)"
msgstr "Servicegebühr (%)"
#: pretix_servicefees/views.py:13
msgid "Service fee with resellers"
msgstr "Servicegebühr für Vorverkaufsstellen"
#: pretix_servicefees/views.py:14
msgid "Service fee with resellers (%)"
msgstr "Servicegebühr für Vorverkaufsstellen (%)"

View File

@ -45,5 +45,13 @@ msgid "Service fee"
msgstr "Servicegebühr"
#: pretix_servicefees/views.py:12
msgid "Service fee (%)"
msgstr "Servicegebühr (%)"
#: pretix_servicefees/views.py:13
msgid "Service fee with resellers"
msgstr "Servicegebühr für Vorverkaufsstellen"
#: pretix_servicefees/views.py:14
msgid "Service fee with resellers (%)"
msgstr "Servicegebühr für Vorverkaufsstellen (%)"

View File

@ -46,5 +46,13 @@ msgid "Service fee"
msgstr ""
#: pretix_servicefees/views.py:12
msgid "Service fee (%)"
msgstr ""
#: pretix_servicefees/views.py:13
msgid "Service fee with resellers"
msgstr ""
#: pretix_servicefees/views.py:14
msgid "Service fee with resellers (%)"
msgstr ""

View File

@ -45,5 +45,13 @@ msgid "Service fee"
msgstr ""
#: pretix_servicefees/views.py:12
msgid "Service fee (%)"
msgstr ""
#: pretix_servicefees/views.py:13
msgid "Service fee with resellers"
msgstr ""
#: pretix_servicefees/views.py:14
msgid "Service fee with resellers (%)"
msgstr ""

View File

@ -48,5 +48,13 @@ msgid "Service fee"
msgstr "Tarifa por servicio"
#: pretix_servicefees/views.py:12
msgid "Service fee (%)"
msgstr "Tarifa por servicio (%)"
#: pretix_servicefees/views.py:13
msgid "Service fee with resellers"
msgstr ""
#: pretix_servicefees/views.py:14
msgid "Service fee with resellers (%)"
msgstr ""

View File

@ -48,7 +48,15 @@ msgid "Service fee"
msgstr "Frais de service"
#: pretix_servicefees/views.py:12
msgid "Service fee (%)"
msgstr "Frais de service (%)"
#: pretix_servicefees/views.py:13
#, fuzzy
#| msgid "Service fees"
msgid "Service fee with resellers"
msgstr "Frais de service"
#: pretix_servicefees/views.py:14
msgid "Service fee with resellers (%)"
msgstr "Frais de service (%)"

View File

@ -45,5 +45,13 @@ msgid "Service fee"
msgstr ""
#: pretix_servicefees/views.py:12
msgid "Service fee (%)"
msgstr ""
#: pretix_servicefees/views.py:13
msgid "Service fee with resellers"
msgstr ""
#: pretix_servicefees/views.py:14
msgid "Service fee with resellers (%)"
msgstr ""

View File

@ -50,5 +50,13 @@ msgid "Service fee"
msgstr "Servicekosten"
#: pretix_servicefees/views.py:12
msgid "Service fee (%)"
msgstr "Servicekosten (%)"
#: pretix_servicefees/views.py:13
msgid "Service fee with resellers"
msgstr "Servicekosten voor wederverkopers"
#: pretix_servicefees/views.py:14
msgid "Service fee with resellers (%)"
msgstr "Servicekosten voor wederverkopers (%)"

View File

@ -45,5 +45,13 @@ msgid "Service fee"
msgstr ""
#: pretix_servicefees/views.py:12
msgid "Service fee (%)"
msgstr ""
#: pretix_servicefees/views.py:13
msgid "Service fee with resellers"
msgstr ""
#: pretix_servicefees/views.py:14
msgid "Service fee with resellers (%)"
msgstr ""

View File

@ -50,5 +50,13 @@ msgid "Service fee"
msgstr "Servicekosten"
#: pretix_servicefees/views.py:12
msgid "Service fee (%)"
msgstr "Servicekosten (%)"
#: pretix_servicefees/views.py:13
msgid "Service fee with resellers"
msgstr "Servicekosten voor wederverkopers"
#: pretix_servicefees/views.py:14
msgid "Service fee with resellers (%)"
msgstr "Servicekosten voor wederverkopers (%)"

View File

@ -45,5 +45,13 @@ msgid "Service fee"
msgstr ""
#: pretix_servicefees/views.py:12
msgid "Service fee (%)"
msgstr ""
#: pretix_servicefees/views.py:13
msgid "Service fee with resellers"
msgstr ""
#: pretix_servicefees/views.py:14
msgid "Service fee with resellers (%)"
msgstr ""

View File

@ -50,7 +50,15 @@ msgid "Service fee"
msgstr "Servis ücreti"
#: pretix_servicefees/views.py:12
msgid "Service fee (%)"
msgstr "Servis ücreti (%)"
#: pretix_servicefees/views.py:13
#, fuzzy
#| msgid "Service fees"
msgid "Service fee with resellers"
msgstr "Servis ücretleri"
#: pretix_servicefees/views.py:14
msgid "Service fee with resellers (%)"
msgstr "Servis ücretleri (%)"

View File

@ -4,6 +4,7 @@ from django.urls import resolve, reverse
from django.dispatch import receiver
from django.http import HttpRequest
from django.utils.translation import ugettext_lazy as _, ugettext, get_language
from pretix.base.decimal import round_decimal
from pretix.base.models import Event, Order, TaxRule
from pretix.base.models.orders import OrderFee
from pretix.base.signals import order_fee_calculation
@ -26,10 +27,16 @@ def navbar_settings(sender, request, **kwargs):
def get_fees(event, total, invoice_address, mod=''):
fee = event.settings.get('service_fee_abs' + mod, as_type=Decimal)
if mod and fee is None:
fee = event.settings.get('service_fee_abs', as_type=Decimal)
if fee and total != Decimal('0.00'):
fee_abs = event.settings.get('service_fee_abs' + mod, as_type=Decimal)
if mod and fee_abs is None:
fee_abs = event.settings.get('service_fee_abs', as_type=Decimal)
fee_percent = event.settings.get('service_fee_percent' + mod, as_type=Decimal)
if mod and fee_percent is None:
fee_percent = event.settings.get('service_fee_percent', as_type=Decimal)
if fee_abs and fee_percent and total != Decimal('0.00'):
fee = round_decimal(fee_abs + total * (fee_percent / 100), event.currency)
tax_rule = event.settings.tax_rate_default or TaxRule.zero()
if tax_rule.tax_applicable(invoice_address):
tax = tax_rule.tax(fee)

View File

@ -8,7 +8,9 @@
{% bootstrap_form_errors form %}
<fieldset>
{% bootstrap_field form.service_fee_abs layout="control" %}
{% bootstrap_field form.service_fee_percent layout="control" %}
{% bootstrap_field form.service_fee_abs_resellers layout="control" %}
{% bootstrap_field form.service_fee_percent_resellers layout="control" %}
</fieldset>
<div class="form-group submit-group">
<button type="submit" class="btn btn-primary btn-save">

View File

@ -9,7 +9,19 @@ from pretix.control.views.event import EventSettingsViewMixin, EventSettingsForm
class ServiceFeeSettingsForm(SettingsForm):
service_fee_abs = forms.DecimalField(label=_('Service fee'))
service_fee_percent = forms.DecimalField(
label=_('Service fee (%)'),
help_text=_('Percentage of the order total. Note that this percentage will currently only '
'be calculated on the summed price of sold tickets, not on other fees like e.'
'g. shipping fees, if there are any.')
)
service_fee_abs_resellers = forms.DecimalField(label=_('Service fee with resellers'))
service_fee_percent_resellers = forms.DecimalField(
label=_('Service fee with resellers (%)'),
help_text=_('Percentage of the order total. Note that this percentage will currently only '
'be calculated on the summed price of sold tickets, not on other fees like e.'
'g. shipping fees, if there are any.')
)
class SettingsView(EventSettingsViewMixin, EventSettingsFormView):