forked from erp-dev/erp
feat: added n-to-1 relation between sales_order_item and printing_job model
This commit is contained in:
@@ -147,6 +147,7 @@ class PurchaseOrderServiceTestCase(TestCase):
|
||||
self.assertEqual(purchase_order.items.count(), 1)
|
||||
item = purchase_order.items.first()
|
||||
self.assertEqual(item.quantity_of_rolls, '10,5')
|
||||
self.assertEqual(item.split_quantity_of_rolls(), [10, 5])
|
||||
mock_delay.assert_not_called()
|
||||
|
||||
def test_review_purchase_order_approval_triggers_task(self):
|
||||
@@ -210,7 +211,9 @@ class PurchaseOrderServiceTestCase(TestCase):
|
||||
items=self.relaxed_items,
|
||||
created_by=self.user,
|
||||
)
|
||||
self.assertIsNone(purchase_order.items.first().quantity_of_rolls)
|
||||
item = purchase_order.items.first()
|
||||
self.assertIsNone(item.quantity_of_rolls)
|
||||
self.assertEqual(item.split_quantity_of_rolls(), [])
|
||||
|
||||
cancelled = services.review_purchase_order(
|
||||
purchase_order=purchase_order,
|
||||
@@ -343,7 +346,9 @@ class SalesOrderServiceTestCase(TestCase):
|
||||
self.assertIsInstance(sales_order, business_models.SalesOrder)
|
||||
self.assertEqual(sales_order.status, business_models.SalesOrderStatusEnum.PENDING)
|
||||
self.assertEqual(sales_order.items.count(), 1)
|
||||
self.assertEqual(sales_order.items.first().quantity_of_rolls, '6,4')
|
||||
item = sales_order.items.first()
|
||||
self.assertEqual(item.quantity_of_rolls, '6,4')
|
||||
self.assertEqual(item.split_quantity_of_rolls(), [6, 4])
|
||||
mock_delay.assert_not_called()
|
||||
|
||||
def test_review_sales_order_triggers_task(self):
|
||||
@@ -501,6 +506,9 @@ class PurchaseReturnServiceTestCase(TestCase):
|
||||
)
|
||||
self.assertEqual(order.status, business_models.PurchaseReturnStatusEnum.PENDING)
|
||||
self.assertEqual(order.items.count(), 1)
|
||||
item = order.items.first()
|
||||
self.assertEqual(item.quantity_of_rolls, '4,2')
|
||||
self.assertEqual(item.split_quantity_of_rolls(), [4, 2])
|
||||
|
||||
def test_review_purchase_return_order_triggers_task_and_balance(self):
|
||||
order = services.create_purchase_return_order(
|
||||
@@ -601,6 +609,8 @@ class SalesReturnServiceTestCase(TestCase):
|
||||
items=[{'product_id': self.product.id, 'quantity': 50, 'num_of_rolls': 2, 'price': '19.5'}],
|
||||
)
|
||||
self.assertEqual(order.status, business_models.SalesReturnStatusEnum.PENDING)
|
||||
item = order.items.first()
|
||||
self.assertEqual(item.split_quantity_of_rolls(), [])
|
||||
|
||||
def test_review_sales_return_order_updates_balance(self):
|
||||
order = services.create_sales_return_order(
|
||||
@@ -612,6 +622,7 @@ class SalesReturnServiceTestCase(TestCase):
|
||||
items=self.strict_items,
|
||||
created_by=self.user,
|
||||
)
|
||||
self.assertEqual(order.items.first().split_quantity_of_rolls(), [6, 2])
|
||||
with patch('business.services.create_sales_return_order_stock_entries.delay') as mock_delay:
|
||||
reviewed = services.review_sales_return_order(
|
||||
sales_return_order=order,
|
||||
@@ -782,15 +793,15 @@ class PaymentReceiptServiceTestCase(TestCase):
|
||||
).exists()
|
||||
)
|
||||
|
||||
def test_payment_amount_must_be_positive(self):
|
||||
with self.assertRaises(ValueError):
|
||||
services.create_payment_order(
|
||||
merchant=self.merchant,
|
||||
supplier=self.supplier,
|
||||
payment_date=timezone.now().date(),
|
||||
amount='-1',
|
||||
operator=self.operator,
|
||||
)
|
||||
def test_payment_amount_can_be_negative(self):
|
||||
order = services.create_payment_order(
|
||||
merchant=self.merchant,
|
||||
supplier=self.supplier,
|
||||
payment_date=timezone.now().date(),
|
||||
amount='-25.50',
|
||||
operator=self.operator,
|
||||
)
|
||||
self.assertEqual(order.amount, Decimal('-25.50'))
|
||||
|
||||
def test_payment_discount_can_exceed_amount(self):
|
||||
order = services.create_payment_order(
|
||||
@@ -814,6 +825,16 @@ class PaymentReceiptServiceTestCase(TestCase):
|
||||
)
|
||||
self.assertEqual(order.settlement_amount, Decimal('110'))
|
||||
|
||||
def test_receipt_amount_can_be_negative(self):
|
||||
order = services.create_receipt_order(
|
||||
merchant=self.merchant,
|
||||
customer=self.customer,
|
||||
receipt_date=timezone.now().date(),
|
||||
amount='-40',
|
||||
operator=self.operator,
|
||||
)
|
||||
self.assertEqual(order.amount, Decimal('-40'))
|
||||
|
||||
def test_payment_order_rejects_foreign_bank_account(self):
|
||||
other_merchant = basic_models.Merchant.objects.create(
|
||||
name='无关商户',
|
||||
|
||||
Reference in New Issue
Block a user