forked from erp-dev/erp
feat: added n-to-1 relation between sales_order_item and printing_job model
This commit is contained in:
@@ -9,6 +9,8 @@ from api_v1.views.stock_change_views.mixins import StockChangeViewMixin
|
||||
|
||||
|
||||
class PurchaseOrderItemSerializer(serializers.ModelSerializer):
|
||||
quantity_of_rolls = serializers.SerializerMethodField(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = business_models.PurchaseOrderItem
|
||||
fields = [
|
||||
@@ -18,6 +20,8 @@ class PurchaseOrderItemSerializer(serializers.ModelSerializer):
|
||||
]
|
||||
read_only_fields = ['id', 'created_at', 'updated_at', 'total_amount', 'diff_quantity', 'real_quantity']
|
||||
|
||||
def get_quantity_of_rolls(self, obj: business_models.PurchaseOrderItem):
|
||||
return obj.split_quantity_of_rolls()
|
||||
|
||||
class PurchaseOrderSerializer(serializers.ModelSerializer):
|
||||
total_amount = serializers.SerializerMethodField(read_only=True)
|
||||
|
||||
@@ -9,6 +9,11 @@ from api_v1.views.stock_change_views.mixins import StockChangeViewMixin
|
||||
|
||||
|
||||
class PurchaseReturnOrderItemSerializer(serializers.ModelSerializer):
|
||||
quantity_of_rolls = serializers.SerializerMethodField(read_only=True)
|
||||
|
||||
def get_quantity_of_rolls(self, obj: business_models.PurchaseReturnOrderItem):
|
||||
return obj.split_quantity_of_rolls()
|
||||
|
||||
class Meta:
|
||||
model = business_models.PurchaseReturnOrderItem
|
||||
fields = [
|
||||
|
||||
@@ -9,6 +9,10 @@ from api_v1.views.stock_change_views.mixins import StockChangeViewMixin
|
||||
|
||||
|
||||
class SalesOrderItemSerializer(serializers.ModelSerializer):
|
||||
quantity_of_rolls = serializers.SerializerMethodField(read_only=True)
|
||||
def get_quantity_of_rolls(self, obj: business_models.SalesOrderItem):
|
||||
return obj.split_quantity_of_rolls()
|
||||
|
||||
class Meta:
|
||||
model = business_models.SalesOrderItem
|
||||
fields = [
|
||||
|
||||
@@ -9,6 +9,11 @@ from api_v1.views.stock_change_views.mixins import StockChangeViewMixin
|
||||
|
||||
|
||||
class SalesReturnOrderItemSerializer(serializers.ModelSerializer):
|
||||
quantity_of_rolls = serializers.SerializerMethodField(read_only=True)
|
||||
|
||||
def get_quantity_of_rolls(self, obj: business_models.SalesReturnOrderItem):
|
||||
return obj.split_quantity_of_rolls()
|
||||
|
||||
class Meta:
|
||||
model = business_models.SalesReturnOrderItem
|
||||
fields = [
|
||||
@@ -44,7 +49,7 @@ class SalesReturnOrderSerializer(serializers.ModelSerializer):
|
||||
model = business_models.SalesReturnOrder
|
||||
fields = [
|
||||
'id', 'customer', 'customer_name', 'sales_order', 'return_date',
|
||||
'total_amount', 'diff_quantity', 'total_quantity',
|
||||
'total_amount', 'diff_quantity', 'total_quantity', 'quantity_of_rolls',
|
||||
'operator', 'operator_name', 'warehouse', 'warehouse_name',
|
||||
'status', 'remarks', 'created_at', 'updated_at', 'items',
|
||||
]
|
||||
|
||||
@@ -183,6 +183,7 @@ class PrintingJobListSerializer(serializers.ModelSerializer):
|
||||
printing_order_id = serializers.CharField(source='printing_order.human_id', read_only=True)
|
||||
product_name = serializers.CharField(source='product.name', read_only=True)
|
||||
status = serializers.CharField(read_only=True)
|
||||
work_state_display = serializers.SerializerMethodField()
|
||||
is_completed = serializers.BooleanField(read_only=True)
|
||||
business_object_id = serializers.SerializerMethodField()
|
||||
|
||||
@@ -191,6 +192,7 @@ class PrintingJobListSerializer(serializers.ModelSerializer):
|
||||
fields = [
|
||||
'id', 'printing_order', 'printing_order_id', 'product', 'product_name',
|
||||
'quantity', 'unit', 'size', 'pieces', 'description',
|
||||
'work_state', 'work_state_display',
|
||||
'status', 'is_completed', 'business_object_id',
|
||||
'created_at', 'updated_at'
|
||||
]
|
||||
@@ -200,6 +202,9 @@ class PrintingJobListSerializer(serializers.ModelSerializer):
|
||||
"""安全地获取 business_object_id"""
|
||||
return obj.business_object.id if obj.business_object else None
|
||||
|
||||
def get_work_state_display(self, obj):
|
||||
return obj.get_work_state_display()
|
||||
|
||||
|
||||
class PrintingJobDetailSerializer(serializers.ModelSerializer):
|
||||
"""印染款式明细详情序列化器"""
|
||||
@@ -208,6 +213,7 @@ class PrintingJobDetailSerializer(serializers.ModelSerializer):
|
||||
product_code = serializers.CharField(source='product.human_id', read_only=True)
|
||||
status = serializers.CharField(read_only=True)
|
||||
status_id = serializers.IntegerField(read_only=True)
|
||||
work_state_display = serializers.SerializerMethodField()
|
||||
is_completed = serializers.BooleanField(read_only=True)
|
||||
has_started = serializers.BooleanField(read_only=True)
|
||||
business_object_id = serializers.SerializerMethodField()
|
||||
@@ -217,6 +223,7 @@ class PrintingJobDetailSerializer(serializers.ModelSerializer):
|
||||
fields = [
|
||||
'id', 'printing_order', 'printing_order_id', 'product', 'product_name', 'product_code',
|
||||
'quantity', 'unit', 'size', 'pieces', 'description',
|
||||
'work_state', 'work_state_display',
|
||||
'status', 'status_id', 'is_completed', 'has_started', 'business_object_id',
|
||||
'created_at', 'updated_at'
|
||||
]
|
||||
@@ -229,6 +236,9 @@ class PrintingJobDetailSerializer(serializers.ModelSerializer):
|
||||
"""安全地获取 business_object_id"""
|
||||
return obj.business_object.id if obj.business_object else None
|
||||
|
||||
def get_work_state_display(self, obj):
|
||||
return obj.get_work_state_display()
|
||||
|
||||
|
||||
class PrintingJobCreateUpdateSerializer(serializers.ModelSerializer):
|
||||
"""印染款式明细创建/更新序列化器"""
|
||||
@@ -236,13 +246,15 @@ class PrintingJobCreateUpdateSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.PrintingJob
|
||||
fields = [
|
||||
'id', 'printing_order', 'product', 'quantity', 'unit', 'size', 'pieces', 'description'
|
||||
'id', 'printing_order', 'product', 'quantity', 'unit', 'size', 'pieces', 'description',
|
||||
'work_state',
|
||||
]
|
||||
read_only_fields = ['id']
|
||||
extra_kwargs = {
|
||||
'size': {'required': False, 'allow_null': True, 'allow_blank': True},
|
||||
'pieces': {'required': False, 'allow_null': True},
|
||||
'description': {'required': False, 'allow_null': True, 'allow_blank': True},
|
||||
'work_state': {'required': False},
|
||||
}
|
||||
|
||||
def validate_printing_order(self, value):
|
||||
|
||||
Reference in New Issue
Block a user