forked from erp-dev/erp
feat: shipment change && version modelize
This commit is contained in:
@@ -94,6 +94,7 @@ class PrintingOrderAPITestCase(TestCase):
|
||||
'craft': '活性印花',
|
||||
'description': '测试订单描述',
|
||||
'outgoing_date': '2025-11-20',
|
||||
'kd_riqi': '2025-11-19 13:14:15',
|
||||
'printing_warn': '注意颜色',
|
||||
'rolling_warn': '注意温度',
|
||||
'production_warn': '质量检查'
|
||||
@@ -120,6 +121,9 @@ class PrintingOrderAPITestCase(TestCase):
|
||||
self.assertEqual(str(local_dt.date()), '2025-11-20')
|
||||
self.assertEqual(local_dt.hour, 0)
|
||||
self.assertEqual(local_dt.minute, 0)
|
||||
self.assertIsNotNone(order.kd_riqi)
|
||||
local_kd_riqi = timezone.localtime(order.kd_riqi)
|
||||
self.assertEqual(local_kd_riqi.isoformat(), '2025-11-19T13:14:15+08:00')
|
||||
|
||||
def test_filter_outgoing_date_to_includes_whole_day(self):
|
||||
"""
|
||||
@@ -284,14 +288,14 @@ class PrintingOrderAPITestCase(TestCase):
|
||||
self.assertEqual(item['external_customer_name'], '李泽柔')
|
||||
self.assertEqual(item['external_employee_name'], '丽容')
|
||||
self.assertEqual(item['bianhao_kd'], '7.07')
|
||||
self.assertEqual(item['kd_riqi'], '2026-07-06T21:48:58Z')
|
||||
self.assertEqual(item['kd_riqi'], '2026-07-06T21:48:58+08:00')
|
||||
|
||||
detail = self.client.get(f'/api/v1/printing-orders/{order1.id}/')
|
||||
self.assertEqual(detail.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(detail.data['external_order_id'], 'KD20410611')
|
||||
self.assertEqual(detail.data['external_customer_id'], 'KH00991')
|
||||
self.assertEqual(detail.data['bianhao_kd'], '7.07')
|
||||
self.assertEqual(detail.data['kd_riqi'], '2026-07-06T21:48:58Z')
|
||||
self.assertEqual(detail.data['kd_riqi'], '2026-07-06T21:48:58+08:00')
|
||||
|
||||
def test_bianhao_kd_returns_null_without_external_order_id(self):
|
||||
order = printing_models.PrintingOrder.objects.create(
|
||||
@@ -342,6 +346,39 @@ class PrintingOrderAPITestCase(TestCase):
|
||||
result_ids = [item['id'] for item in response.data['results']]
|
||||
self.assertEqual(result_ids, [older.id, newer.id])
|
||||
self.assertEqual(response.data['results'][0]['kd_riqi'], '2026-07-01T18:00:00+08:00')
|
||||
|
||||
def test_order_by_kd_riqi_puts_nulls_last(self):
|
||||
null_order = printing_models.PrintingOrder.objects.create(
|
||||
merchant=self.merchant,
|
||||
customer=self.customer,
|
||||
fabric='空开单时间',
|
||||
width='150cm',
|
||||
external_order_id='KD-NULL',
|
||||
)
|
||||
older = printing_models.PrintingOrder.objects.create(
|
||||
merchant=self.merchant,
|
||||
customer=self.customer,
|
||||
fabric='旧开单时间',
|
||||
width='150cm',
|
||||
external_order_id='KD-OLDER-NULLS-LAST',
|
||||
kd_riqi=datetime(2026, 7, 1, 10, 0, tzinfo=dt_timezone.utc),
|
||||
)
|
||||
newer = printing_models.PrintingOrder.objects.create(
|
||||
merchant=self.merchant,
|
||||
customer=self.customer,
|
||||
fabric='新开单时间',
|
||||
width='150cm',
|
||||
external_order_id='KD-NEWER-NULLS-LAST',
|
||||
kd_riqi=datetime(2026, 7, 2, 10, 0, tzinfo=dt_timezone.utc),
|
||||
)
|
||||
|
||||
asc_response = self.client.get('/api/v1/printing-orders/?ordering=kd_riqi&limit=3')
|
||||
desc_response = self.client.get('/api/v1/printing-orders/?ordering=-kd_riqi&limit=3')
|
||||
|
||||
self.assertEqual(asc_response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(desc_response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual([item['id'] for item in asc_response.data['results']], [older.id, newer.id, null_order.id])
|
||||
self.assertEqual([item['id'] for item in desc_response.data['results']], [newer.id, older.id, null_order.id])
|
||||
|
||||
def test_retrieve_printing_order(self):
|
||||
"""测试获取订单详情"""
|
||||
@@ -418,7 +455,8 @@ class PrintingOrderAPITestCase(TestCase):
|
||||
|
||||
patch_data = {
|
||||
'is_urgent': True,
|
||||
'craft': '新工艺'
|
||||
'craft': '新工艺',
|
||||
'kd_riqi': '2025-11-21 09:30:00',
|
||||
}
|
||||
|
||||
response = self.client.patch(
|
||||
@@ -431,6 +469,7 @@ class PrintingOrderAPITestCase(TestCase):
|
||||
order.refresh_from_db()
|
||||
self.assertEqual(order.is_urgent, True)
|
||||
self.assertEqual(order.craft, '新工艺')
|
||||
self.assertEqual(timezone.localtime(order.kd_riqi).isoformat(), '2025-11-21T09:30:00+08:00')
|
||||
self.assertEqual(order.fabric, '原布料') # 未修改字段保持不变
|
||||
|
||||
def test_delete_printing_order_forbidden(self):
|
||||
|
||||
Reference in New Issue
Block a user