1
0
forked from erp-dev/erp

feat: sales return order and purchase return order

This commit is contained in:
2025-12-01 16:52:59 +08:00
parent a3b4af2602
commit fae33809ac
17 changed files with 1745 additions and 6 deletions

View File

@@ -45,7 +45,23 @@
- 作废时已有出入库记录:`ValueError('采购单已生成出入库记录,无法作废')` -> API 返回 `400`
- ID 不存在或不属于当前商户API 返回 `404`
## 6. 下一阶段:库存红冲(对冲)方案规划
## 6. 采购退货(采退)流程补充
- API`POST /api/v1/purchase-return-orders/` 创建,`POST /api/v1/purchase-return-orders/<id>/review/` 审批。
- 创建阶段与采购单一致,只是字段改为 `return_date`,并允许传入 `purchase_order` 以关联原单。
- 审批通过:
1. 在事务内锁单、生成 `stock_flow_items`
2. 状态置为 `APPROVED`
3. 调用 `BalanceService.adjust_supplier_balance(delta=-总金额source=PURCHASE_RETURN_ORDER)`,写入 `BalanceChangeRecord`
4. 触发 `create_purchase_return_order_stock_entries`,底层调用 `StockFlowService.stock_out`source=`PURCHASE_RETURN`),受仓库 mode 约束:
- 宽进仓:传递 `value + num_of_rolls`
- 严进仓:传递 `numbers`
- 严进严出:必须提供 `consume_detail_ids`
- 作废逻辑沿用采购单:只有 `PENDING` 且未产生 `StockChangeRecord` 时才允许取消,一旦审批成功便禁止。
---
## 7. 下一阶段:库存红冲(对冲)方案规划
### 6.1 目标与原则