forked from erp-dev/erp
feat: added prefix to human_id
This commit is contained in:
@@ -224,7 +224,7 @@ class PurchaseOrderAPITestCase(TestCase):
|
||||
self.assertEqual(response.data['status'], 1)
|
||||
self.assertIn('等待审批', response.data['message'])
|
||||
order = business_models.PurchaseOrder.objects.get(id=response.data['id'])
|
||||
expected_human_id = f"{order.created_at.strftime('%Y%m%d')}{order.id:06d}"
|
||||
expected_human_id = f"CG{order.created_at.strftime('%Y%m%d')}{order.id:06d}"
|
||||
self.assertEqual(response.data['human_id'], expected_human_id)
|
||||
mock_delay.assert_not_called()
|
||||
|
||||
@@ -246,7 +246,7 @@ class PurchaseOrderAPITestCase(TestCase):
|
||||
self.assertIn('human_id', response.data)
|
||||
self.assertEqual(response.data['status'], 1)
|
||||
order = business_models.PurchaseOrder.objects.get(id=response.data['id'])
|
||||
expected_human_id = f"{order.created_at.strftime('%Y%m%d')}{order.id:06d}"
|
||||
expected_human_id = f"CG{order.created_at.strftime('%Y%m%d')}{order.id:06d}"
|
||||
self.assertEqual(response.data['human_id'], expected_human_id)
|
||||
mock_delay.assert_not_called()
|
||||
|
||||
@@ -444,7 +444,7 @@ class SalesOrderAPITestCase(TestCase):
|
||||
self.assertIn('id', response.data)
|
||||
self.assertIn('human_id', response.data)
|
||||
order = business_models.SalesOrder.objects.get(id=response.data['id'])
|
||||
expected_human_id = f"{order.created_at.strftime('%Y%m%d')}{order.id:06d}"
|
||||
expected_human_id = f"XS{order.created_at.strftime('%Y%m%d')}{order.id:06d}"
|
||||
self.assertEqual(response.data['human_id'], expected_human_id)
|
||||
self.assertEqual(response.data['status'], business_models.SalesOrderStatusEnum.PENDING)
|
||||
mock_delay.assert_not_called()
|
||||
@@ -504,7 +504,7 @@ class SalesOrderAPITestCase(TestCase):
|
||||
self.assertEqual(response.data['id'], order_id)
|
||||
self.assertIn('human_id', response.data)
|
||||
order = business_models.SalesOrder.objects.get(id=order_id)
|
||||
expected_human_id = f"{order.created_at.strftime('%Y%m%d')}{order.id:06d}"
|
||||
expected_human_id = f"XS{order.created_at.strftime('%Y%m%d')}{order.id:06d}"
|
||||
self.assertEqual(response.data['human_id'], expected_human_id)
|
||||
|
||||
def test_update_sales_order_rejects_non_pending(self):
|
||||
@@ -663,7 +663,7 @@ class PurchaseReturnOrderAPITestCase(TestCase):
|
||||
self.assertIn('human_id', response.data)
|
||||
self.assertEqual(response.data['status'], business_models.PurchaseReturnStatusEnum.PENDING)
|
||||
order = business_models.PurchaseReturnOrder.objects.get(id=response.data['id'])
|
||||
expected_human_id = f"{order.created_at.strftime('%Y%m%d')}{order.id:06d}"
|
||||
expected_human_id = f"CT{order.created_at.strftime('%Y%m%d')}{order.id:06d}"
|
||||
self.assertEqual(response.data['human_id'], expected_human_id)
|
||||
|
||||
def test_create_purchase_return_requires_consume_ids_in_strict_out(self):
|
||||
@@ -817,7 +817,7 @@ class SalesReturnOrderAPITestCase(TestCase):
|
||||
self.assertIn('human_id', response.data)
|
||||
self.assertEqual(response.data['status'], business_models.SalesReturnStatusEnum.PENDING)
|
||||
order = business_models.SalesReturnOrder.objects.get(id=response.data['id'])
|
||||
expected_human_id = f"{order.created_at.strftime('%Y%m%d')}{order.id:06d}"
|
||||
expected_human_id = f"XT{order.created_at.strftime('%Y%m%d')}{order.id:06d}"
|
||||
self.assertEqual(response.data['human_id'], expected_human_id)
|
||||
|
||||
def test_create_sales_return_order_invalid_customer(self):
|
||||
|
||||
@@ -138,11 +138,11 @@ class PurchaseOrder(OrderItemsAggregationMixin, OrderDirectionMixin, OrderCounte
|
||||
"""
|
||||
人类可读编号(虚拟编号,不落库)。
|
||||
|
||||
规则与 printing.PrintingOrder.human_id / SalesOrder.human_id 保持一致:YYYYMMDD{6位id}
|
||||
规则与 SalesOrder.human_id 保持一致:CG + YYYYMMDD{6位id}
|
||||
"""
|
||||
if self.id is None or self.created_at is None:
|
||||
return ""
|
||||
return f"{self.created_at.year}{self.created_at.month:02d}{self.created_at.day:02d}{self.id:06d}"
|
||||
return f"CG{self.created_at.year}{self.created_at.month:02d}{self.created_at.day:02d}{self.id:06d}"
|
||||
|
||||
class Meta:
|
||||
verbose_name = '采购单'
|
||||
@@ -275,11 +275,11 @@ class SalesOrder(OrderItemsAggregationMixin, OrderDirectionMixin, OrderCounterpa
|
||||
"""
|
||||
人类可读编号(虚拟编号,不落库)。
|
||||
|
||||
规则与 printing.PrintingOrder.human_id 保持一致:YYYYMMDD{6位id}
|
||||
规则:XS + YYYYMMDD{6位id}
|
||||
"""
|
||||
if self.id is None or self.created_at is None:
|
||||
return ""
|
||||
return f"{self.created_at.year}{self.created_at.month:02d}{self.created_at.day:02d}{self.id:06d}"
|
||||
return f"XS{self.created_at.year}{self.created_at.month:02d}{self.created_at.day:02d}{self.id:06d}"
|
||||
|
||||
class Meta:
|
||||
verbose_name = '销售单'
|
||||
@@ -422,11 +422,11 @@ class PurchaseReturnOrder(OrderItemsAggregationMixin, OrderDirectionMixin, Order
|
||||
"""
|
||||
人类可读编号(虚拟编号,不落库)。
|
||||
|
||||
规则与 printing.PrintingOrder.human_id / SalesOrder.human_id 保持一致:YYYYMMDD{6位id}
|
||||
规则与 SalesOrder.human_id 保持一致:CT + YYYYMMDD{6位id}
|
||||
"""
|
||||
if self.id is None or self.created_at is None:
|
||||
return ""
|
||||
return f"{self.created_at.year}{self.created_at.month:02d}{self.created_at.day:02d}{self.id:06d}"
|
||||
return f"CT{self.created_at.year}{self.created_at.month:02d}{self.created_at.day:02d}{self.id:06d}"
|
||||
|
||||
def get_direction(self) -> int:
|
||||
return -1
|
||||
@@ -547,11 +547,11 @@ class SalesReturnOrder(OrderItemsAggregationMixin, OrderDirectionMixin, OrderCou
|
||||
"""
|
||||
人类可读编号(虚拟编号,不落库)。
|
||||
|
||||
规则与 printing.PrintingOrder.human_id / SalesOrder.human_id 保持一致:YYYYMMDD{6位id}
|
||||
规则与 SalesOrder.human_id 保持一致:XT + YYYYMMDD{6位id}
|
||||
"""
|
||||
if self.id is None or self.created_at is None:
|
||||
return ""
|
||||
return f"{self.created_at.year}{self.created_at.month:02d}{self.created_at.day:02d}{self.id:06d}"
|
||||
return f"XT{self.created_at.year}{self.created_at.month:02d}{self.created_at.day:02d}{self.id:06d}"
|
||||
|
||||
def get_direction(self) -> int:
|
||||
return 1
|
||||
|
||||
@@ -163,7 +163,7 @@ class PurchaseOrderServiceTestCase(TestCase):
|
||||
self.assertIsNotNone(purchase_order.human_id)
|
||||
self.assertEqual(
|
||||
purchase_order.human_id,
|
||||
f"{purchase_order.created_at.strftime('%Y%m%d')}{purchase_order.id:06d}",
|
||||
f"CG{purchase_order.created_at.strftime('%Y%m%d')}{purchase_order.id:06d}",
|
||||
)
|
||||
|
||||
def test_review_purchase_order_approval_triggers_task(self):
|
||||
@@ -420,7 +420,7 @@ class SalesOrderServiceTestCase(TestCase):
|
||||
self.assertTrue(len(sales_order.human_id) >= 14)
|
||||
self.assertEqual(
|
||||
sales_order.human_id,
|
||||
f"{sales_order.created_at.strftime('%Y%m%d')}{sales_order.id:06d}",
|
||||
f"XS{sales_order.created_at.strftime('%Y%m%d')}{sales_order.id:06d}",
|
||||
)
|
||||
|
||||
def test_review_sales_order_triggers_task(self):
|
||||
@@ -634,7 +634,7 @@ class PurchaseReturnServiceTestCase(TestCase):
|
||||
self.assertIsNotNone(order.human_id)
|
||||
self.assertEqual(
|
||||
order.human_id,
|
||||
f"{order.created_at.strftime('%Y%m%d')}{order.id:06d}",
|
||||
f"CT{order.created_at.strftime('%Y%m%d')}{order.id:06d}",
|
||||
)
|
||||
|
||||
def test_review_purchase_return_order_triggers_task_and_balance(self):
|
||||
@@ -789,7 +789,7 @@ class SalesReturnServiceTestCase(TestCase):
|
||||
self.assertIsNotNone(order.human_id)
|
||||
self.assertEqual(
|
||||
order.human_id,
|
||||
f"{order.created_at.strftime('%Y%m%d')}{order.id:06d}",
|
||||
f"XT{order.created_at.strftime('%Y%m%d')}{order.id:06d}",
|
||||
)
|
||||
|
||||
def test_review_sales_return_order_updates_balance(self):
|
||||
|
||||
Reference in New Issue
Block a user