1
0
forked from erp-dev/erp

feat: added filter param for stock record list api. Support purchase order bind stock change record that is already exists

This commit is contained in:
2026-02-03 18:48:44 +08:00
parent b2d252875e
commit f2243a02f4
9 changed files with 379 additions and 2 deletions

View File

@@ -48,6 +48,9 @@
- `created_at_from`datetime 或 date
- `created_at_to`datetime 或 date
---
---
# 预销售单 PreSalesOrder

View File

@@ -0,0 +1,66 @@
# API v1采购单绑定库存记录独立功能
本文档描述采购单绑定库存记录的接口与约束,并包含库存记录查询接口新增筛选参数说明。
- API 前缀:`/api/v1/`
- 认证:接口均要求登录(`IsAuthenticated`)。
- 权限:要求当前用户绑定员工(`request.user.employee`),否则返回 `403`
---
## 1) 采购单绑定库存记录
- `POST /api/v1/purchase-orders/{purchase_order_id}/bind-stock-change/`
### 请求体参数JSON
- `stock_change_record_id`必填int库存变动记录 ID
### 成功响应
- `200 OK`
响应字段:
- `purchase_order_id`:采购单 ID
- `stock_change_record_id`:库存记录 ID
- `message`:绑定结果
### 约束与限制
- 仅当 `auto_create_stock_change_tasks = False` 才允许绑定
- 只能绑定 `source_id` 为空的库存记录(不允许覆盖)
- 库存记录必须满足:
- `type = 入库`
- `source_type = 采购`
- 采购单与库存记录必须 **同商户、同仓库**
- 采购单仅允许绑定 1 条库存记录(已绑定则拒绝)
- `is_finished` 不影响绑定行为(已完成也允许)
- 绑定操作会记录服务日志(便于审计追踪)
---
## 2) 库存记录查询(用于绑定前筛选)
> 该接口支持筛选“可绑定库存记录”所需条件,例如:`source_type=采购` 且 `source_id 为空`。
- `GET /api/v1/stock-changes/`
### 新增查询参数
- `source_type`int可选库存来源类型
- `source_id`int可选来源业务单据 ID
- `source_id_isnull`bool可选是否仅返回 `source_id` 为空的记录(`true/false`
- 若同时提供 `source_id`,以 `source_id` 为准,忽略 `source_id_isnull`
### 绑定场景示例
查询“可绑定的采购入库记录source_id 为空)”:
- `GET /api/v1/stock-changes/?type=1&source_type=1&source_id_isnull=true&warehouse={warehouse_id}`
说明:
- `type=1` 表示入库
- `source_type=1` 表示采购
- `source_id_isnull=true` 表示未绑定业务单据
- `warehouse` 可选,用于约束同仓库