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

@@ -260,6 +260,7 @@ class PaymentReceiptServiceTestCase(TestCase):
)
self.assertFalse(order.is_external_source)
self.assertIsNone(order.external_source_id)
self.assertEqual(order.human_id, f'FK{order.created_at:%Y%m%d}{order.id:06d}')
order.is_external_source = True
order.external_source_id = 'XT20260001'
@@ -269,6 +270,7 @@ class PaymentReceiptServiceTestCase(TestCase):
serializer = PaymentOrderSerializer(order)
self.assertTrue(serializer.data['is_external_source'])
self.assertEqual(serializer.data['external_source_id'], 'XT20260001')
self.assertEqual(serializer.data['human_id'], order.human_id)
def test_receipt_order_external_source_fields_default_and_serialized(self):
order = services.create_receipt_order(
@@ -280,6 +282,7 @@ class PaymentReceiptServiceTestCase(TestCase):
)
self.assertFalse(order.is_external_source)
self.assertIsNone(order.external_source_id)
self.assertEqual(order.human_id, f'SK{order.created_at:%Y%m%d}{order.id:06d}')
order.is_external_source = True
order.external_source_id = 'SK20225323'
@@ -289,3 +292,4 @@ class PaymentReceiptServiceTestCase(TestCase):
serializer = ReceiptOrderSerializer(order)
self.assertTrue(serializer.data['is_external_source'])
self.assertEqual(serializer.data['external_source_id'], 'SK20225323')
self.assertEqual(serializer.data['human_id'], order.human_id)

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'))