forked from github/pretix-servicefees
Allow to exclude resellers from service fees
This commit is contained in:
parent
6ba7d2a5ff
commit
e4f33304b1
1 changed files with 14 additions and 3 deletions
|
@ -31,7 +31,7 @@ def navbar_settings(sender, request, **kwargs):
|
||||||
def get_fees(event, total, invoice_address, mod='', request=None, positions=[], gift_cards=None):
|
def get_fees(event, total, invoice_address, mod='', request=None, positions=[], gift_cards=None):
|
||||||
if request is not None and not positions:
|
if request is not None and not positions:
|
||||||
positions = get_cart(request)
|
positions = get_cart(request)
|
||||||
positions = [pos for pos in positions if not pos.addon_to and pos.price != Decimal('0.00')]
|
positions = [pos for pos in positions if not pos.addon_to_id and pos.price != Decimal('0.00')]
|
||||||
|
|
||||||
fee_per_ticket = event.settings.get('service_fee_per_ticket' + mod, as_type=Decimal)
|
fee_per_ticket = event.settings.get('service_fee_per_ticket' + mod, as_type=Decimal)
|
||||||
if mod and fee_per_ticket is None:
|
if mod and fee_per_ticket is None:
|
||||||
|
@ -97,7 +97,9 @@ def cart_fee(sender: Event, request: HttpRequest, invoice_address, total, **kwar
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
get_reseller_and_user(request)
|
reseller, user = get_reseller_and_user(request)
|
||||||
|
if getattr(reseller, 'do_not_charge_service_fees', False):
|
||||||
|
return []
|
||||||
except ResellerException:
|
except ResellerException:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
|
@ -110,6 +112,15 @@ def order_fee(sender: Event, positions, invoice_address, total, meta_info, gift_
|
||||||
mod = ''
|
mod = ''
|
||||||
if meta_info.get('servicefees_reseller_id'):
|
if meta_info.get('servicefees_reseller_id'):
|
||||||
mod = '_resellers'
|
mod = '_resellers'
|
||||||
|
try:
|
||||||
|
from pretix_resellers.models import Reseller
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
r = Reseller.objects.get(pk=meta_info.get('servicefees_reseller_id'))
|
||||||
|
if getattr(r, 'do_not_charge_service_fees', False):
|
||||||
|
return []
|
||||||
|
|
||||||
return get_fees(sender, total, invoice_address, mod, positions=positions, gift_cards=gift_cards)
|
return get_fees(sender, total, invoice_address, mod, positions=positions, gift_cards=gift_cards)
|
||||||
|
|
||||||
|
|
||||||
|
@ -143,7 +154,7 @@ def order_meta_signal(sender: Event, request: HttpRequest, **kwargs):
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
user, reseller = get_reseller_and_user(request)
|
reseller, user = get_reseller_and_user(request)
|
||||||
meta['servicefees_reseller_id'] = reseller.pk
|
meta['servicefees_reseller_id'] = reseller.pk
|
||||||
except ResellerException:
|
except ResellerException:
|
||||||
pass
|
pass
|
||||||
|
|
Loading…
Reference in a new issue