forked from erp-dev/erp
fix: stock-snapshots api and service calc wrong result
This commit is contained in:
@@ -815,7 +815,6 @@ def create_stock_snapshot(stock_change_detail: models.StockChangeDetail, invento
|
||||
raise ValueError("无效的库存变动明细记录")
|
||||
|
||||
delta = stock_change_detail.quantity if stock_change_detail.stock_change_record.is_incoming else -stock_change_detail.quantity
|
||||
rolls_delta = 1 if stock_change_detail.stock_change_record.is_incoming else -1
|
||||
|
||||
# 必须在库存变动发生后创建快照
|
||||
snapshot = models.StockSnapshot(
|
||||
@@ -827,7 +826,7 @@ def create_stock_snapshot(stock_change_detail: models.StockChangeDetail, invento
|
||||
quantity_after=inventory.quantity,
|
||||
stock_change_record_id=stock_change_detail.stock_change_record.id,
|
||||
unit=stock_change_detail.unit,
|
||||
num_of_rolls=inventory.num_of_rolls + rolls_delta,
|
||||
num_of_rolls=inventory.num_of_rolls,
|
||||
)
|
||||
snapshot.save()
|
||||
logger.info(
|
||||
|
||||
@@ -241,6 +241,7 @@ class CreateStockSnapshotTestCase(StockServicesTestCase):
|
||||
self.assertEqual(snapshot.delta, 100) # 入库数量为正
|
||||
self.assertEqual(snapshot.quantity_before, 50) # 150 - 100
|
||||
self.assertEqual(snapshot.quantity_after, 150)
|
||||
self.assertEqual(snapshot.num_of_rolls, self.inventory.num_of_rolls)
|
||||
self.assertEqual(snapshot.stock_change_record_id, self.stock_change_in.id)
|
||||
|
||||
# 验证日志调用
|
||||
@@ -257,6 +258,7 @@ class CreateStockSnapshotTestCase(StockServicesTestCase):
|
||||
self.assertEqual(snapshot.delta, -50) # 出库数量为负
|
||||
self.assertEqual(snapshot.quantity_before, 200) # 150 - (-50)
|
||||
self.assertEqual(snapshot.quantity_after, 150)
|
||||
self.assertEqual(snapshot.num_of_rolls, self.inventory.num_of_rolls)
|
||||
|
||||
def test_create_snapshot_with_invalid_detail(self):
|
||||
"""测试使用无效明细记录创建快照"""
|
||||
|
||||
Reference in New Issue
Block a user