fix: 日志和交接记录操作数正值校验
This commit is contained in:
parent
0489a545e8
commit
181d477425
|
@ -196,6 +196,8 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
|
|||
m_ins_list = [(material_in, mlog.batch, mlog.count_use, None, mlog)]
|
||||
for mi in m_ins_list:
|
||||
mi_ma, mi_batch, mi_count, defect, mlog_or_b = mi
|
||||
if mi_count <= 0:
|
||||
raise ParseError('存在非正数!')
|
||||
# 需要判断领用数是否合理
|
||||
# 优先使用工段库存
|
||||
if isinstance(mlog_or_b, Mlogb) and mlog_or_b.wm_in:
|
||||
|
@ -235,18 +237,19 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
|
|||
if need_store_notok:
|
||||
for item in m_ins_bl_list:
|
||||
material, batch, count, defect, mi_ = item
|
||||
if count> 0:
|
||||
lookup = {'batch': batch, 'material': material, 'mgroup': mgroup, 'defect': defect, 'state': WMaterial.WM_NOTOK}
|
||||
wm, is_create = WMaterial.objects.get_or_create(**lookup, defaults={"belong_dept": belong_dept})
|
||||
wm.count = wm.count + count
|
||||
if is_create:
|
||||
wm.create_by = user
|
||||
wm.batch_ofrom = mi_.batch_ofrom
|
||||
wm.material_ofrom = mi_.material_ofrom
|
||||
wm.update_by = user
|
||||
wm.save()
|
||||
if material.tracking == Material.MA_TRACKING_SINGLE:
|
||||
raise ParseError("加工前不良的物料暂不支持单件追踪")
|
||||
if count <= 0:
|
||||
raise ParseError('存在非正数!')
|
||||
lookup = {'batch': batch, 'material': material, 'mgroup': mgroup, 'defect': defect, 'state': WMaterial.WM_NOTOK}
|
||||
wm, is_create = WMaterial.objects.get_or_create(**lookup, defaults={"belong_dept": belong_dept})
|
||||
wm.count = wm.count + count
|
||||
if is_create:
|
||||
wm.create_by = user
|
||||
wm.batch_ofrom = mi_.batch_ofrom
|
||||
wm.material_ofrom = mi_.material_ofrom
|
||||
wm.update_by = user
|
||||
wm.save()
|
||||
if material.tracking == Material.MA_TRACKING_SINGLE:
|
||||
raise ParseError("加工前不良的物料暂不支持单件追踪")
|
||||
|
||||
|
||||
if material_out or is_fix: # 需要入车间库存
|
||||
|
@ -291,7 +294,9 @@ def mlog_submit(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
|
|||
# 一次填写的暂时不处理不合格品
|
||||
for mo in m_outs_list:
|
||||
mo_ma, mo_batch, mo_count, mo_count_eweight, notok_sign_or_defect, mlog_or_b = mo
|
||||
if mo_count <= 0:
|
||||
if mo_count < 0:
|
||||
raise ParseError('存在负数!')
|
||||
elif mo_count == 0:
|
||||
continue
|
||||
if is_fix:
|
||||
wm_state = WMaterial.WM_REPAIRED
|
||||
|
@ -432,7 +437,9 @@ def mlog_revert(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
|
|||
|
||||
for mo in m_outs_list:
|
||||
mo_ma, mo_batch, mo_count, _, notok_sign_or_defect, mlog_or_b = mo
|
||||
if mo_count == 0:
|
||||
if mo_count < 0:
|
||||
raise ParseError('存在负数!')
|
||||
elif mo_count == 0:
|
||||
continue
|
||||
if is_fix:
|
||||
wm_state = WMaterial.WM_REPAIRED
|
||||
|
@ -497,6 +504,8 @@ def mlog_revert(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
|
|||
m_ins_list = [(material_in, mlog.batch, mlog.count_use, mlog.wm_in, mlog)]
|
||||
for mi in m_ins_list:
|
||||
mi_ma, mi_batch, mi_count, defect_or, mlog_or_b = mi
|
||||
if mi_count <= 0:
|
||||
raise ParseError('存在非正数!')
|
||||
if isinstance(mlog_or_b, Mlogb) and mlog_or_b.wm_in:
|
||||
wm = WMaterial.objects.get(id=mlog_or_b.wm_in.id)
|
||||
else:
|
||||
|
@ -528,19 +537,20 @@ def mlog_revert(mlog: Mlog, user: User, now: Union[datetime.datetime, None]):
|
|||
if stored_notok:
|
||||
for item in m_ins_bl_list:
|
||||
material, batch, count, defect, mi_ = item
|
||||
if count> 0:
|
||||
lookup = {'batch': batch, 'material': material, 'mgroup': mgroup, 'defect': defect, 'state': WMaterial.WM_NOTOK}
|
||||
wm, is_create = WMaterial.objects.get_or_create(**lookup, defaults={**lookup, "belong_dept": belong_dept})
|
||||
wm.count = wm.count - count
|
||||
if wm.count < 0:
|
||||
raise ParseError('加工前不良数量大于库存量')
|
||||
if is_create:
|
||||
wm.create_by = user
|
||||
else:
|
||||
wm.update_by = user
|
||||
wm.save()
|
||||
if material.tracking == Material.MA_TRACKING_SINGLE:
|
||||
raise ParseError("加工前不良的物料暂不支持单件回退")
|
||||
if count <= 0:
|
||||
raise ParseError('存在非正数!')
|
||||
lookup = {'batch': batch, 'material': material, 'mgroup': mgroup, 'defect': defect, 'state': WMaterial.WM_NOTOK}
|
||||
wm, is_create = WMaterial.objects.get_or_create(**lookup, defaults={**lookup, "belong_dept": belong_dept})
|
||||
wm.count = wm.count - count
|
||||
if wm.count < 0:
|
||||
raise ParseError('加工前不良数量大于库存量')
|
||||
if is_create:
|
||||
wm.create_by = user
|
||||
else:
|
||||
wm.update_by = user
|
||||
wm.save()
|
||||
if material.tracking == Material.MA_TRACKING_SINGLE:
|
||||
raise ParseError("加工前不良的物料暂不支持单件回退")
|
||||
|
||||
mlog.submit_time = None
|
||||
mlog.submit_user = None
|
||||
|
@ -723,6 +733,8 @@ def handover_submit(handover:Handover, user: User, now: Union[datetime.datetime,
|
|||
mids = []
|
||||
for item in handoverb_list:
|
||||
wmId, xcount, handover_or_b = item
|
||||
if xcount <= 0:
|
||||
raise ParseError("存在非正数!")
|
||||
wm_from = WMaterial.objects.get(id=wmId)
|
||||
mids.append(wm_from.material.id)
|
||||
|
||||
|
|
Loading…
Reference in New Issue