1
0
forked from erp-dev/erp

fix: added merchant_id in models of shipment module

This commit is contained in:
2026-01-14 19:43:29 +08:00
parent 8846446ecf
commit 9a367caab7
11 changed files with 558 additions and 10 deletions

View File

@@ -156,6 +156,39 @@ python manage.py backfill_merchant <merchant_id>
---
### 9. Shipment 创建 API普通版 & External 版
新增并完善了两个创建出货单接口:
#### 普通版(绑定销售品)
- **接口**`POST /api/v1/shipment/shipments/`
- **参数**`sales_items: [销售品ID...]`
- **行为**:创建出货单并把销售品关联到该出货单
#### External 版(不绑定销售品 + 外部成品表批量写入)
- **接口**`POST /api/v1/shipment/shipments/external/`
- **参数**
- `external_id` 必填
- `external_finished_products`(数组)必填,用于写入 `ExternalFinishedProduct` 并关联到 Shipment
- **行为**:创建出货单 + 批量创建外部成品表记录(不关联任何销售品)
#### 代码位置
- `shipment/services.py`: 新增 `create_external_shipment()`
- `api_v1/views/shipment/views.py`: 新增 `ShipmentExternalCreateView`
- `api_v1/views/shipment/serializers.py`: 新增 external 创建序列化器与响应字段扩展
- `api_v1/urls.py`: 注册 external 创建路由
- `api_v1/views/shipment/test_api.py`: 新增 external create 测试
#### merchant 强制归属(非空)
-`Shipment``SalesItem` 增加 `merchant` 外键且不允许为空
- 创建时从 `request.user.employee.merchant` 自动绑定,并校验 customer 同商户
- 普通版在关联销售品时校验销售品同商户,避免跨商户关联
#### 文档
- `docs/shipment_api.md`: 补充 external create API 文档
---
## 待办
---