feat: mioitem 返回信息时展示组合件信息
This commit is contained in:
parent
7d2fee8409
commit
884b10d6bc
|
@ -30,6 +30,15 @@ class MaterialBatchAListSerializer(CustomModelSerializer):
|
|||
fields = ['material', 'batch', 'rate', 'mb', 'id', 'material_']
|
||||
|
||||
|
||||
class MaterialBatchAListSerializer2(CustomModelSerializer):
|
||||
material_name = serializers.StringRelatedField(
|
||||
source='material', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = MIOItemA
|
||||
fields = ['material', 'batch', 'rate', 'mb',
|
||||
'id', 'material_', 'material_name']
|
||||
|
||||
class MaterialBatchSerializer(CustomModelSerializer):
|
||||
warehouse_name = serializers.CharField(
|
||||
source='warehouse.name', read_only=True)
|
||||
|
@ -209,15 +218,14 @@ class MIOItemAListSerializer(CustomModelSerializer):
|
|||
|
||||
class Meta:
|
||||
model = MIOItemA
|
||||
fields = ['material', 'batch', 'rate', 'mioitem',
|
||||
'id', 'material_', 'material_name']
|
||||
fields = "__all__"
|
||||
read_only_fields = EXCLUDE_FIELDS_BASE
|
||||
|
||||
|
||||
class MIOItemSerializer(CustomModelSerializer):
|
||||
warehouse_name = serializers.CharField(source='warehouse.name', read_only=True)
|
||||
material_ = MaterialSerializer(source='material', read_only=True)
|
||||
assemb = MIOItemAListSerializer(
|
||||
source='a_mioitem', read_only=True, many=True)
|
||||
assemb = serializers.SerializerMethodField(label="组合件信息")
|
||||
material_name = serializers.StringRelatedField(
|
||||
source='material', read_only=True)
|
||||
inout_date = serializers.DateField(source='mio.inout_date', read_only=True)
|
||||
|
@ -235,6 +243,15 @@ class MIOItemSerializer(CustomModelSerializer):
|
|||
ret["price"] = Decimal(ret["count"]) * Decimal(ret["unit_price"])
|
||||
return ret
|
||||
|
||||
def get_assemb(self, obj):
|
||||
qs = MIOItemA.objects.filter(mioitem=obj)
|
||||
if qs.exists():
|
||||
return MIOItemAListSerializer(qs, many=True).data
|
||||
elif obj.mb and obj.mb.material.is_assemb:
|
||||
return MaterialBatchAListSerializer2(MaterialBatchA.objects.filter(mb=obj.mb), many=True).data
|
||||
return None
|
||||
|
||||
|
||||
class MioItemDetailSerializer(MIOItemSerializer):
|
||||
mio_ = MIOListSerializer(source='mio', read_only=True)
|
||||
|
||||
|
|
Loading…
Reference in New Issue