forked from erp-dev/erp
feat: sales return order and purchase return order
This commit is contained in:
@@ -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 目标与原则
|
||||
|
||||
|
||||
Reference in New Issue
Block a user