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

@@ -21,7 +21,7 @@
---
## 2. 采购PurchaseOrder
## 2. 采购相关:采购单 + 采购退货单
| API | 方法 | 描述 |
|-----|------|------|
@@ -59,9 +59,21 @@
成功返回最新的采购单序列化(含 `items``total_amount``status_name` 等)。
### 2.3 采购退货单PurchaseReturnOrder
| API | 方法 | 描述 |
|-----|------|------|
| `/purchase-return-orders/` | GET/POST | 与采购单相同的查询/创建接口,字段改为 `return_date`。 |
| `/purchase-return-orders/<id>/review/` | POST | 审批或作废,流程与采购单一致。 |
- **创建字段**`supplier``warehouse``return_date``items`、可选 `purchase_order``items` 结构沿用采购单;当仓库 `mode=RESTRICT_IN_OUT` 时必须提供 `consume_detail_ids`,指明要冲销的入库明细。
- **审批逻辑**
- `approve`:在事务内锁单、构建 `stock_flow_items`,状态置为 `APPROVED`,调用 `StockFlowService.stock_out`source=`PURCHASE_RETURN`),并向 `BalanceService` 写入 **负值** 以减少供应商应付。
- `cancel`:仅允许 `PENDING` 且尚未生成 `StockChangeRecord` 的单据;审批完成后禁止作废。
---
## 3. 销售SalesOrder
## 3. 销售相关:销售单 + 销售退货单
| API | 方法 | 描述 |
|-----|------|------|
@@ -107,6 +119,18 @@
- `approve`:写入客户余额(正向欠款),若商户配置自动出库则触发 `create_sales_order_stock_entries`
- `cancel`:如果已存在 `StockChangeRecord`source=`SALES`)则拒绝。
### 3.3 销售退货单SalesReturnOrder
| API | 方法 | 描述 |
|-----|------|------|
| `/sales-return-orders/` | GET/POST | 创建 / 列表接口。 |
| `/sales-return-orders/<id>/review/` | POST | 审批或作废。 |
- **创建字段**`customer``warehouse``return_date``items`、可选 `sales_order`。因退货为入库动作,严出仓不再需要 `consume_detail_ids`
- **审批逻辑**
- `approve`:状态置为 `APPROVED`,调用 `StockFlowService.stock_in`source=`SALES_RETURN`),并向 `BalanceService` 写入 **负值** 以冲减客户欠款,同时写 `BalanceChangeRecord`
- `cancel`:仅允许 `PENDING` 且未生成 `StockChangeRecord` 的单据;审批通过后不可作废。
---
## 4. 付款单PaymentOrder