1
0
forked from erp-dev/erp

fix: comsume_detial_ids

This commit is contained in:
2026-02-02 18:29:17 +08:00
parent 117e13195c
commit 9c07d7d85a
4 changed files with 48 additions and 3 deletions

View File

@@ -1130,6 +1130,26 @@ def _normalize_order_items(
consume_detail_ids_str = ','.join(str(value) for value in normalized_ids)
quantity = _to_positive_int(raw_item.get('quantity'), f'items[{index}].quantity')
num_of_rolls = len(normalized_ids)
details_by_id = stock_models.StockChangeDetail.objects.select_related(
'stock_change_record'
).filter(
id__in=normalized_ids,
merchant=merchant,
).in_bulk()
if len(details_by_id) == len(normalized_ids):
quantities: List[str] = []
for pos, detail_id in enumerate(normalized_ids):
detail = details_by_id[detail_id]
if detail.product_id != product.id:
raise ValueError(
f'items[{index}].consume_detail_ids[{pos}] 产品不匹配'
)
if detail.stock_change_record.warehouse_id != warehouse.id:
raise ValueError(
f'items[{index}].consume_detail_ids[{pos}] 仓库不匹配'
)
quantities.append(format(detail.quantity.normalize(), 'f'))
quantity_of_rolls = ','.join(quantities)
stock_flow_items.append({
'product_id': product.id,
'consume_detail_ids': normalized_ids,