mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-17 12:35:46 +00:00
Merge branch 'master' of https://github.com/inventree/InvenTree into part-import
This commit is contained in:
@ -50,6 +50,15 @@
|
||||
supplier: 3
|
||||
status: 40 # Cancelled
|
||||
|
||||
# for pricebreaks
|
||||
- model: order.purchaseorder
|
||||
pk: 7
|
||||
fields:
|
||||
reference: '0007'
|
||||
description: 'Another PO'
|
||||
supplier: 2
|
||||
status: 10 # Pending
|
||||
|
||||
# Add some line items against PO 0001
|
||||
|
||||
# 100 x ACME0001 (M2x4 LPHS)
|
||||
|
@ -60,18 +60,18 @@ class PurchaseOrderTest(OrderTest):
|
||||
def test_po_list(self):
|
||||
|
||||
# List *ALL* PO items
|
||||
self.filter({}, 6)
|
||||
self.filter({}, 7)
|
||||
|
||||
# Filter by supplier
|
||||
self.filter({'supplier': 1}, 1)
|
||||
self.filter({'supplier': 3}, 5)
|
||||
|
||||
# Filter by "outstanding"
|
||||
self.filter({'outstanding': True}, 4)
|
||||
self.filter({'outstanding': True}, 5)
|
||||
self.filter({'outstanding': False}, 2)
|
||||
|
||||
# Filter by "status"
|
||||
self.filter({'status': 10}, 2)
|
||||
self.filter({'status': 10}, 3)
|
||||
self.filter({'status': 40}, 1)
|
||||
|
||||
def test_overdue(self):
|
||||
@ -80,14 +80,14 @@ class PurchaseOrderTest(OrderTest):
|
||||
"""
|
||||
|
||||
self.filter({'overdue': True}, 0)
|
||||
self.filter({'overdue': False}, 6)
|
||||
self.filter({'overdue': False}, 7)
|
||||
|
||||
order = PurchaseOrder.objects.get(pk=1)
|
||||
order.target_date = datetime.now().date() - timedelta(days=10)
|
||||
order.save()
|
||||
|
||||
self.filter({'overdue': True}, 1)
|
||||
self.filter({'overdue': False}, 5)
|
||||
self.filter({'overdue': False}, 6)
|
||||
|
||||
def test_po_detail(self):
|
||||
|
||||
|
@ -21,6 +21,7 @@ class OrderTest(TestCase):
|
||||
fixtures = [
|
||||
'company',
|
||||
'supplier_part',
|
||||
'price_breaks',
|
||||
'category',
|
||||
'part',
|
||||
'location',
|
||||
@ -63,7 +64,7 @@ class OrderTest(TestCase):
|
||||
|
||||
next_ref = PurchaseOrder.getNextOrderNumber()
|
||||
|
||||
self.assertEqual(next_ref, '0007')
|
||||
self.assertEqual(next_ref, '0008')
|
||||
|
||||
def test_on_order(self):
|
||||
""" There should be 3 separate items on order for the M2x4 LPHS part """
|
||||
@ -117,6 +118,39 @@ class OrderTest(TestCase):
|
||||
with self.assertRaises(django_exceptions.ValidationError):
|
||||
order.add_line_item(sku, 99)
|
||||
|
||||
def test_pricing(self):
|
||||
""" Test functions for adding line items to an order including price-breaks """
|
||||
|
||||
order = PurchaseOrder.objects.get(pk=7)
|
||||
|
||||
self.assertEqual(order.status, PurchaseOrderStatus.PENDING)
|
||||
self.assertEqual(order.lines.count(), 0)
|
||||
|
||||
sku = SupplierPart.objects.get(SKU='ZERGM312')
|
||||
part = sku.part
|
||||
|
||||
# Order the part
|
||||
self.assertEqual(part.on_order, 0)
|
||||
|
||||
# Order 25 with manually set high value
|
||||
pp = sku.get_price(25)
|
||||
order.add_line_item(sku, 25, purchase_price=pp)
|
||||
self.assertEqual(part.on_order, 25)
|
||||
self.assertEqual(order.lines.count(), 1)
|
||||
self.assertEqual(order.lines.first().purchase_price.amount, 200)
|
||||
|
||||
# Add a few, now the pricebreak should adjust although wrong price given
|
||||
order.add_line_item(sku, 10, purchase_price=sku.get_price(25))
|
||||
self.assertEqual(part.on_order, 35)
|
||||
self.assertEqual(order.lines.count(), 1)
|
||||
self.assertEqual(order.lines.first().purchase_price.amount, 8)
|
||||
|
||||
# Order the same part again (it should be merged)
|
||||
order.add_line_item(sku, 100, purchase_price=sku.get_price(100))
|
||||
self.assertEqual(order.lines.count(), 1)
|
||||
self.assertEqual(part.on_order, 135)
|
||||
self.assertEqual(order.lines.first().purchase_price.amount, 1.25)
|
||||
|
||||
def test_receive(self):
|
||||
""" Test order receiving functions """
|
||||
|
||||
|
Reference in New Issue
Block a user