forked from CGM_Public/pretix_original
Banktransfer: Workaround for OrderPayment.MultipleObjectsReturned
Fix sentry issue PRETIXEU-Z7
This commit is contained in:
@@ -92,14 +92,23 @@ def _handle_transaction(trans: BankTransaction, code: str, event: Event=None, or
|
|||||||
trans.state = BankTransaction.STATE_ERROR
|
trans.state = BankTransaction.STATE_ERROR
|
||||||
trans.message = ugettext_noop('The order has already been canceled.')
|
trans.message = ugettext_noop('The order has already been canceled.')
|
||||||
else:
|
else:
|
||||||
p, created = trans.order.payments.get_or_create(
|
try:
|
||||||
amount=trans.amount,
|
p, created = trans.order.payments.get_or_create(
|
||||||
provider='banktransfer',
|
amount=trans.amount,
|
||||||
state__in=(OrderPayment.PAYMENT_STATE_CREATED, OrderPayment.PAYMENT_STATE_PENDING),
|
provider='banktransfer',
|
||||||
defaults={
|
state__in=(OrderPayment.PAYMENT_STATE_CREATED, OrderPayment.PAYMENT_STATE_PENDING),
|
||||||
'state': OrderPayment.PAYMENT_STATE_CREATED,
|
defaults={
|
||||||
}
|
'state': OrderPayment.PAYMENT_STATE_CREATED,
|
||||||
)
|
}
|
||||||
|
)
|
||||||
|
except OrderPayment.MultipleObjectsReturned:
|
||||||
|
created = False
|
||||||
|
p = trans.order.payments.filter(
|
||||||
|
amount=trans.amount,
|
||||||
|
provider='banktransfer',
|
||||||
|
state__in=(OrderPayment.PAYMENT_STATE_CREATED, OrderPayment.PAYMENT_STATE_PENDING),
|
||||||
|
).last()
|
||||||
|
|
||||||
p.info_data = {
|
p.info_data = {
|
||||||
'reference': trans.reference,
|
'reference': trans.reference,
|
||||||
'date': trans.date,
|
'date': trans.date,
|
||||||
|
|||||||
Reference in New Issue
Block a user