basket: don't assign cancelled credits (#89810)
This commit is contained in:
parent
b48de48412
commit
904203c808
|
@ -166,6 +166,7 @@ class Basket(models.Model):
|
|||
credit_qs = Credit.objects.filter(
|
||||
models.Q(pool__isnull=True) | models.Q(pool__campaign__finalized=True),
|
||||
date_publication__lte=datetime.date.today(),
|
||||
cancelled_at__isnull=True,
|
||||
remaining_amount__gt=0,
|
||||
regie=self.regie,
|
||||
payer_external_id=self.payer_external_id,
|
||||
|
|
|
@ -1710,6 +1710,7 @@ class CreditAssignment(models.Model):
|
|||
credit_qs = Credit.objects.filter(
|
||||
models.Q(pool__isnull=True) | models.Q(pool__campaign__finalized=True),
|
||||
date_publication__lte=datetime.date.today(),
|
||||
cancelled_at__isnull=True,
|
||||
remaining_amount__gt=0,
|
||||
regie=regie,
|
||||
payer_external_id=basket.payer_external_id,
|
||||
|
|
|
@ -588,6 +588,18 @@ def test_basket_validate_generate_invoice(app, simple_user):
|
|||
quantity=3,
|
||||
unit_amount=1,
|
||||
)
|
||||
other_credit = Credit.objects.create(
|
||||
date_publication=datetime.date(2022, 10, 1),
|
||||
regie=regie,
|
||||
payer_external_id='payer:1',
|
||||
cancelled_at=now(), # cancelled
|
||||
)
|
||||
CreditLine.objects.create(
|
||||
credit=other_credit,
|
||||
event_date=datetime.date(2022, 9, 1),
|
||||
quantity=3,
|
||||
unit_amount=1,
|
||||
)
|
||||
basket.status = 'open'
|
||||
basket.save()
|
||||
resp = app.get('/basket/validate/')
|
||||
|
|
|
@ -342,6 +342,24 @@ def test_basket_amounts_with_draft_invoice():
|
|||
assert basket.credit_amount == -1
|
||||
assert basket.remaining_amount == 9
|
||||
|
||||
# cancelled credit
|
||||
other_credit = Credit.objects.create(
|
||||
date_publication=datetime.date(2022, 10, 1),
|
||||
regie=regie,
|
||||
payer_external_id='payer:1',
|
||||
cancelled_at=now(),
|
||||
)
|
||||
CreditLine.objects.create(
|
||||
credit=other_credit,
|
||||
event_date=datetime.date(2022, 9, 1),
|
||||
quantity=3,
|
||||
unit_amount=1,
|
||||
)
|
||||
basket.draft_invoice.refresh_from_db()
|
||||
assert basket.total_amount == 10
|
||||
assert basket.credit_amount == -1
|
||||
assert basket.remaining_amount == 9
|
||||
|
||||
# credit == amount to pay
|
||||
campaign = Campaign.objects.create(
|
||||
regie=regie,
|
||||
|
|
|
@ -386,6 +386,18 @@ def test_basket_payment_with_assigned_credits(app, simple_user):
|
|||
quantity=3,
|
||||
unit_amount=1,
|
||||
)
|
||||
other_credit = Credit.objects.create(
|
||||
date_publication=datetime.date(2022, 10, 1),
|
||||
regie=regie,
|
||||
payer_external_id='payer:1',
|
||||
cancelled_at=now(), # cancelled
|
||||
)
|
||||
CreditLine.objects.create(
|
||||
credit=other_credit,
|
||||
event_date=datetime.date(2022, 9, 1),
|
||||
quantity=3,
|
||||
unit_amount=1,
|
||||
)
|
||||
|
||||
resp = app.get('/basket/validate/')
|
||||
resp = resp.form.submit()
|
||||
|
|
Loading…
Reference in New Issue