New signals: fee_calculation_for_cart, order_fee_calculation

This commit is contained in:
Raphael Michel
2017-09-07 18:59:21 +02:00
parent de992cecf3
commit 7c4fc7bd0d
7 changed files with 46 additions and 12 deletions

View File

@@ -20,6 +20,7 @@ from pretix.base.services.async import ProfiledTask
from pretix.base.services.locking import LockTimeoutException
from pretix.base.services.pricing import get_price
from pretix.celery_app import app
from pretix.presale.signals import fee_calculation_for_cart
class CartError(LazyLocaleException):
@@ -627,7 +628,7 @@ def update_tax_rates(event: Event, cart_id: str, invoice_address: InvoiceAddress
return totaldiff
def get_fees(event, total, invoice_address, provider):
def get_fees(event, request, total, invoice_address, provider):
fees = []
if total == 0:
@@ -643,7 +644,7 @@ def get_fees(event, total, invoice_address, provider):
if payment_fee_tax_rule.tax_applicable(invoice_address):
payment_fee_tax = payment_fee_tax_rule.tax(payment_fee, base_price_is='gross')
fees.append(OrderFee(
fee_type="PAYMENT",
fee_type=OrderFee.FEE_TYPE_PAYMENT,
value=payment_fee,
tax_rate=payment_fee_tax.rate,
tax_value=payment_fee_tax.tax,
@@ -651,13 +652,16 @@ def get_fees(event, total, invoice_address, provider):
))
else:
fees.append(OrderFee(
fee_type="PAYMENT",
fee_type=OrderFee.FEE_TYPE_PAYMENT,
value=payment_fee,
tax_rate=Decimal('0.00'),
tax_value=Decimal('0.00'),
tax_rule=payment_fee_tax_rule
))
for recv, resp in fee_calculation_for_cart.send(sender=event, request=request, invoice_address=invoice_address):
fees += resp
return fees