1
0
forked from erp-dev/erp

feat: added n-to-1 relation between sales_order_item and printing_job model

This commit is contained in:
2025-12-11 18:09:10 +08:00
parent 633031d7cb
commit 1a8c446365
30 changed files with 41736 additions and 40 deletions

View File

@@ -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):