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