Coverage for src/backend/InvenTree/order/migrations/0074_auto_20220709_0108.py: 72%
46 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 17:47 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 17:47 +0000
1# Generated by Django 3.2.14 on 2022-07-09 01:08
3from django.db import migrations
6def update_order_references(order_model, prefix):
7 """Update all references of the given model, with the specified prefix"""
9 n = 0
11 for order in order_model.objects.all(): 11 ↛ 12line 11 didn't jump to line 12 because the loop on line 11 never started
12 if not order.reference.startswith(prefix):
13 order.reference = prefix + order.reference
14 order.save()
16 n += 1
18 return n
21def update_salesorder_reference(apps, schema_editor):
22 """Migrate the reference pattern for the SalesOrder model"""
24 # Extract the existing "prefix" value
25 InvenTreeSetting = apps.get_model('common', 'inventreesetting')
27 try:
28 prefix = InvenTreeSetting.objects.get(key='SALESORDER_REFERENCE_PREFIX').value
29 except Exception:
30 prefix = 'SO-'
32 # Construct a reference pattern
33 pattern = prefix + '{ref:04d}'
35 # Create or update the BuildOrder.reference pattern
36 try:
37 setting = InvenTreeSetting.objects.get(key='SALESORDER_REFERENCE_PATTERN')
38 setting.value = pattern
39 setting.save()
40 except InvenTreeSetting.DoesNotExist:
41 setting = InvenTreeSetting.objects.create(
42 key='SALESORDER_REFERENCE_PATTERN',
43 value=pattern,
44 )
46 # Update any existing sales order references
47 SalesOrder = apps.get_model('order', 'salesorder')
48 n = update_order_references(SalesOrder, prefix)
50 if n > 0: 50 ↛ 51line 50 didn't jump to line 51 because the condition on line 50 was never true
51 print(f"Updated reference field for {n} SalesOrder objects")
54def update_purchaseorder_reference(apps, schema_editor):
55 """Migrate the reference pattern for the PurchaseOrder model"""
57 # Extract the existing "prefix" value
58 InvenTreeSetting = apps.get_model('common', 'inventreesetting')
60 try:
61 prefix = InvenTreeSetting.objects.get(key='PURCHASEORDER_REFERENCE_PREFIX').value
62 except Exception:
63 prefix = 'PO-'
65 # Construct a reference pattern
66 pattern = prefix + '{ref:04d}'
68 # Create or update the BuildOrder.reference pattern
69 try:
70 setting = InvenTreeSetting.objects.get(key='PURCHASEORDER_REFERENCE_PATTERN')
71 setting.value = pattern
72 setting.save()
73 except InvenTreeSetting.DoesNotExist:
74 setting = InvenTreeSetting.objects.create(
75 key='PURCHASEORDER_REFERENCE_PATTERN',
76 value=pattern,
77 )
79 # Update any existing sales order references
80 PurchaseOrder = apps.get_model('order', 'purchaseorder')
81 n = update_order_references(PurchaseOrder, prefix)
83 if n > 0: 83 ↛ 84line 83 didn't jump to line 84 because the condition on line 83 was never true
84 print(f"Updated reference field for {n} PurchaseOrder objects")
87class Migration(migrations.Migration):
89 dependencies = [
90 ('order', '0073_alter_purchaseorder_reference'),
91 ]
93 operations = [
94 migrations.RunPython(
95 update_salesorder_reference,
96 reverse_code=migrations.RunPython.noop,
97 ),
98 migrations.RunPython(
99 update_purchaseorder_reference,
100 reverse_code=migrations.RunPython.noop,
101 )
102 ]