forked from erp-dev/erp
feat: shipment customer aou
This commit is contained in:
@@ -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):
|
||||
"""
|
||||
销售品创建序列化器
|
||||
|
||||
Reference in New Issue
Block a user