mirror of
https://github.com/pretix/pretix.git
synced 2026-10-08 20:24:41 +00:00
Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f9e5c77b58 | ||
|
|
65285b7b5f |
@@ -678,6 +678,13 @@ def _cancel_order(order, user=None, send_mail: bool=True, api_token=None, device
|
||||
|
||||
for p in order.payments.filter(state__in=(OrderPayment.PAYMENT_STATE_CREATED, OrderPayment.PAYMENT_STATE_PENDING)):
|
||||
try:
|
||||
if not p.payment_provider:
|
||||
raise PaymentException(
|
||||
_("The payment {payment} could not be canceled as the payment provider ({provider}) is not available anymore.").format(
|
||||
payment=str(p),
|
||||
provider=p.provider
|
||||
)
|
||||
)
|
||||
with transaction.atomic():
|
||||
p.payment_provider.cancel_payment(p)
|
||||
order.log_action(
|
||||
|
||||
@@ -874,6 +874,13 @@ class OrderPaymentCancel(OrderView):
|
||||
def post(self, *args, **kwargs):
|
||||
if self.payment.state in (OrderPayment.PAYMENT_STATE_CREATED, OrderPayment.PAYMENT_STATE_PENDING):
|
||||
try:
|
||||
if not self.payment.payment_provider:
|
||||
raise PaymentException(
|
||||
_('The payment {payment} can not be canceled as the payment provider "{provider}" is not available anymore.').format(
|
||||
payment=str(self.payment),
|
||||
provider=self.payment.provider
|
||||
)
|
||||
)
|
||||
with transaction.atomic():
|
||||
self.payment.payment_provider.cancel_payment(self.payment)
|
||||
self.order.log_action('pretix.event.order.payment.canceled', {
|
||||
@@ -898,6 +905,16 @@ class OrderPaymentCancel(OrderView):
|
||||
return redirect(self.get_order_url())
|
||||
|
||||
def get(self, *args, **kwargs):
|
||||
if not self.payment.payment_provider:
|
||||
messages.error(
|
||||
self.request,
|
||||
_('The payment {payment} can not be canceled as the payment provider "{provider}" is not available anymore.').format(
|
||||
payment=str(self.payment),
|
||||
provider=self.payment.provider
|
||||
)
|
||||
)
|
||||
return redirect(self.get_order_url())
|
||||
|
||||
return render(self.request, 'pretixcontrol/order/pay_cancel.html', {
|
||||
'order': self.order,
|
||||
})
|
||||
@@ -1077,6 +1094,16 @@ class OrderPaymentConfirm(OrderView):
|
||||
return redirect(self.get_order_url())
|
||||
|
||||
def get(self, *args, **kwargs):
|
||||
if not self.payment.payment_provider:
|
||||
messages.error(
|
||||
self.request,
|
||||
_('The payment {payment} can not be confirmend as the payment provider "{provider}" is not available anymore.').format(
|
||||
payment=str(self.payment),
|
||||
provider=self.payment.provider
|
||||
)
|
||||
)
|
||||
return redirect(self.get_order_url())
|
||||
|
||||
return render(self.request, 'pretixcontrol/order/pay_complete.html', {
|
||||
'form': self.mark_paid_form,
|
||||
'order': self.order,
|
||||
|
||||
@@ -355,10 +355,11 @@ class OrderDetails(EventViewMixin, OrderDetailMixin, CartMixin, TicketPageMixin,
|
||||
ctx['last_payment'] = lp
|
||||
|
||||
pp = lp.payment_provider
|
||||
ctx['last_payment_info'] = pp.payment_pending_render(self.request, ctx['last_payment'])
|
||||
if pp:
|
||||
ctx['last_payment_info'] = pp.payment_pending_render(self.request, ctx['last_payment'])
|
||||
|
||||
if lp.state == OrderPayment.PAYMENT_STATE_PENDING and not pp._payment_abort_pending_allowed(lp):
|
||||
ctx['can_pay'] = False
|
||||
if lp.state == OrderPayment.PAYMENT_STATE_PENDING and not pp._payment_abort_pending_allowed(lp):
|
||||
ctx['can_pay'] = False
|
||||
|
||||
ctx['can_pay'] = ctx['can_pay'] and self.order._can_be_paid() is True
|
||||
|
||||
|
||||
@@ -74,13 +74,13 @@ def order(item):
|
||||
datetime=now())
|
||||
OrderPosition.objects.create(order=o, item=item, price=13)
|
||||
p1 = o.payments.create(
|
||||
provider='stripe',
|
||||
provider='manual',
|
||||
state='refunded',
|
||||
amount=Decimal('23.00'),
|
||||
payment_date=o.datetime,
|
||||
)
|
||||
o.refunds.create(
|
||||
provider='stripe',
|
||||
provider='manual',
|
||||
state='done',
|
||||
source='admin',
|
||||
amount=Decimal('23.00'),
|
||||
|
||||
Reference in New Issue
Block a user