forked from erp-dev/erp
fix: added some fields to business.statements api
This commit is contained in:
@@ -1283,9 +1283,13 @@ class StatementRecordAPITestCase(TestCase):
|
||||
sales_order=self.sales_order,
|
||||
product=self.product,
|
||||
price=Decimal('12.50'),
|
||||
color='红',
|
||||
quantity=Decimal('5'),
|
||||
unit='米',
|
||||
empty_diff_percent=Decimal('0'),
|
||||
quantity_of_rolls='2,3',
|
||||
num_of_rolls=2,
|
||||
spec='32S',
|
||||
)
|
||||
|
||||
self.purchase_order = business_models.PurchaseOrder.objects.create(
|
||||
@@ -1300,9 +1304,13 @@ class StatementRecordAPITestCase(TestCase):
|
||||
purchase_order=self.purchase_order,
|
||||
product=self.product,
|
||||
price=Decimal('8.30'),
|
||||
color='蓝',
|
||||
quantity=Decimal('10'),
|
||||
unit='米',
|
||||
empty_diff_percent=Decimal('0'),
|
||||
quantity_of_rolls='6,4',
|
||||
num_of_rolls=2,
|
||||
spec='40S',
|
||||
)
|
||||
|
||||
def test_get_customer_sales_order_record(self):
|
||||
@@ -1323,6 +1331,14 @@ class StatementRecordAPITestCase(TestCase):
|
||||
self.assertEqual(record['source_type'], 'sales_order')
|
||||
self.assertEqual(record['source_id'], self.sales_order.id)
|
||||
self.assertEqual(record['counterparty'], self.customer.id)
|
||||
self.assertIsNotNone(record.get('warehouse'))
|
||||
self.assertEqual(record['warehouse']['id'], self.warehouse.id)
|
||||
self.assertEqual(record['warehouse']['name'], self.warehouse.name)
|
||||
self.assertTrue(record['items'])
|
||||
self.assertEqual(record['items'][0]['color'], '红')
|
||||
self.assertEqual(record['items'][0]['spec'], '32S')
|
||||
self.assertEqual(record['items'][0]['quantity_of_rolls'], [2, 3])
|
||||
self.assertEqual(record['items'][0]['num_of_rolls'], 2)
|
||||
|
||||
def test_get_supplier_purchase_order_record(self):
|
||||
response = self.client.get(
|
||||
@@ -1339,6 +1355,14 @@ class StatementRecordAPITestCase(TestCase):
|
||||
self.assertEqual(record['source_type'], 'purchase_order')
|
||||
self.assertEqual(record['source_id'], self.purchase_order.id)
|
||||
self.assertEqual(record['counterparty'], self.supplier.id)
|
||||
self.assertIsNotNone(record.get('warehouse'))
|
||||
self.assertEqual(record['warehouse']['id'], self.warehouse.id)
|
||||
self.assertEqual(record['warehouse']['name'], self.warehouse.name)
|
||||
self.assertTrue(record['items'])
|
||||
self.assertEqual(record['items'][0]['color'], '蓝')
|
||||
self.assertEqual(record['items'][0]['spec'], '40S')
|
||||
self.assertEqual(record['items'][0]['quantity_of_rolls'], [6, 4])
|
||||
self.assertEqual(record['items'][0]['num_of_rolls'], 2)
|
||||
|
||||
def test_statement_record_not_found(self):
|
||||
response = self.client.get(
|
||||
|
||||
@@ -1,8 +1,20 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from basic_info import models as basic_models
|
||||
from business import services as business_services
|
||||
|
||||
|
||||
class StatementWarehouseSerializer(serializers.ModelSerializer):
|
||||
"""对账单中使用的仓库序列化器(输出完整仓库数据)"""
|
||||
|
||||
type_label = serializers.CharField(source='get_type_display', read_only=True)
|
||||
mode_label = serializers.CharField(source='get_mode_display', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = basic_models.WareHouse
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class StatementRecordSerializer(serializers.Serializer):
|
||||
source_type = serializers.CharField()
|
||||
source_label = serializers.CharField()
|
||||
@@ -13,6 +25,7 @@ class StatementRecordSerializer(serializers.Serializer):
|
||||
status_label = serializers.CharField()
|
||||
counterparty = serializers.IntegerField()
|
||||
counterparty_name = serializers.CharField()
|
||||
warehouse = StatementWarehouseSerializer(allow_null=True)
|
||||
positive_amount = serializers.DecimalField(max_digits=15, decimal_places=2)
|
||||
negative_amount = serializers.DecimalField(max_digits=15, decimal_places=2)
|
||||
cumulative_amount = serializers.CharField()
|
||||
|
||||
Reference in New Issue
Block a user