Actually issue giftcards

This commit is contained in:
Raphael Michel
2019-09-18 21:35:30 +02:00
parent 8c50b7409f
commit 73dd94fe73
3 changed files with 1708 additions and 18 deletions

View File

@@ -44,8 +44,8 @@ from pretix.base.services.pricing import get_price
from pretix.base.services.tasks import ProfiledEventTask, ProfiledTask
from pretix.base.signals import (
allow_ticket_download, order_approved, order_canceled, order_changed,
order_denied, order_expired, order_fee_calculation, order_placed,
order_split, periodic_task, validate_order,
order_denied, order_expired, order_fee_calculation, order_paid,
order_placed, order_split, periodic_task, validate_order,
)
from pretix.celery_app import app
from pretix.helpers.models import modelcopy
@@ -1627,6 +1627,7 @@ def change_payment_provider(order: Order, payment_provider, amount=None, new_pay
order.total = (order.positions.aggregate(sum=Sum('price'))['sum'] or 0) + (order.fees.aggregate(sum=Sum('value'))['sum'] or 0)
order.save(update_fields=['total'])
<<<<<<< HEAD
if not new_payment:
new_payment = order.payments.create(
@@ -1654,3 +1655,17 @@ def change_payment_provider(order: Order, payment_provider, amount=None, new_pay
generate_invoice(order)
return old_fee, new_fee, fee, new_payment
=======
return old_fee, new_fee, fee
@receiver(order_paid, dispatch_uid="pretixbase_order_paid_giftcards")
@transaction.atomic()
def signal_listener_issue_giftcards(sender: Event, order: Order, **kwargs):
for p in order.positions.all():
if p.item.issue_giftcard:
gc = sender.organizer.issued_gift_cards.create(
currency=sender.currency, issued_in=p
)
gc.transactions.create(value=p.price, order=order)
>>>>>>> 1c09d226e... Actually issue giftcards

File diff suppressed because it is too large Load Diff