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

@@ -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(