# 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` 可选,用于约束同仓库