diff --git a/hb_server/apps/inm/serializers.py b/hb_server/apps/inm/serializers.py index a05e3c1..32abb80 100644 --- a/hb_server/apps/inm/serializers.py +++ b/hb_server/apps/inm/serializers.py @@ -1,78 +1,95 @@ from rest_framework import serializers -from apps.inm.models import FIFO, FIFOItem, FIFOItemProduct, IProduct, MaterialBatch, WareHouse,Inventory +from apps.inm.models import FIFO, FIFOItem, FIFOItemProduct, IProduct, MaterialBatch, WareHouse, Inventory from apps.qm.models import TestRecord, TestRecordItem from apps.system.serializers import UserSimpleSerializer from apps.mtm.serializers import MaterialSimpleSerializer from django.db import transaction -class WareHouseSerializer(serializers. ModelSerializer): - create_by_=UserSimpleSerializer('create_by', read_only=True) + +class WareHouseSerializer(serializers.ModelSerializer): + create_by_ = UserSimpleSerializer('create_by', read_only=True) + class Meta: model = WareHouse fields = '__all__' + class WareHouseCreateUpdateSerializer(serializers.ModelSerializer): class Meta: model = WareHouse fields = ['name', 'number', 'place'] + class WareHouseSimpleSerializer(serializers.ModelSerializer): class Meta: model = WareHouse fields = ['name', 'number', 'place'] -class InventorySerializer(serializers. ModelSerializer): - material_= MaterialSimpleSerializer(source='material', read_only=True) + +class InventorySerializer(serializers.ModelSerializer): + material_ = MaterialSimpleSerializer(source='material', read_only=True) warehouse_ = WareHouseSimpleSerializer(source='warehouse', read_only=True) + class Meta: model = Inventory fields = '__all__' -class MaterialBatchSerializer(serializers. ModelSerializer): - material_= MaterialSimpleSerializer(source='material', read_only=True) + +class MaterialBatchSerializer(serializers.ModelSerializer): + material_ = MaterialSimpleSerializer(source='material', read_only=True) warehouse_ = WareHouseSimpleSerializer(source='warehouse', read_only=True) + class Meta: model = MaterialBatch fields = '__all__' + class IProductListSerializer(serializers.ModelSerializer): - material_= MaterialSimpleSerializer(source='material', read_only=True) + material_ = MaterialSimpleSerializer(source='material', read_only=True) warehouse_ = WareHouseSimpleSerializer(source='warehouse', read_only=True) is_mtested = serializers.BooleanField(source='wproduct.is_mtested', read_only=True) is_mtestok = serializers.BooleanField(source='wproduct.is_mtestok', read_only=True) remark_mtest = serializers.CharField(source='wproduct.remark_mtest', read_only=True) + class Meta: model = IProduct fields = '__all__' - + class FIFOListSerializer(serializers.ModelSerializer): auditor_ = UserSimpleSerializer(source='auditor', read_only=True) create_by_ = UserSimpleSerializer(source='create_by', read_only=True) + class Meta: - model=FIFO + model = FIFO fields = '__all__' + class FIFOItemSerializer(serializers.ModelSerializer): warehouse_ = WareHouseSimpleSerializer(source='warehouse', read_only=True) - material_= MaterialSimpleSerializer(source='material', read_only=True) + material_ = MaterialSimpleSerializer(source='material', read_only=True) + class Meta: - model= FIFOItem + model = FIFOItem fields = '__all__' + class IProductInPurSerializer(serializers.ModelSerializer): class Meta: model = IProduct fields = ['number'] - + + class FIFODetailInPurSerializer(serializers.ModelSerializer): details = IProductInPurSerializer(many=True, required=False) + class Meta: model = FIFOItem fields = ['material', 'count', 'batch', 'details', 'warehouse'] + class MaterialBatchQuerySerializer(serializers.Serializer): warehouse = serializers.IntegerField(label="仓库ID", required=False) materials = serializers.ListField(child=serializers.IntegerField(label="物料ID"), required=False) @@ -83,13 +100,14 @@ class FIFOInPurSerializer(serializers.ModelSerializer): 采购入库序列化 """ details = FIFODetailInPurSerializer(many=True) + class Meta: model = FIFO - fields = ['details', 'inout_date'] + fields = ['details'] def create(self, validated_data): details = validated_data.pop('details') - if len(details)>0: + if len(details) > 0: pass else: raise serializers.ValidationError('没有入库内容') @@ -103,7 +121,7 @@ class FIFOInPurSerializer(serializers.ModelSerializer): # raise serializers.ValidationError('批次号{}在其他仓库已存在'.format(i['batch'])) # except: # pass - + # 创建采购入库 with transaction.atomic(): validated_data['type'] = FIFO.FIFO_TYPE_PUR_IN @@ -137,17 +155,17 @@ class FIFOInPurSerializer(serializers.ModelSerializer): return obj - class InmTestRecordItemCreateSerializer(serializers.ModelSerializer): class Meta: model = TestRecordItem fields = ['form_field', 'field_value', 'is_testok'] + class InmTestRecordCreateSerializer(serializers.ModelSerializer): record_data = InmTestRecordItemCreateSerializer(many=True) fifo_item = serializers.PrimaryKeyRelatedField(queryset=FIFOItem.objects.all(), required=True) is_testok = serializers.BooleanField() + class Meta: model = TestRecord fields = ['form', 'record_data', 'is_testok', 'fifo_item'] -