feat: 调整wpmw允许编号重复
This commit is contained in:
parent
f58b84a4ee
commit
dcfa6155a9
|
@ -0,0 +1,19 @@
|
|||
# Generated by Django 3.2.12 on 2025-03-14 01:02
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('wpmw', '0004_auto_20250312_1610'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='wpr',
|
||||
name='wpr_from',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='wpmw.wpr', verbose_name='来源于'),
|
||||
),
|
||||
]
|
|
@ -22,6 +22,7 @@ class Wpr(BaseModel):
|
|||
mb = models.ForeignKey("inm.materialbatch", verbose_name="仓库物料", on_delete=models.CASCADE, null=True, blank=True)
|
||||
wm = models.ForeignKey("wpm.wmaterial", verbose_name="车间物料", on_delete=models.CASCADE, null=True, blank=True)
|
||||
oinfo = models.JSONField(verbose_name="其他信息", default=dict, blank=True)
|
||||
wpr_from = models.ForeignKey("self", verbose_name="来源于", on_delete=models.CASCADE, null=True, blank=True)
|
||||
|
||||
@classmethod
|
||||
def change_or_new(cls, wpr=None, number=None, mb=None, wm=None, old_mb=None, old_wm=None, ftest=None):
|
||||
|
@ -36,17 +37,20 @@ class Wpr(BaseModel):
|
|||
wpr.delete()
|
||||
return
|
||||
elif number:
|
||||
wpr_from = None
|
||||
try:
|
||||
if wm:
|
||||
ins = cls.objects.get(number=number, wm__material=wm.material)
|
||||
elif mb:
|
||||
ins = cls.objects.get(number=number, mb__material=mb.material)
|
||||
ins = cls.objects.get(number=number)
|
||||
if ins.wm is None and ins.mb is None:
|
||||
if ins.version > 1: # 说明被复用了
|
||||
wpr_from = ins
|
||||
else:
|
||||
raise ParseError(f"该物料编号{number}-已存在不可使用")
|
||||
else:
|
||||
raise ParseError(f"该物料编号{number}-请指定ID")
|
||||
raise ParseError(f"该物料编号{number}-已存在不可使用")
|
||||
raise ParseError(f"该物料编号{number}-已存在不可使用")
|
||||
except cls.DoesNotExist:
|
||||
ins = cls(number=number)
|
||||
ins.version = 0
|
||||
ins.wpr_from = wpr_from
|
||||
ins.version = -1
|
||||
|
||||
if old_mb and ins.mb != old_mb:
|
||||
raise ParseError(f"请检查-{ins.number}-所属仓库批次")
|
||||
|
|
Loading…
Reference in New Issue