fix: wpr复用number的bug2

This commit is contained in:
caoqianming 2025-04-28 09:17:01 +08:00
parent cd0045c561
commit a0346f00bf
1 changed files with 11 additions and 7 deletions

View File

@ -38,30 +38,34 @@ class Wpr(BaseModel):
wpr.delete()
return
elif number:
try:
ins_x = cls.objects.get(number=number)
ins_x = cls.objects.filter(number=number).order_by("-version").first()
if ins_x:
if ins_x.wm is None and ins_x.mb is None:
if ins_x.version > 1: # 说明被复用了
if wpr_from is None:
wpr_from = ins_x
# 创建新的wpr
ins = cls(number=number)
ins.version = -1
ins.oinfo = {}
else:
raise ParseError(f"该物料编号{number}-已存在不可使用")
else:
raise ParseError(f"该物料编号{number}-已存在不可使用")
except cls.DoesNotExist:
else:
ins = cls(number=number)
ins.version = -1
ins.oinfo = {}
if batch_from: # 尝试从批号追踪来源
try:
ins_from = cls.objects.get(number=number)
ins_from = cls.objects.filter(number=batch_from).order_by("-version").first()
if ins_from:
if ins_from.wm is None and ins_from.mb is None:
if ins_from.version > 1: # 说明被复用了
wpr_from = ins_from
else:
raise ParseError(f"该物料编号{number}-已存在不可使用")
except cls.DoesNotExist:
pass
elif wpr_from is None:
raise ParseError(f"该物料编号{number}-尝试从批号追踪来源失败")
if old_mb and ins.mb != old_mb:
raise ParseError(f"请检查-{ins.number}-所属仓库批次")