1
0
forked from erp-dev/erp

fix: merchant not required at customer create api

This commit is contained in:
2026-03-13 15:57:40 +08:00
parent a8e9801e15
commit 84dbb2ee10
6 changed files with 267 additions and 2 deletions

View File

@@ -7,6 +7,7 @@ from rest_framework.fields import empty
from api_v1.models import UploadedFile
from api_v1.utils.media import build_public_media_url
from api_v1.views.shipment.serializers import SalesItemSerializer
from printing import models
from .services import PrintingOrderService, PrintingJobService
from basic_info.models import Customer, Employee
@@ -332,6 +333,7 @@ class PrintingJobListSerializer(serializers.ModelSerializer):
last_completed_state = serializers.CharField(read_only=True)
business_object_id = serializers.SerializerMethodField()
batch_advance_records = serializers.SerializerMethodField()
saleitems = serializers.SerializerMethodField()
merchant_id = serializers.IntegerField(source='merchant.id', read_only=True, allow_null=True)
class Meta:
@@ -344,6 +346,7 @@ class PrintingJobListSerializer(serializers.ModelSerializer):
'status', 'is_completed', 'progress_percentage', 'last_completed_state',
'business_object_id',
'batch_advance_records',
'saleitems',
'created_at', 'updated_at'
]
read_only_fields = [
@@ -396,6 +399,17 @@ class PrintingJobListSerializer(serializers.ModelSerializer):
records = list(obj.batch_advance_records.all())
return PrintingJobBatchAdvanceRecordSerializer(records, many=True).data
def get_saleitems(self, obj):
items = getattr(obj, '_saleitems_cache', None)
if items is None:
from shipment.models import SalesItem
items = list(
SalesItem.objects.select_related('shipment', 'created_by')
.filter(printing_job_id=obj.id)
.order_by('id')
)
return SalesItemSerializer(items, many=True).data
class PrintingJobDetailSerializer(serializers.ModelSerializer):
"""印染款式明细详情序列化器"""
@@ -411,6 +425,7 @@ class PrintingJobDetailSerializer(serializers.ModelSerializer):
last_completed_state = serializers.CharField(read_only=True)
business_object_id = serializers.SerializerMethodField()
batch_advance_records = serializers.SerializerMethodField()
saleitems = serializers.SerializerMethodField()
merchant_id = serializers.IntegerField(source='merchant.id', read_only=True, allow_null=True)
class Meta:
@@ -423,6 +438,7 @@ class PrintingJobDetailSerializer(serializers.ModelSerializer):
'progress_percentage', 'last_completed_state',
'business_object_id',
'batch_advance_records',
'saleitems',
'created_at', 'updated_at'
]
read_only_fields = [
@@ -444,6 +460,17 @@ class PrintingJobDetailSerializer(serializers.ModelSerializer):
records = list(obj.batch_advance_records.all())
return PrintingJobBatchAdvanceRecordSerializer(records, many=True).data
def get_saleitems(self, obj):
items = getattr(obj, '_saleitems_cache', None)
if items is None:
from shipment.models import SalesItem
items = list(
SalesItem.objects.select_related('shipment', 'created_by')
.filter(printing_job_id=obj.id)
.order_by('id')
)
return SalesItemSerializer(items, many=True).data
class PrintingJobCreateUpdateSerializer(serializers.ModelSerializer):
"""印染款式明细创建/更新序列化器"""