fix: MIOItemwSerializer修改
This commit is contained in:
parent
8d0d5ebcd0
commit
86007d0ad4
|
@ -153,6 +153,10 @@ class MIOItem(BaseModel):
|
||||||
mioitem_count_fields.append(f.name)
|
mioitem_count_fields.append(f.name)
|
||||||
return mioitem_count_fields
|
return mioitem_count_fields
|
||||||
|
|
||||||
|
@property
|
||||||
|
def mioitemw(self):
|
||||||
|
return MIOItemw.objects.filter(mioitem=self)
|
||||||
|
|
||||||
class MIOItemA(BaseModel):
|
class MIOItemA(BaseModel):
|
||||||
"""
|
"""
|
||||||
组合件出入库明细
|
组合件出入库明细
|
||||||
|
|
|
@ -92,15 +92,11 @@ class MIOItemACreateSerializer(CustomModelSerializer):
|
||||||
fields = ['material', 'batch', 'zhuidu',
|
fields = ['material', 'batch', 'zhuidu',
|
||||||
'b_zuidawaijing', 'g_zuidaneijing']
|
'b_zuidawaijing', 'g_zuidaneijing']
|
||||||
|
|
||||||
class MIOItemwCreateSerializer(CustomModelSerializer):
|
|
||||||
class Meta:
|
|
||||||
model = MIOItemw
|
|
||||||
fields = ["number", "note"]
|
|
||||||
|
|
||||||
class MIOItemwSerializer(CustomModelSerializer):
|
class MIOItemwSerializer(CustomModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = MIOItemw
|
model = MIOItemw
|
||||||
fields = "__all__"
|
fields = "__all__"
|
||||||
|
read_only_fields = EXCLUDE_FIELDS_BASE + ["mioitem"]
|
||||||
|
|
||||||
class MIOItemwTestSerializer(CustomModelSerializer):
|
class MIOItemwTestSerializer(CustomModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -118,12 +114,12 @@ class MIOItemwTestSerializer(CustomModelSerializer):
|
||||||
class MIOItemCreateSerializer(CustomModelSerializer):
|
class MIOItemCreateSerializer(CustomModelSerializer):
|
||||||
assemb = MIOItemACreateSerializer(
|
assemb = MIOItemACreateSerializer(
|
||||||
label='组合件信息', many=True, write_only=True, required=False)
|
label='组合件信息', many=True, write_only=True, required=False)
|
||||||
mioitemw_ = MIOItemwCreateSerializer(many=True, required=False)
|
mioitemw = MIOItemwSerializer(many=True, required=False)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = MIOItem
|
model = MIOItem
|
||||||
fields = ['mio', 'warehouse', 'material',
|
fields = ['mio', 'warehouse', 'material',
|
||||||
'batch', 'count', 'assemb', 'is_testok', 'mioitemw_']
|
'batch', 'count', 'assemb', 'is_testok', 'mioitemw']
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
mio = validated_data['mio']
|
mio = validated_data['mio']
|
||||||
|
@ -142,7 +138,7 @@ class MIOItemCreateSerializer(CustomModelSerializer):
|
||||||
count = validated_data["count"]
|
count = validated_data["count"]
|
||||||
batch = validated_data["batch"]
|
batch = validated_data["batch"]
|
||||||
assemb = validated_data.pop('assemb', [])
|
assemb = validated_data.pop('assemb', [])
|
||||||
mioitemw_ = validated_data.pop('mioitemw_', [])
|
mioitemw = validated_data.pop('mioitemw', [])
|
||||||
instance = super().create(validated_data)
|
instance = super().create(validated_data)
|
||||||
assemb_dict = {}
|
assemb_dict = {}
|
||||||
for i in assemb:
|
for i in assemb:
|
||||||
|
@ -157,12 +153,12 @@ class MIOItemCreateSerializer(CustomModelSerializer):
|
||||||
else:
|
else:
|
||||||
raise ParseError('缺少组合件')
|
raise ParseError('缺少组合件')
|
||||||
if material.tracking == Material.MA_TRACKING_SINGLE:
|
if material.tracking == Material.MA_TRACKING_SINGLE:
|
||||||
if count == 1 and len(mioitemw_) == 0:
|
if count == 1 and len(mioitemw) == 0:
|
||||||
MIOItemw.objects.create(mioitem=instance, number=batch)
|
MIOItemw.objects.create(mioitem=instance, number=batch)
|
||||||
elif count == 1 and len(mioitemw_) >= 1:
|
elif count == 1 and len(mioitemw) >= 1:
|
||||||
MIOItemw.objects.create(mioitem=instance, number=mioitemw_[0]['number'], note=mioitemw_[0]['note'])
|
MIOItemw.objects.create(mioitem=instance, number=mioitemw[0]['number'], note=mioitemw[0]['note'])
|
||||||
elif count > 1 and len(mioitemw_) == count:
|
elif count > 1 and len(mioitemw) == count:
|
||||||
for item in mioitemw_:
|
for item in mioitemw:
|
||||||
MIOItemw.objects.create(mioitem=instance, number=item['number'], note=item['note'])
|
MIOItemw.objects.create(mioitem=instance, number=item['number'], note=item['note'])
|
||||||
else:
|
else:
|
||||||
raise ParseError('单个明细信息不匹配')
|
raise ParseError('单个明细信息不匹配')
|
||||||
|
@ -190,7 +186,7 @@ class MIOItemSerializer(CustomModelSerializer):
|
||||||
source='material', read_only=True)
|
source='material', read_only=True)
|
||||||
inout_date = serializers.DateField(source='mio.inout_date', read_only=True)
|
inout_date = serializers.DateField(source='mio.inout_date', read_only=True)
|
||||||
test_user_name = serializers.CharField(source='test_user.name', read_only=True)
|
test_user_name = serializers.CharField(source='test_user.name', read_only=True)
|
||||||
mioitemw_ = MIOItemwSerializer(source='w_mioitem', read_only=True, many=True)
|
mioitemw = MIOItemwSerializer(many=True, required=False)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = MIOItem
|
model = MIOItem
|
||||||
|
|
Loading…
Reference in New Issue