forked from erp-dev/erp
fix: merchant not required at customer create api
This commit is contained in:
@@ -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):
|
||||
"""印染款式明细创建/更新序列化器"""
|
||||
|
||||
Reference in New Issue
Block a user