1
0
forked from erp-dev/erp

fix: frozen excluded from stock api, refactor

This commit is contained in:
2026-02-02 19:16:38 +08:00
parent dee1c814b9
commit b2d252875e

View File

@@ -308,6 +308,14 @@ class ListStockChangeDetailsView(StockChangeViewMixin, views.APIView):
change_type = stock_models.StockChangeTypeEnum.REMOVE # 出库 change_type = stock_models.StockChangeTypeEnum.REMOVE # 出库
# 查询库存变动明细仅查询未被消耗的明细consumed_by_detail为空 # 查询库存变动明细仅查询未被消耗的明细consumed_by_detail为空
active_freeze_statuses = [
status
for status in stock_models.StockFreezeStatusEnum.values
if status not in {
stock_models.StockFreezeStatusEnum.CANCELLED,
stock_models.StockFreezeStatusEnum.COMPLETED,
}
]
details = stock_models.StockChangeDetail.objects.filter( details = stock_models.StockChangeDetail.objects.filter(
stock_change_record__merchant_id=merchant_id, stock_change_record__merchant_id=merchant_id,
stock_change_record__warehouse_id=warehouse_id, stock_change_record__warehouse_id=warehouse_id,
@@ -315,7 +323,7 @@ class ListStockChangeDetailsView(StockChangeViewMixin, views.APIView):
product_id=product_id, product_id=product_id,
consumed_by_detail__isnull=True # 仅查询未被消耗的明细 consumed_by_detail__isnull=True # 仅查询未被消耗的明细
).exclude( ).exclude(
stock_freezes__status=stock_models.StockFreezeStatusEnum.FROZEN stock_freezes__status__in=active_freeze_statuses
).select_related( ).select_related(
'stock_change_record', 'stock_change_record',
'product' 'product'