forked from erp-dev/erp
feat: added type field into warehouse model
This commit is contained in:
@@ -201,7 +201,7 @@ class PrintingJobCreateUpdateSerializer(serializers.ModelSerializer):
|
||||
|
||||
|
||||
class PlateOrderDesignCodeMixin:
|
||||
"""确保 design_code 为空时使用主键补全"""
|
||||
"""确保 design_code 为空时使用主键"""
|
||||
|
||||
@staticmethod
|
||||
def _normalize_design_code(design_code: str | None, instance_id: int | None) -> str | None:
|
||||
@@ -222,30 +222,50 @@ class PlateOrderListSerializer(PlateOrderDesignCodeMixin, serializers.ModelSeria
|
||||
customer_name = serializers.CharField(source="customer.name", read_only=True)
|
||||
salesperson_name = serializers.CharField(source="salesperson.name", read_only=True)
|
||||
merchandiser_name = serializers.CharField(source="merchandiser.name", read_only=True)
|
||||
designer_name = serializers.CharField(source="designer.name", read_only=True)
|
||||
status = serializers.CharField(read_only=True)
|
||||
progress_percentage = serializers.IntegerField(read_only=True)
|
||||
process_name = serializers.SerializerMethodField()
|
||||
plate_image_url = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = models.PlateOrder
|
||||
|
||||
fields = [
|
||||
'id', 'design_code', 'plate_type', 'plate_date',
|
||||
'id', 'design_code', 'plate_type', 'plate_date', 'plate_method',
|
||||
'plate_image', 'plate_image_url', 'plate_notes', 'reprint_reason',
|
||||
'urgency_level', 'is_invalid',
|
||||
'customer', 'customer_name', 'area',
|
||||
'customer', 'customer_name', 'area', 'default_address',
|
||||
'salesperson', 'salesperson_name',
|
||||
'merchandiser', 'merchandiser_name',
|
||||
'style_name', 'fabric', 'fabric_source', 'width',
|
||||
'designer', 'designer_name',
|
||||
'style_name', 'fabric', 'fabric_source', 'width', 'production_method',
|
||||
'is_mark_frame', 'drawing_rating', 'color_matching_rating',
|
||||
'sample_rating', 'difficulty_rating',
|
||||
'sample_meter', 'required_sample_meters',
|
||||
'required_completion_date', 'completion_date',
|
||||
'is_ordered', 'process', 'process_name', 'business_object_id',
|
||||
'status', 'progress_percentage',
|
||||
'approval_result', 'is_ordered', 'customer_feedback',
|
||||
'process', 'process_name',
|
||||
'status', 'status_id', 'is_completed', 'has_started',
|
||||
'progress_percentage', 'business_object_id',
|
||||
'created_at', 'updated_at'
|
||||
]
|
||||
read_only_fields = [
|
||||
'id', 'status', 'progress_percentage',
|
||||
'created_at', 'updated_at'
|
||||
]
|
||||
|
||||
def get_plate_image_url(self, obj):
|
||||
"""获取图片完整URL"""
|
||||
if obj.plate_image:
|
||||
request = self.context.get("request")
|
||||
if request:
|
||||
return request.build_absolute_uri(obj.plate_image.url)
|
||||
return obj.plate_image.url
|
||||
return None
|
||||
|
||||
def get_process_name(self, obj):
|
||||
|
||||
def get_process_name(self, obj) ->str | None:
|
||||
"""获取流程名称"""
|
||||
if obj.process:
|
||||
try:
|
||||
@@ -263,6 +283,7 @@ class PlateOrderDetailSerializer(PlateOrderDesignCodeMixin, serializers.ModelSer
|
||||
customer_phone = serializers.CharField(source="customer.mobile", read_only=True)
|
||||
salesperson_name = serializers.CharField(source="salesperson.name", read_only=True)
|
||||
merchandiser_name = serializers.CharField(source="merchandiser.name", read_only=True)
|
||||
designer_name = serializers.CharField(source="designer.name", read_only=True)
|
||||
status = serializers.CharField(read_only=True)
|
||||
status_id = serializers.IntegerField(read_only=True)
|
||||
is_completed = serializers.BooleanField(read_only=True)
|
||||
@@ -281,6 +302,7 @@ class PlateOrderDetailSerializer(PlateOrderDesignCodeMixin, serializers.ModelSer
|
||||
'customer', 'customer_name', 'customer_phone', 'area', 'default_address',
|
||||
'salesperson', 'salesperson_name',
|
||||
'merchandiser', 'merchandiser_name',
|
||||
'designer', 'designer_name',
|
||||
'style_name', 'fabric', 'fabric_source', 'width', 'production_method',
|
||||
'is_mark_frame', 'drawing_rating', 'color_matching_rating',
|
||||
'sample_rating', 'difficulty_rating',
|
||||
@@ -333,7 +355,7 @@ class PlateOrderCreateUpdateSerializer(serializers.ModelSerializer):
|
||||
"plate_image", "plate_notes", "reprint_reason",
|
||||
"urgency_level", "is_invalid",
|
||||
"customer", "area", "default_address",
|
||||
"salesperson", "merchandiser",
|
||||
"salesperson", "merchandiser", "designer",
|
||||
"style_name", "fabric", "fabric_source", "width", "production_method",
|
||||
"is_mark_frame", "drawing_rating", "color_matching_rating",
|
||||
"sample_rating", "difficulty_rating",
|
||||
@@ -362,6 +384,12 @@ class PlateOrderCreateUpdateSerializer(serializers.ModelSerializer):
|
||||
raise serializers.ValidationError("跟单员不存在")
|
||||
return value
|
||||
|
||||
def validate_designer(self, value):
|
||||
"""验证设计师是否存在"""
|
||||
if value and not Employee.objects.filter(id=value.id).exists():
|
||||
raise serializers.ValidationError("设计师不存在")
|
||||
return value
|
||||
|
||||
def validate_sample_meter(self, value):
|
||||
"""验证样品米数"""
|
||||
if value is not None and value < 0:
|
||||
|
||||
Reference in New Issue
Block a user