1
0
forked from erp-dev/erp

feat: human_id for all objects in business module

This commit is contained in:
2026-06-25 13:41:17 +08:00
parent 70b3a0d246
commit e8bf4b5e49
14 changed files with 305 additions and 22 deletions

View File

@@ -66,7 +66,7 @@ class BusinessStatementServiceTestCase(TestCase):
target_status=business_models.ReceiptOrderStatusEnum.APPROVED,
)
business_models.ExternalCustomerStatementOrder.objects.create(
external_sale_order = business_models.ExternalCustomerStatementOrder.objects.create(
merchant=merchant,
customer=customer,
category=business_models.ExternalCustomerStatementCategoryEnum.SALE,
@@ -77,7 +77,7 @@ class BusinessStatementServiceTestCase(TestCase):
zk_amount=Decimal('3'),
items_payload=[{'product_name': '外部销售'}],
)
business_models.ExternalCustomerStatementOrder.objects.create(
external_return_order = business_models.ExternalCustomerStatementOrder.objects.create(
merchant=merchant,
customer=customer,
category=business_models.ExternalCustomerStatementCategoryEnum.SALE_RETURN,
@@ -102,11 +102,19 @@ class BusinessStatementServiceTestCase(TestCase):
},
)
sales_record = next(record for record in payload['records'] if record['source_type'] == 'sales_order')
self.assertEqual(sales_record['human_id'], sales_order.human_id)
self.assertEqual(sales_record['items'][0]['quantity'], Decimal('10'))
self.assertEqual(sales_record['items'][0]['quantity_of_rolls'], [6, 4])
return_record = next(record for record in payload['records'] if record['source_type'] == 'sales_return_order')
self.assertEqual(return_record['human_id'], return_order.human_id)
receipt_record = next(record for record in payload['records'] if record['source_type'] == 'receipt_order')
self.assertEqual(receipt_record['human_id'], receipt_order.human_id)
self.assertEqual(receipt_record['positive_amount'], Decimal('-2.00'))
self.assertEqual(receipt_record['negative_amount'], Decimal('20.00'))
external_sale_record = next(record for record in payload['records'] if record['source_type'] == 'external_sales_order')
self.assertEqual(external_sale_record['human_id'], str(external_sale_order.id))
external_return_record = next(record for record in payload['records'] if record['source_type'] == 'external_sales_return_order')
self.assertEqual(external_return_record['human_id'], str(external_return_order.id))
summary = services.build_statement_summary(payload)
self.assertIn('positive_total', summary)
self.assertIn('negative_total', summary)
@@ -162,9 +170,13 @@ class BusinessStatementServiceTestCase(TestCase):
source_types = {record['source_type'] for record in payload['records']}
self.assertEqual(source_types, {'purchase_order', 'purchase_return_order', 'payment_order'})
purchase_record = next(record for record in payload['records'] if record['source_type'] == 'purchase_order')
self.assertEqual(purchase_record['human_id'], purchase_order.human_id)
self.assertEqual(purchase_record['items'][0]['quantity'], Decimal('10'))
self.assertEqual(purchase_record['items'][0]['num_of_rolls'], 2)
return_record = next(record for record in payload['records'] if record['source_type'] == 'purchase_return_order')
self.assertEqual(return_record['human_id'], return_order.human_id)
payment_record = next(record for record in payload['records'] if record['source_type'] == 'payment_order')
self.assertEqual(payment_record['human_id'], payment_order.human_id)
self.assertEqual(payment_record['negative_amount'], Decimal('15.00'))