1
0
forked from erp-dev/erp

feat: shipment customer aou

This commit is contained in:
2026-03-30 22:03:14 +08:00
parent 38f40644a3
commit aff10b8925
7 changed files with 690 additions and 6 deletions

View File

@@ -248,7 +248,9 @@ class SalesItemSerializer(serializers.Serializer):
position = serializers.CharField(read_only=True)
remark = serializers.CharField(read_only=True)
printing_job_id = serializers.IntegerField(read_only=True)
printing_order_id = serializers.SerializerMethodField()
customer_id = serializers.IntegerField(read_only=True)
customer_name = serializers.SerializerMethodField()
shipment_id = serializers.IntegerField(
source="shipment.id", read_only=True, allow_null=True
)
@@ -264,6 +266,24 @@ class SalesItemSerializer(serializers.Serializer):
def get_unit_display(self, obj):
return obj.get_unit_display()
def get_printing_order_id(self, obj):
printing_order_map = self.context.get("printing_order_map", {})
if obj.printing_job_id in printing_order_map:
return printing_order_map[obj.printing_job_id]
printing_job = obj.get_printing_job()
if printing_job and getattr(printing_job, "printing_order_id", None):
return printing_job.printing_order_id
return None
def get_customer_name(self, obj):
customer_name_map = self.context.get("customer_name_map", {})
if obj.customer_id in customer_name_map:
return customer_name_map[obj.customer_id]
customer = obj.get_customer()
return customer.name if customer else None
def get_created_by_name(self, obj):
if obj.created_by:
employee = getattr(obj.created_by, "employee", None)
@@ -273,6 +293,18 @@ class SalesItemSerializer(serializers.Serializer):
return None
class ShipmentSalesItemCustomerSerializer(serializers.Serializer):
"""
由未出货销售品反推的客户摘要序列化器。
"""
customer_id = serializers.IntegerField(source="id", read_only=True)
customer_name = serializers.CharField(source="name", read_only=True)
mobile = serializers.CharField(read_only=True, allow_null=True)
area = serializers.CharField(read_only=True, allow_null=True)
unshipped_sales_items_count = serializers.IntegerField(read_only=True)
class SalesItemCreateSerializer(serializers.Serializer):
"""
销售品创建序列化器