Invoices: Change expected behaviour for switches in numbering scheme

This commit is contained in:
Raphael Michel
2021-10-29 12:09:09 +02:00
parent c209d195bf
commit abeddd360e
3 changed files with 14 additions and 8 deletions
+1 -1
View File
@@ -36,7 +36,7 @@ from django.db import transaction
dirty_transactions = threading.local()
logger = logging.getLogger(__name__)
fail_loudly = os.getenv('PRETIX_DIRTY_TRANSACTIONS_QUIET', 'false') not in ('true', 'True', 'on', '1')
fail_loudly = os.getenv('PRETIX_DIRTY_TRANSACTIONS_QUIET', 'false' if settings.DEBUG else 'true') not in ('true', 'True', 'on', '1')
class DirtyTransactionsForOrderException(Exception):
+1 -1
View File
@@ -237,7 +237,7 @@ class Invoice(models.Model):
def _get_invoice_number_from_order(self):
return '{order}-{count}'.format(
order=self.order.code,
count=Invoice.objects.filter(event=self.event, order=self.order).count() + 1,
count=Invoice.objects.filter(event=self.event, prefix=self.prefix, invoice_no__startswith=f"{self.order.code}-", order=self.order).count() + 1,
)
def save(self, *args, **kwargs):
+12 -6
View File
@@ -447,8 +447,8 @@ def test_invoice_numbers(env):
# expected behaviour for switching between numbering formats or dealing with gaps
assert inv1.invoice_no == '00001'
assert inv2.invoice_no == '00002'
assert inv3.invoice_no == '{}-3'.format(order.code)
assert inv4.invoice_no == '{}-4'.format(order.code)
assert inv3.invoice_no == '{}-1'.format(order.code)
assert inv4.invoice_no == '{}-2'.format(order.code)
assert inv5.invoice_no == '00003'
assert inv6.invoice_no == '00004'
assert inv7.invoice_no == '00005'
@@ -465,10 +465,10 @@ def test_invoice_numbers(env):
# test Invoice.number, too
assert inv1.number == '{}-00001'.format(event.slug.upper())
assert inv3.number == '{}-{}-3'.format(event.slug.upper(), order.code)
assert inv3.number == '{}-{}-1'.format(event.slug.upper(), order.code)
assert invt1.number == '{}-TEST-00001'.format(event.slug.upper())
assert invt2.number == '{}-TEST-{}-2'.format(event.slug.upper(), testorder.code)
assert invt2.number == '{}-TEST-{}-1'.format(event.slug.upper(), testorder.code)
assert invt3.number == '{}-TEST-00002'.format(event.slug.upper())
@@ -513,8 +513,8 @@ def test_invoice_number_prefixes(env):
event.settings.set('invoice_numbers_consecutive', False)
event2.settings.set('invoice_numbers_consecutive', False)
assert generate_invoice(order).number == 'shared_{}-6'.format(order.code)
assert generate_invoice(order2).number == 'shared_{}-6'.format(order2.code)
assert generate_invoice(order).number == 'shared_{}-1'.format(order.code)
assert generate_invoice(order2).number == 'shared_{}-1'.format(order2.code)
event2.settings.set('invoice_numbers_prefix', 'inv_')
event2.settings.set('invoice_numbers_prefix_cancellations', 'crd_')
@@ -524,6 +524,12 @@ def test_invoice_number_prefixes(env):
assert i.number == 'inv_0001'
assert generate_cancellation(i).number == 'crd_0001'
event2.settings.set('invoice_numbers_consecutive', False)
i = generate_invoice(order2)
assert i.number == f'inv_{order2.code}-1'
assert generate_cancellation(i).number == f'crd_{order2.code}-1'
event2.settings.set('invoice_numbers_consecutive', True)
event2.settings.set('invoice_numbers_prefix', 'inv_%Y%m%d_')
i = generate_invoice(order2)
assert i.number == 'inv_%s_0001' % now().date().strftime('%Y%m%d')