forked from erp-dev/erp
feat: sales return order and purchase return order
This commit is contained in:
@@ -43,7 +43,20 @@
|
||||
- 作废时已有出库记录:`ValueError('销售单已生成出入库记录,无法作废')` -> `400`。
|
||||
- ID 不存在或不属于当前商户:`404`。
|
||||
|
||||
## 6. 创建接口参数约定
|
||||
## 6. 销售退货(销退)流程补充
|
||||
|
||||
- API:`/api/v1/sales-return-orders/`(创建、列表)与 `/review/` 审批接口,与销售单保持完全一致的认证/权限。
|
||||
- 创建时字段改为 `return_date`,其余 `items` 结构与销售单一致(根据仓库 mode 填写 `numbers` 或 `quantity` / `num_of_rolls`)。严进严出仓在退货场景下视为“入库”,故无需 `consume_detail_ids`。
|
||||
- 审批通过:
|
||||
1. 事务锁定单据与明细。
|
||||
2. 状态置为 `APPROVED`。
|
||||
3. 调用 `BalanceService.adjust_customer_balance(delta=-total_amount, source=SALES_RETURN_ORDER)`,写 `BalanceChangeRecord`,减少客户欠款。
|
||||
4. 根据商户设置触发 `create_sales_return_order_stock_entries`,底层走 `StockFlowService.stock_in`(source=`SALES_RETURN`)。
|
||||
- 作废:同销售单,只允许 `PENDING` 且未生成 `StockChangeRecord` 的单据作废;审批后不可逆。
|
||||
|
||||
---
|
||||
|
||||
## 7. 创建接口参数约定
|
||||
|
||||
销售单创建接口沿用采购单的参数格式,根据仓库模式填写 `items`:
|
||||
|
||||
@@ -55,7 +68,7 @@
|
||||
|
||||
> 说明:在严出模式下,`consume_detail_ids` 列表中的 ID 必须为同仓库、同商户且未被消耗的入库明细 ID。系统会在审批通过时逐条扣减对应库存。
|
||||
|
||||
## 6. 红冲(对冲)规划
|
||||
## 8. 红冲(对冲)规划
|
||||
|
||||
与采购单一致,后续将通过库存红冲入口(`StockFlowService.offset_stock_change` 占位方法)实现销售单出库的反向抵销。关键原则:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user