mirror of
https://github.com/pretix/pretix.git
synced 2026-09-14 16:24:43 +00:00
OrderChangeManager: Do not mark order pending when adjusting price to actual payment
This commit is contained in:
@@ -922,6 +922,7 @@ class OrderChangeManager:
|
|||||||
|
|
||||||
def _check_paid_price_change(self):
|
def _check_paid_price_change(self):
|
||||||
if self.order.status == Order.STATUS_PAID and self._totaldiff > 0:
|
if self.order.status == Order.STATUS_PAID and self._totaldiff > 0:
|
||||||
|
if self.order.pending_sum > Decimal('0.00'):
|
||||||
self.order.status = Order.STATUS_PENDING
|
self.order.status = Order.STATUS_PENDING
|
||||||
self.order.set_expires(
|
self.order.set_expires(
|
||||||
now(),
|
now(),
|
||||||
|
|||||||
@@ -777,6 +777,27 @@ class OrderChangeManagerTests(TestCase):
|
|||||||
assert self.order.pending_sum == Decimal('2.00')
|
assert self.order.pending_sum == Decimal('2.00')
|
||||||
assert self.order.status == Order.STATUS_PENDING
|
assert self.order.status == Order.STATUS_PENDING
|
||||||
|
|
||||||
|
def test_change_paid_stays_paid_when_overpaid(self):
|
||||||
|
self.order.status = Order.STATUS_PAID
|
||||||
|
self.order.save()
|
||||||
|
self.order.payments.create(
|
||||||
|
provider='manual',
|
||||||
|
state=OrderPayment.PAYMENT_STATE_CONFIRMED,
|
||||||
|
amount=self.order.total,
|
||||||
|
)
|
||||||
|
self.order.payments.create(
|
||||||
|
provider='manual',
|
||||||
|
state=OrderPayment.PAYMENT_STATE_CONFIRMED,
|
||||||
|
amount=Decimal('2.00'),
|
||||||
|
)
|
||||||
|
assert self.order.pending_sum == Decimal('-2.00')
|
||||||
|
self.ocm.change_price(self.op1, Decimal('25.00'))
|
||||||
|
self.ocm.commit()
|
||||||
|
self.order.refresh_from_db()
|
||||||
|
assert self.order.total == Decimal('48.00')
|
||||||
|
assert self.order.pending_sum == Decimal('0.00')
|
||||||
|
assert self.order.status == Order.STATUS_PAID
|
||||||
|
|
||||||
def test_add_item_quota_required(self):
|
def test_add_item_quota_required(self):
|
||||||
self.quota.delete()
|
self.quota.delete()
|
||||||
with self.assertRaises(OrderError):
|
with self.assertRaises(OrderError):
|
||||||
|
|||||||
Reference in New Issue
Block a user