From 7605574f375edff5ec1b6d8f4553c2fa4b2b7884 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 17 Jan 2025 09:29:33 +0800 Subject: [PATCH] fix: update_mb_item bug --- apps/inm/services.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/inm/services.py b/apps/inm/services.py index 9be227e4..6778b961 100644 --- a/apps/inm/services.py +++ b/apps/inm/services.py @@ -288,9 +288,12 @@ class InmService: ddict["batch_ofrom"] = i.batch ddict["material_ofrom"] = i.material - m_list = [(material, warehouse, i.batch, getattr(i, field), None, i)] # getattr主要是兼容原有逻辑 + count_change = i.count - i.count_notok + if field == "count": + count_change = getattr(i, field) + m_list = [(material, warehouse, i.batch, count_change, None, i)] + if tracking == Material.MA_TRACKING_SINGLE: - m_list = [] # 获取所有主要的不合格项 mw_qs = MIOItemw.objects.filter(mioitem=i) defectIds= FtestDefect.objects.filter(ftest__mioitemw_ftest__in=mw_qs, is_main=True, has=True).values_list("defect__id", flat=True).distinct() @@ -327,7 +330,7 @@ class InmService: mb.save() if tracking == Material.MA_TRACKING_SINGLE: mioitemws = MIOItemw.objects.filter(mioitem=i) - if mioitemws.count() != mb.count: + if mioitemws.count() != i.count: raise ParseError("出入库与明细数量不一致,操作失败") for mioitemw in mioitemws: if mioitemw.wpr: @@ -345,7 +348,7 @@ class InmService: mb.save() if tracking == Material.MA_TRACKING_SINGLE: mioitemws = MIOItemw.objects.filter(mioitem=i) - if mioitemws.count() != mb.count: + if mioitemws.count() != i.count: raise ParseError("出入库与明细数量不一致,操作失败") for mioitemw in mioitemws: Wpr.change_or_new(wpr=mioitemw.wpr, old_mb=mb)