fix(stocktake): 实盘 0 不再被显示成 1
draft/list 与 StocktakeDraft.to_dict 用 float(x or 1) 序列化实盘数,而 0 是 falsy —— 货架盘到 0 的物料会被报成 1。前端「重复扫码」提示读的正是这个值,库管看到“当前实盘为 1”会以为填错而改成 1,真实盘亏就这么被抹掉。改为显式 None 判断,保住合法的 0。
This commit is contained in:
@ -811,7 +811,11 @@ def get_drafts():
|
||||
'id': row.draft_id,
|
||||
'user_id': row.user_id,
|
||||
'uuid': row.uuid,
|
||||
'quantity': float(row.quantity or 1),
|
||||
# ★ 不可写 `or 1`:实盘 0(货架确实空了)是合法且有信息量的值,
|
||||
# 而 0 是 falsy,`0 or 1` 会把它报成 1 —— 前端「重复扫码」提示读
|
||||
# 的就是这个值,库管看到"当前实盘为 1"会以为填错而改成 1,
|
||||
# 真实的盘亏就这么被抹掉了。
|
||||
'quantity': float(row.quantity) if row.quantity is not None else 0,
|
||||
'scan_time': row.scan_time.strftime('%Y-%m-%d %H:%M:%S') if row.scan_time else None,
|
||||
'session_id': row.session_id,
|
||||
'source_table': row.source_table,
|
||||
|
||||
Reference in New Issue
Block a user