forked from erp-dev/erp
fix: added delivery_id and delivery_isnull query param to shipment list api
This commit is contained in:
@@ -121,6 +121,8 @@ class ShipmentListCreateView(ListModelMixin, GenericAPIView):
|
||||
支持过滤参数(可选):
|
||||
- customer: 客户ID
|
||||
- status: 状态(1=草稿, 2=已发布, 3=已取消, 4=已驳回, 5=已审核)
|
||||
- delivery_id: 送货单ID(仅当传入具体ID时过滤;null/空值不触发过滤)
|
||||
- delivery_isnull: 是否仅查询未绑定/已绑定送货单的出货单(true/false)
|
||||
- external_id: 外部订单号(精确匹配)
|
||||
- shipment_date_from: 出货日期起始(YYYY-MM-DD)
|
||||
- shipment_date_to: 出货日期结束(YYYY-MM-DD,包含整天)
|
||||
@@ -151,6 +153,20 @@ class ShipmentListCreateView(ListModelMixin, GenericAPIView):
|
||||
if status_val:
|
||||
qs = qs.filter(status=status_val)
|
||||
|
||||
delivery_id = self.request.query_params.get("delivery_id")
|
||||
if delivery_id is not None:
|
||||
normalized_delivery_id = delivery_id.strip()
|
||||
if normalized_delivery_id and normalized_delivery_id.lower() not in {"null", "none"}:
|
||||
qs = qs.filter(delivery_id=normalized_delivery_id)
|
||||
|
||||
delivery_isnull = self.request.query_params.get("delivery_isnull")
|
||||
if delivery_isnull is not None:
|
||||
normalized_delivery_isnull = delivery_isnull.strip().lower()
|
||||
if normalized_delivery_isnull in {"1", "true", "yes"}:
|
||||
qs = qs.filter(delivery_id__isnull=True)
|
||||
elif normalized_delivery_isnull in {"0", "false", "no"}:
|
||||
qs = qs.filter(delivery_id__isnull=False)
|
||||
|
||||
external_id = self.request.query_params.get("external_id")
|
||||
if external_id:
|
||||
qs = qs.filter(external_id=external_id)
|
||||
@@ -1009,7 +1025,7 @@ class SalesItemDetailView(GenericAPIView):
|
||||
emp = getattr(user, "employee", None)
|
||||
merchant = getattr(emp, "merchant", None) if emp else None
|
||||
if not merchant:
|
||||
return SalesItem.objects.none()
|
||||
return qs.none()
|
||||
return qs.filter(merchant=merchant)
|
||||
|
||||
def get(self, request, pk: int):
|
||||
@@ -1116,7 +1132,7 @@ class SalesItemRebuildView(GenericAPIView):
|
||||
emp = getattr(user, "employee", None)
|
||||
merchant = getattr(emp, "merchant", None) if emp else None
|
||||
if not merchant:
|
||||
return SalesItem.objects.none()
|
||||
return qs.none()
|
||||
return qs.filter(merchant=merchant)
|
||||
|
||||
def post(self, request, pk: int):
|
||||
|
||||
Reference in New Issue
Block a user