mirror of
https://github.com/pretix/pretix-servicefees.git
synced 2024-11-23 22:50:21 +01:00
Allow to limit per-ticket fee to admission products
This commit is contained in:
parent
7c85925861
commit
f31b03ac41
3 changed files with 10 additions and 0 deletions
|
@ -7,6 +7,7 @@ from django.utils.translation import gettext_lazy as _, gettext, 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.settings import settings_hierarkey
|
||||
from pretix.base.signals import order_fee_calculation
|
||||
from pretix.base.templatetags.money import money_filter
|
||||
from pretix.control.signals import nav_event_settings
|
||||
|
@ -33,6 +34,10 @@ def get_fees(event, total, invoice_address, mod='', request=None, positions=[],
|
|||
positions = get_cart(request)
|
||||
positions = [pos for pos in positions if not pos.addon_to_id and pos.price != Decimal('0.00')]
|
||||
|
||||
skip_non_admission = event.settings.get('service_fee_skip_non_admission', as_type=bool)
|
||||
if skip_non_admission:
|
||||
positions = [pos for pos in positions if pos.item.admission]
|
||||
|
||||
fee_per_ticket = event.settings.get('service_fee_per_ticket' + mod, as_type=Decimal)
|
||||
if mod and fee_per_ticket is None:
|
||||
fee_per_ticket = event.settings.get('service_fee_per_ticket', as_type=Decimal)
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<fieldset>
|
||||
<legend>{% trans "Service fees" %}</legend>
|
||||
{% bootstrap_field form.service_fee_per_ticket addon_after=request.event.currency layout="control" %}
|
||||
{% bootstrap_field form.service_fee_skip_non_admission layout="control" %}
|
||||
{% bootstrap_field form.service_fee_abs addon_after=request.event.currency layout="control" %}
|
||||
{% bootstrap_field form.service_fee_percent addon_after="%" layout="control" %}
|
||||
{% bootstrap_field form.service_fee_skip_if_gift_card layout="control" %}
|
||||
|
|
|
@ -33,6 +33,10 @@ class ServiceFeeSettingsForm(SettingsForm):
|
|||
'submitted, not if it\'s used to pay an unpaid order later.'),
|
||||
required=False
|
||||
)
|
||||
service_fee_skip_non_admission = forms.BooleanField(
|
||||
label=_('Do not charge per-ticket service fee on non-admission products'),
|
||||
required=False
|
||||
)
|
||||
|
||||
service_fee_abs_resellers = forms.DecimalField(
|
||||
label=_('Fixed fee per order'),
|
||||
|
|
Loading…
Reference in a new issue