forked from erp-dev/erp
2.9 KiB
2.9 KiB
订单编辑 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:客户 IDwarehouse/warehouse_id:仓库 IDorder_date:YYYY-MM-DDremarksitems:与创建时一致(支持可选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、remarksitems:与创建规则相同(严进模式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、remarkspurchase_order:可重新绑定关联采购单,必须属于当前供应商items:结构同创建(严出仓仍需consume_detail_ids)
- 响应:
200 OK,返回采购退货单详情(含quantity_of_rolls) - 错误示例:
{"error": "采购退货单当前状态不可修改"}{"error": "采购退货单的供应商必须与原采购单一致"}