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.status_code, status.HTTP_201_CREATED)
|
||||||
self.assertEqual(resp.data['stock_ids'], [self.stock_detail.id])
|
self.assertEqual(resp.data['stock_ids'], [self.stock_detail.id])
|
||||||
self.assertEqual(str(resp.data['quantity']), '5.50')
|
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):
|
def test_cancel_allocation_record(self):
|
||||||
order = self._create_order()
|
order = self._create_order()
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ from basic_info.models import (
|
|||||||
EmployeeStatusEnum,
|
EmployeeStatusEnum,
|
||||||
)
|
)
|
||||||
from business import models as business_models
|
from business import models as business_models
|
||||||
|
from stock import models as stock_models
|
||||||
from business import allocation_services
|
from business import allocation_services
|
||||||
from stock import models as stock_models
|
from stock import models as stock_models
|
||||||
|
|
||||||
@@ -127,6 +128,45 @@ class PreSalesOrderAPITestCase(TestCase):
|
|||||||
self.assertEqual(resp.data['id'], order_id)
|
self.assertEqual(resp.data['id'], order_id)
|
||||||
self.assertIn('items', resp.data)
|
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):
|
def test_update_pre_sales_order(self):
|
||||||
order_id = self._create()
|
order_id = self._create()
|
||||||
payload = copy.deepcopy(self.payload)
|
payload = copy.deepcopy(self.payload)
|
||||||
|
|||||||
@@ -61,7 +61,6 @@ class AllocationRecordSerializer(serializers.ModelSerializer):
|
|||||||
|
|
||||||
|
|
||||||
class StockChangeDetailShortcutSerializer(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)
|
product_name = serializers.CharField(source='product.name', read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|||||||
Reference in New Issue
Block a user