forked from erp-dev/erp
feat: added put/patch api to main oobject of business module
This commit is contained in:
58
docs/orders_edit_api.md
Normal file
58
docs/orders_edit_api.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# 订单编辑 API 概览
|
||||
|
||||
用于更新业务订单(销售单、销售退货单、采购单、采购退货单)的共同约束:
|
||||
|
||||
- 仅允许 **审批中**(`PENDING`)状态编辑;若订单已审批/作废,服务层会抛出错误 `"{实体}当前状态不可修改"`。
|
||||
- 更新接口统一使用 `PUT/PATCH /api/v1/<order-type>/<id>/`,请求体必须包含 `items`,且为非空数组。
|
||||
- 数量校验与创建逻辑一致:严进仓需 `numbers`,宽进仓需 `quantity + num_of_rolls`,严进严出(出库)需 `consume_detail_ids`。
|
||||
- 订单字段(客户/供应商、仓库、备注、日期等)可被更新,未提供的字段沿用原值。
|
||||
|
||||
## SalesOrder 更新
|
||||
|
||||
- 路径:`PUT/PATCH /api/v1/sales-orders/<id>/`
|
||||
- 请求体字段(全部可选,但 `items` 必须存在且非空):
|
||||
- `customer`:客户 ID
|
||||
- `warehouse` / `warehouse_id`:仓库 ID
|
||||
- `order_date`:`YYYY-MM-DD`
|
||||
- `remarks`
|
||||
- `items`:与创建时一致(支持可选 `printing_job`)
|
||||
- 响应:`200 OK`,返回最新销售单详情(同 `GET` 列表项,额外包含 `quantity_of_rolls` 数组)
|
||||
- 错误:
|
||||
- `400`:参数缺失或状态不可编辑(`{"error": "销售单当前状态不可修改"}`)
|
||||
- `404`:订单不存在
|
||||
|
||||
> 其余订单(SalesReturn/Purchase/PurchaseReturn)的编辑接口,请在实现后按同一规范补充到本文件。
|
||||
|
||||
## SalesReturnOrder 更新
|
||||
|
||||
- 路径:`PUT/PATCH /api/v1/sales-return-orders/<id>/`
|
||||
- 请求体字段:
|
||||
- `customer`、`warehouse`、`return_date`、`remarks`(可选)
|
||||
- `sales_order`:可重新绑定关联销售单,同样必须属于当前客户
|
||||
- `items`:与创建规则一致(严进模式需 `numbers`,宽进模式 `quantity/num_of_rolls` 等)
|
||||
- 响应:`200 OK`,结构同 `GET /sales-return-orders/` + `quantity_of_rolls`
|
||||
- 错误示例:
|
||||
- `{"error": "销售退货单当前状态不可修改"}`(状态非 PENDING)
|
||||
- `{"error": "销售退货单的客户必须与原销售单一致"}`(客户不匹配)
|
||||
|
||||
## PurchaseOrder 更新
|
||||
|
||||
- 路径:`PUT/PATCH /api/v1/purchase-orders/<id>/`
|
||||
- 请求体字段:
|
||||
- `supplier`、`warehouse`、`order_date`、`remarks`
|
||||
- `items`:与创建规则相同(严进模式 `numbers`,宽进 `quantity/num_of_rolls`)
|
||||
- 响应:`200 OK`,返回最新采购单,新增 `quantity_of_rolls` 字段
|
||||
- 错误示例:
|
||||
- `{"error": "采购单当前状态不可修改"}`(状态非 PENDING)
|
||||
|
||||
## PurchaseReturnOrder 更新
|
||||
|
||||
- 路径:`PUT/PATCH /api/v1/purchase-return-orders/<id>/`
|
||||
- 请求体字段:
|
||||
- `supplier`、`warehouse`、`return_date`、`remarks`
|
||||
- `purchase_order`:可重新绑定关联采购单,必须属于当前供应商
|
||||
- `items`:结构同创建(严出仓仍需 `consume_detail_ids`)
|
||||
- 响应:`200 OK`,返回采购退货单详情(含 `quantity_of_rolls`)
|
||||
- 错误示例:
|
||||
- `{"error": "采购退货单当前状态不可修改"}`
|
||||
- `{"error": "采购退货单的供应商必须与原采购单一致"}`
|
||||
Reference in New Issue
Block a user