32 lines
828 B
Python
32 lines
828 B
Python
from django.db import migrations
|
|
|
|
|
|
def backfill_voucher_numbers(apps, schema_editor):
|
|
Voucher = apps.get_model('accounting', 'Voucher')
|
|
|
|
max_number = (
|
|
Voucher.objects.exclude(number__lte=0)
|
|
.order_by('-number')
|
|
.values_list('number', flat=True)
|
|
.first()
|
|
or 0
|
|
)
|
|
|
|
missing_number_vouchers = Voucher.objects.filter(number__lte=0).order_by('created_at', 'id')
|
|
|
|
next_number = max_number + 1
|
|
for voucher in missing_number_vouchers:
|
|
voucher.number = next_number
|
|
voucher.save(update_fields=['number'])
|
|
next_number += 1
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
dependencies = [
|
|
('accounting', '0006_treasury_fee_fields'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.RunPython(backfill_voucher_numbers, migrations.RunPython.noop),
|
|
]
|