fix: wpr复用number的bug2
This commit is contained in:
parent
cd0045c561
commit
a0346f00bf
|
@ -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}-所属仓库批次")
|
||||
|
|
Loading…
Reference in New Issue