forked from erp-dev/erp
fix: comsume_detial_ids
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user