x
This commit is contained in:
@@ -152,10 +152,13 @@ async def _apply_order_items(
|
||||
if product.item_type != "material":
|
||||
raise HTTPException(status_code=400, detail=f"采购单仅允许物料: {product.name}")
|
||||
|
||||
# 使用物料的成本价格作为单价,忽略前端提交的单价
|
||||
unit_price = product.cost_price or 0
|
||||
# 优先使用前端传入的单价,否则使用物料成本价
|
||||
if item_data.unit_price and item_data.unit_price > 0:
|
||||
unit_price = float(item_data.unit_price)
|
||||
else:
|
||||
unit_price = product.cost_price or 0
|
||||
if unit_price <= 0:
|
||||
raise HTTPException(status_code=400, detail=f"物料 {product.name} 未设置成本价格,请在物料管理界面设置")
|
||||
raise HTTPException(status_code=400, detail=f"物料 {product.name} 未设置价格,请在物料管理界面设置成本价或在采购明细中填写单价")
|
||||
|
||||
try:
|
||||
item = PurchaseOrderItem(
|
||||
|
||||
@@ -7,7 +7,7 @@ from decimal import Decimal
|
||||
class PurchaseOrderItemCreate(BaseModel):
|
||||
product_id: int
|
||||
quantity: int = Field(..., gt=0, description="采购数量")
|
||||
unit_price: Optional[Decimal] = Field(None, description="单价(可选,后端自动使用物料成本价格)")
|
||||
unit_price: Optional[Decimal] = Field(None, description="单价(可选,不填则使用物料成本价格)")
|
||||
remark: Optional[str] = None
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user