Files
accounting-backend/accounting/migrations/0007_backfill_voucher_numbers.py
2026-07-11 16:53:05 +03:30

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),
]