forked from erp-dev/erp
fix: merchant not required at customer create api
This commit is contained in:
@@ -426,7 +426,48 @@ class PrintingJobViewSet(CustomerVisibilityFilterMixin, LimitedModelViewSet):
|
||||
)
|
||||
)
|
||||
return queryset
|
||||
|
||||
|
||||
@staticmethod
|
||||
def _attach_saleitems_cache(jobs):
|
||||
if not jobs:
|
||||
return
|
||||
|
||||
from shipment.models import SalesItem
|
||||
|
||||
job_ids = [job.id for job in jobs]
|
||||
saleitems = list(
|
||||
SalesItem.objects.select_related('shipment', 'created_by')
|
||||
.filter(printing_job_id__in=job_ids)
|
||||
.order_by('id')
|
||||
)
|
||||
|
||||
items_by_job_id = {job_id: [] for job_id in job_ids}
|
||||
for item in saleitems:
|
||||
items_by_job_id.setdefault(item.printing_job_id, []).append(item)
|
||||
|
||||
for job in jobs:
|
||||
job._saleitems_cache = items_by_job_id.get(job.id, [])
|
||||
|
||||
def list(self, request, *args, **kwargs):
|
||||
queryset = self.filter_queryset(self.get_queryset())
|
||||
|
||||
page = self.paginate_queryset(queryset)
|
||||
if page is not None:
|
||||
self._attach_saleitems_cache(page)
|
||||
serializer = self.get_serializer(page, many=True)
|
||||
return self.get_paginated_response(serializer.data)
|
||||
|
||||
jobs = list(queryset)
|
||||
self._attach_saleitems_cache(jobs)
|
||||
serializer = self.get_serializer(jobs, many=True)
|
||||
return Response(serializer.data)
|
||||
|
||||
def retrieve(self, request, *args, **kwargs):
|
||||
instance = self.get_object()
|
||||
self._attach_saleitems_cache([instance])
|
||||
serializer = self.get_serializer(instance)
|
||||
return Response(serializer.data)
|
||||
|
||||
def destroy(self, request, *args, **kwargs):
|
||||
"""禁用删除操作"""
|
||||
return Response(
|
||||
|
||||
Reference in New Issue
Block a user