xx
This commit is contained in:
@@ -59,7 +59,11 @@ from .material_schemas import (
|
||||
from .purchase_demand_schemas import (
|
||||
PurchaseDemandCalculateRequest,
|
||||
PurchaseDemandItemResponse,
|
||||
PurchaseDemandResponse
|
||||
PurchaseDemandResponse,
|
||||
PurchaseDemandConvertItem,
|
||||
PurchaseDemandConvertRequest,
|
||||
PurchaseOrderCreatedResponse,
|
||||
PurchaseDemandConvertResponse
|
||||
)
|
||||
|
||||
from .common_schemas import PaginatedResponse
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
from pydantic import BaseModel, Field
|
||||
from decimal import Decimal
|
||||
from typing import Optional, List
|
||||
from datetime import date
|
||||
|
||||
|
||||
class PurchaseDemandCalculateRequest(BaseModel):
|
||||
@@ -34,3 +35,34 @@ class PurchaseDemandResponse(BaseModel):
|
||||
shortage_count: int = Field(default=0, description="缺货物料种类数")
|
||||
source_order_ids: List[int] = Field(default_factory=list, description="来源销售订单ID")
|
||||
source_order_nos: List[str] = Field(default_factory=list, description="来源销售订单编号")
|
||||
|
||||
|
||||
class PurchaseDemandConvertItem(BaseModel):
|
||||
"""待转采购单的单条需求"""
|
||||
material_id: int
|
||||
quantity: Decimal = Field(..., gt=0, description="采购数量(通常取缺口量)")
|
||||
unit_cost: Decimal = Field(..., ge=0, description="单价")
|
||||
supplier_id: int
|
||||
|
||||
|
||||
class PurchaseDemandConvertRequest(BaseModel):
|
||||
"""一键生成采购单请求(按 supplier_id 分组,每组生成一张草稿采购单)"""
|
||||
items: List[PurchaseDemandConvertItem] = Field(..., min_length=1)
|
||||
expected_date: Optional[date] = None
|
||||
remark: Optional[str] = None
|
||||
|
||||
|
||||
class PurchaseOrderCreatedResponse(BaseModel):
|
||||
"""已创建的采购单摘要"""
|
||||
purchase_order_id: int
|
||||
order_no: str
|
||||
supplier_id: int
|
||||
supplier_name: str
|
||||
item_count: int
|
||||
total_amount: Decimal
|
||||
|
||||
|
||||
class PurchaseDemandConvertResponse(BaseModel):
|
||||
"""一键生成采购单结果"""
|
||||
created_orders: List[PurchaseOrderCreatedResponse] = Field(default_factory=list)
|
||||
skipped: int = Field(default=0, description="因数量<=0被跳过的条目数")
|
||||
|
||||
Reference in New Issue
Block a user