forked from erp-dev/erp
feat: backfill external order image upgrade to beat schedule by 1 hour
This commit is contained in:
@@ -249,6 +249,7 @@ class SalesItemSerializer(serializers.Serializer):
|
||||
remark = serializers.CharField(read_only=True)
|
||||
printing_job_id = serializers.IntegerField(read_only=True)
|
||||
printing_order_id = serializers.SerializerMethodField()
|
||||
external_order_id = serializers.SerializerMethodField()
|
||||
customer_id = serializers.IntegerField(read_only=True)
|
||||
customer_name = serializers.SerializerMethodField()
|
||||
shipment_id = serializers.IntegerField(
|
||||
@@ -276,6 +277,16 @@ class SalesItemSerializer(serializers.Serializer):
|
||||
return printing_job.printing_order_id
|
||||
return None
|
||||
|
||||
def get_external_order_id(self, obj):
|
||||
external_order_id_map = self.context.get("external_order_id_map", {})
|
||||
if obj.printing_job_id in external_order_id_map:
|
||||
return external_order_id_map[obj.printing_job_id]
|
||||
|
||||
printing_job = obj.get_printing_job()
|
||||
if printing_job and getattr(printing_job.printing_order, "external_order_id", None):
|
||||
return printing_job.printing_order.external_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:
|
||||
@@ -293,6 +304,36 @@ class SalesItemSerializer(serializers.Serializer):
|
||||
return None
|
||||
|
||||
|
||||
class SalesItemDetailSerializer(SalesItemSerializer):
|
||||
"""
|
||||
销售品详情序列化器。
|
||||
|
||||
在列表字段基础上补充关联印染任务的产品图片。
|
||||
"""
|
||||
|
||||
product_image_url = serializers.SerializerMethodField()
|
||||
|
||||
def get_product_image_url(self, obj):
|
||||
product_image_map = self.context.get("product_image_map", {})
|
||||
if obj.printing_job_id in product_image_map:
|
||||
return product_image_map[obj.printing_job_id]
|
||||
|
||||
printing_job = obj.get_printing_job()
|
||||
if not printing_job or not getattr(printing_job, "product", None):
|
||||
return None
|
||||
|
||||
primary_url = printing_job.product.get_primary_image_url()
|
||||
if primary_url:
|
||||
return primary_url
|
||||
|
||||
if printing_job.product.image:
|
||||
request = self.context.get("request")
|
||||
if request:
|
||||
return request.build_absolute_uri(printing_job.product.image.url)
|
||||
return printing_job.product.image.url
|
||||
return None
|
||||
|
||||
|
||||
class ShipmentSalesItemCustomerSerializer(serializers.Serializer):
|
||||
"""
|
||||
由未出货销售品反推的客户摘要序列化器。
|
||||
|
||||
Reference in New Issue
Block a user