1
0
forked from erp-dev/erp
Files
erpnew/docs/orders_edit_api.md

2.9 KiB
Raw Permalink Blame History

订单编辑 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_dateYYYY-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>/
  • 请求体字段:
    • customerwarehousereturn_dateremarks(可选)
    • 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>/
  • 请求体字段:
    • supplierwarehouseorder_dateremarks
    • items:与创建规则相同(严进模式 numbers,宽进 quantity/num_of_rolls
  • 响应:200 OK,返回最新采购单,新增 quantity_of_rolls 字段
  • 错误示例:
    • {"error": "采购单当前状态不可修改"}(状态非 PENDING

PurchaseReturnOrder 更新

  • 路径:PUT/PATCH /api/v1/purchase-return-orders/<id>/
  • 请求体字段:
    • supplierwarehousereturn_dateremarks
    • purchase_order:可重新绑定关联采购单,必须属于当前供应商
    • items:结构同创建(严出仓仍需 consume_detail_ids
  • 响应:200 OK,返回采购退货单详情(含 quantity_of_rolls
  • 错误示例:
    • {"error": "采购退货单当前状态不可修改"}
    • {"error": "采购退货单的供应商必须与原采购单一致"}