mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-30 04:26:44 +00:00
Make "shipment" field required for a SalesOrderAllocation
- Deleting a "Shipment" will delete any "Allocation" objects which reference it - Improve existing data migration for new shipment model
This commit is contained in:
parent
ce5b47460a
commit
d31f2be955
@ -0,0 +1,19 @@
|
|||||||
|
# Generated by Django 3.2.5 on 2021-10-25 11:40
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('order', '0055_auto_20211025_0645'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='salesorderallocation',
|
||||||
|
name='shipment',
|
||||||
|
field=models.ForeignKey(help_text='Sales order shipment reference', on_delete=django.db.models.deletion.CASCADE, to='order.salesordershipment', verbose_name='Shipment'),
|
||||||
|
),
|
||||||
|
]
|
@ -1039,7 +1039,6 @@ class SalesOrderAllocation(models.Model):
|
|||||||
shipment = models.ForeignKey(
|
shipment = models.ForeignKey(
|
||||||
SalesOrderShipment,
|
SalesOrderShipment,
|
||||||
on_delete=models.CASCADE,
|
on_delete=models.CASCADE,
|
||||||
null=True, blank=True,
|
|
||||||
verbose_name=_('Shipment'),
|
verbose_name=_('Shipment'),
|
||||||
help_text=_('Sales order shipment reference'),
|
help_text=_('Sales order shipment reference'),
|
||||||
)
|
)
|
||||||
|
@ -27,10 +27,12 @@ class TestForwardMigrations(MigratorTestCase):
|
|||||||
supplier = Company.objects.create(
|
supplier = Company.objects.create(
|
||||||
name='Supplier A',
|
name='Supplier A',
|
||||||
description='A great supplier!',
|
description='A great supplier!',
|
||||||
is_supplier=True
|
is_supplier=True,
|
||||||
|
is_customer=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
PurchaseOrder = self.old_state.apps.get_model('order', 'purchaseorder')
|
PurchaseOrder = self.old_state.apps.get_model('order', 'purchaseorder')
|
||||||
|
SalesOrder = self.old_state.apps.get_model('order', 'salesorder')
|
||||||
|
|
||||||
# Create some orders
|
# Create some orders
|
||||||
for ii in range(10):
|
for ii in range(10):
|
||||||
@ -45,19 +47,32 @@ class TestForwardMigrations(MigratorTestCase):
|
|||||||
with self.assertRaises(AttributeError):
|
with self.assertRaises(AttributeError):
|
||||||
print(order.reference_int)
|
print(order.reference_int)
|
||||||
|
|
||||||
|
sales_order = SalesOrder.objects.create(
|
||||||
|
customer=supplier,
|
||||||
|
reference=f"{ii}-xyz",
|
||||||
|
description="A test sales order",
|
||||||
|
)
|
||||||
|
|
||||||
|
# Initially, the 'reference_int' field is unavailable
|
||||||
|
with self.assertRaises(AttributeError):
|
||||||
|
print(sales_order.reference_int)
|
||||||
|
|
||||||
def test_ref_field(self):
|
def test_ref_field(self):
|
||||||
"""
|
"""
|
||||||
Test that the 'reference_int' field has been created and is filled out correctly
|
Test that the 'reference_int' field has been created and is filled out correctly
|
||||||
"""
|
"""
|
||||||
|
|
||||||
PurchaseOrder = self.new_state.apps.get_model('order', 'purchaseorder')
|
PurchaseOrder = self.new_state.apps.get_model('order', 'purchaseorder')
|
||||||
|
SalesOrder = self.new_state.apps.get_model('order', 'salesorder')
|
||||||
|
|
||||||
for ii in range(10):
|
for ii in range(10):
|
||||||
|
|
||||||
order = PurchaseOrder.objects.get(reference=f"{ii}-abcde")
|
po = PurchaseOrder.objects.get(reference=f"{ii}-abcde")
|
||||||
|
so = SalesOrder.objects.get(reference=f"{ii}-xyz")
|
||||||
|
|
||||||
# The integer reference field must have been correctly updated
|
# The integer reference field must have been correctly updated
|
||||||
self.assertEqual(order.reference_int, ii)
|
self.assertEqual(po.reference_int, ii)
|
||||||
|
self.assertEqual(so.reference_int, ii)
|
||||||
|
|
||||||
|
|
||||||
class TestShipmentMigration(MigratorTestCase):
|
class TestShipmentMigration(MigratorTestCase):
|
||||||
@ -93,6 +108,10 @@ class TestShipmentMigration(MigratorTestCase):
|
|||||||
|
|
||||||
order.save()
|
order.save()
|
||||||
|
|
||||||
|
# The "shipment" model does not exist yet
|
||||||
|
with self.assertRaises(LookupError):
|
||||||
|
self.old_state.apps.get_model('order', 'salesordershipment')
|
||||||
|
|
||||||
def test_shipment_creation(self):
|
def test_shipment_creation(self):
|
||||||
"""
|
"""
|
||||||
Check that a SalesOrderShipment has been created
|
Check that a SalesOrderShipment has been created
|
||||||
|
Loading…
x
Reference in New Issue
Block a user