forked from erp-dev/erp
fix
This commit is contained in:
@@ -114,6 +114,10 @@ class PreSalesAllocationAPITestCase(TestCase):
|
||||
self.assertEqual(resp.status_code, status.HTTP_201_CREATED)
|
||||
self.assertEqual(resp.data['stock_ids'], [self.stock_detail.id])
|
||||
self.assertEqual(str(resp.data['quantity']), '5.50')
|
||||
self.assertIn('stock_details', resp.data)
|
||||
self.assertEqual(resp.data['stock_details'][0]['product_id'], self.product.id)
|
||||
self.assertEqual(resp.data['stock_details'][0]['product_name'], self.product.name)
|
||||
self.assertEqual(str(resp.data['stock_details'][0]['quantity']), '12.50')
|
||||
|
||||
def test_cancel_allocation_record(self):
|
||||
order = self._create_order()
|
||||
|
||||
@@ -18,6 +18,7 @@ from basic_info.models import (
|
||||
EmployeeStatusEnum,
|
||||
)
|
||||
from business import models as business_models
|
||||
from stock import models as stock_models
|
||||
from business import allocation_services
|
||||
from stock import models as stock_models
|
||||
|
||||
@@ -127,6 +128,45 @@ class PreSalesOrderAPITestCase(TestCase):
|
||||
self.assertEqual(resp.data['id'], order_id)
|
||||
self.assertIn('items', resp.data)
|
||||
|
||||
def test_get_detail_includes_allocation_records_with_stock_details(self):
|
||||
resp = self.client.post('/api/v1/pre-sales-orders/', self.payload, format='json')
|
||||
self.assertEqual(resp.status_code, status.HTTP_201_CREATED)
|
||||
order_id = resp.data['id']
|
||||
item_id = resp.data['items'][0]['id']
|
||||
|
||||
stock_record = stock_models.StockChangeRecord.objects.create(
|
||||
merchant=self.merchant,
|
||||
type=stock_models.StockChangeTypeEnum.ADD,
|
||||
warehouse=self.warehouse,
|
||||
source_type=stock_models.StockChangeSourceEnum.PURCHASE,
|
||||
created_by=self.user,
|
||||
)
|
||||
stock_detail = stock_models.StockChangeDetail.objects.create(
|
||||
merchant=self.merchant,
|
||||
product=self.product,
|
||||
unit=ProductUnitEnum.METER,
|
||||
stock_change_record=stock_record,
|
||||
quantity='12.5',
|
||||
)
|
||||
|
||||
create_resp = self.client.post(
|
||||
f'/api/v1/pre-sales-order-items/{item_id}/allocations/',
|
||||
{
|
||||
'stock_ids': [stock_detail.id],
|
||||
'quantity': '5.5',
|
||||
'unit': '米',
|
||||
},
|
||||
format='json',
|
||||
)
|
||||
self.assertEqual(create_resp.status_code, status.HTTP_201_CREATED)
|
||||
|
||||
detail_resp = self.client.get(f'/api/v1/pre-sales-orders/{order_id}/')
|
||||
self.assertEqual(detail_resp.status_code, status.HTTP_200_OK)
|
||||
records = detail_resp.data['items'][0]['allocation_records']
|
||||
self.assertEqual(records[0]['stock_ids'], [stock_detail.id])
|
||||
self.assertEqual(records[0]['stock_details'][0]['product_id'], self.product.id)
|
||||
self.assertEqual(records[0]['stock_details'][0]['product_name'], self.product.name)
|
||||
|
||||
def test_update_pre_sales_order(self):
|
||||
order_id = self._create()
|
||||
payload = copy.deepcopy(self.payload)
|
||||
|
||||
@@ -61,7 +61,6 @@ class AllocationRecordSerializer(serializers.ModelSerializer):
|
||||
|
||||
|
||||
class StockChangeDetailShortcutSerializer(serializers.ModelSerializer):
|
||||
product_id = serializers.IntegerField(source='product_id', read_only=True)
|
||||
product_name = serializers.CharField(source='product.name', read_only=True)
|
||||
|
||||
class Meta:
|
||||
|
||||
Reference in New Issue
Block a user