采购出入库

This commit is contained in:
caoqianming 2022-03-15 09:06:34 +08:00
parent cf83b9e8f9
commit bae1c166a0
1 changed files with 15 additions and 7 deletions

View File

@ -77,23 +77,31 @@ class FIFOListSerializer(serializers.ModelSerializer):
fields = '__all__'
class FIFOItemCreateSerializer(serializers.ModelSerializer):
material_batch = serializers.PrimaryKeyRelatedField(queryset=MaterialBatch.objects.all(), label="物料批次ID", required=False)
class Meta:
model = FIFOItem
fields = ['warehouse',
'material', 'batch', 'fifo', 'files', 'pu_order_item', 'count', 'expiration_date']
'material', 'batch', 'fifo', 'files', 'pu_order_item', 'count', 'expiration_date', 'material_batch']
def create(self, validated_data):
fifo = validated_data['fifo']
if fifo.is_audited:
raise ValidationError('该出入库记录已审核')
pu_order_item = validated_data.get('pu_order_item', None)
if pu_order_item:
material_batch = validated_data.get('material_batch', None)
if fifo.type == FIFO.FIFO_TYPE_PUR_IN and pu_order_item is None:
raise ValidationError('采购入库需关联采购项')
else:
if fifo.pu_order != pu_order_item.pu_order:
raise ValidationError('项目与采购订单不一致')
validated_data['material']=pu_order_item.material
if fifo.type == FIFO.FIFO_TYPE_OTHER_OUT and material_batch is None:
raise ValidationError('其他出库需关联批次号')
else:
if fifo.pu_order is not None:
raise ValidationError('非采购订单')
validated_data['material'] = material_batch.material
validated_data['batch'] = material_batch.batch
validated_data['warehouse'] = material_batch.warehouse
return super().create(validated_data)
def validate_batch(self, value):
@ -106,7 +114,7 @@ class FIFOItemCreateSerializer(serializers.ModelSerializer):
class FIFOItemUpdateSerializer(serializers.ModelSerializer):
class Meta:
model = FIFOItem
fields = ['warehouse', 'batch', 'files', 'count', 'expiration_date']
fields = ['files', 'count', 'expiration_date']
class FIFOItemSerializer(serializers.ModelSerializer):
warehouse_ = WareHouseSimpleSerializer(source='warehouse', read_only=True)
@ -150,7 +158,7 @@ class FIFOOutOtherSerializer(serializers.ModelSerializer):
"""
其他出库序列化
"""
details = FIFODetailOutOtherSerializer(many=True, required=False)
details = FIFODetailOutOtherSerializer(many=True, required=True)
class Meta:
model = FIFO
@ -176,7 +184,7 @@ class FIFOInOtherSerializer(serializers.ModelSerializer):
"""
其他入库序列化
"""
details = FIFODetailInPurSerializer(many=True, required=False)
details = FIFODetailInPurSerializer(many=True, required=True)
vendor = serializers.PrimaryKeyRelatedField(label='供应商ID',
queryset=Vendor.objects.all())
class Meta: