fix: update_mb_item bug

This commit is contained in:
caoqianming 2025-01-17 09:29:33 +08:00
parent 7382eed0b6
commit 7605574f37
1 changed files with 7 additions and 4 deletions

View File

@ -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)