fix: 采购入库逻辑的bug
This commit is contained in:
parent
0965e6c68e
commit
80b2685417
|
@ -23,6 +23,7 @@ class MaterialBatchSerializer(CustomModelSerializer):
|
|||
source='warehouse.name', read_only=True)
|
||||
material_name = serializers.CharField(
|
||||
source='material.name', read_only=True)
|
||||
material_ = MaterialSerializer(source='material', read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = MaterialBatch
|
||||
|
@ -97,6 +98,8 @@ class MIODoSerializer(CustomModelSerializer):
|
|||
label="车间", queryset=Dept.objects.all(), required=True)
|
||||
do_user = serializers.PrimaryKeyRelatedField(
|
||||
label="执行人", queryset=User.objects.all(), required=True)
|
||||
note = serializers.CharField(
|
||||
required=False, allow_blank=True)
|
||||
|
||||
class Meta:
|
||||
model = MIO
|
||||
|
@ -116,6 +119,8 @@ class MIODoSerializer(CustomModelSerializer):
|
|||
class MIOSaleSerializer(CustomModelSerializer):
|
||||
order = serializers.PrimaryKeyRelatedField(
|
||||
label="订单", queryset=Order.objects.all(), required=True)
|
||||
note = serializers.CharField(
|
||||
required=False, allow_blank=True)
|
||||
|
||||
class Meta:
|
||||
model = MIO
|
||||
|
@ -129,10 +134,16 @@ class MIOSaleSerializer(CustomModelSerializer):
|
|||
validated_data['belong_dept'] = order.belong_dept
|
||||
return super().create(validated_data)
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
validated_data.pop('type')
|
||||
return super().update(instance, validated_data)
|
||||
|
||||
|
||||
class MIOPurSerializer(CustomModelSerializer):
|
||||
pu_order = serializers.PrimaryKeyRelatedField(
|
||||
label="采购订单", queryset=PuOrder.objects.all(), required=True)
|
||||
note = serializers.CharField(
|
||||
required=False, allow_blank=True)
|
||||
|
||||
class Meta:
|
||||
model = MIO
|
||||
|
@ -146,8 +157,14 @@ class MIOPurSerializer(CustomModelSerializer):
|
|||
validated_data['belong_dept'] = pu_order.belong_dept
|
||||
return super().create(validated_data)
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
validated_data.pop('type')
|
||||
return super().update(instance, validated_data)
|
||||
|
||||
|
||||
class MIOOtherSerializer(CustomModelSerializer):
|
||||
note = serializers.CharField(
|
||||
required=False, allow_blank=True)
|
||||
|
||||
class Meta:
|
||||
model = MIO
|
||||
|
|
|
@ -39,8 +39,8 @@ class InmService:
|
|||
defaults={'material': material, 'warehouse': warehouse, 'count': 0, 'batch': i.batch})
|
||||
if in_or_out == 1:
|
||||
mb.count = mb.count + i.count
|
||||
if mb.expiration_date is None:
|
||||
mb.expiration_date = i.expiration_date
|
||||
# if mb.expiration_date is None:
|
||||
# mb.expiration_date = i.expiration_date
|
||||
mb.save()
|
||||
elif in_or_out == -1:
|
||||
mb.count = mb.count - i.count
|
||||
|
|
|
@ -45,6 +45,7 @@ class MaterialBatchViewSet(ListModelMixin, CustomGenericViewSet):
|
|||
serializer_class = MaterialBatchSerializer
|
||||
select_related_fields = ['warehouse', 'material']
|
||||
filterset_fields = ['warehouse', 'material']
|
||||
search_fields = ['material__name']
|
||||
|
||||
|
||||
class MioDoViewSet(BulkCreateModelMixin, BulkUpdateModelMixin, CustomGenericViewSet):
|
||||
|
@ -107,14 +108,12 @@ class MioOtherViewSet(BulkCreateModelMixin, BulkUpdateModelMixin, CustomGenericV
|
|||
return super().create(request, *args, **kwargs)
|
||||
|
||||
|
||||
class MIOViewSet(ListModelMixin, BulkCreateModelMixin, BulkUpdateModelMixin, DestroyModelMixin, CustomGenericViewSet):
|
||||
class MIOViewSet(CustomModelViewSet):
|
||||
"""
|
||||
list: 出入库记录
|
||||
|
||||
出入库记录
|
||||
"""
|
||||
perms_map = {'get': '*', 'post': 'mio.create',
|
||||
'put': 'mio.update', 'delete': 'mio.delete'}
|
||||
queryset = MIO.objects.all()
|
||||
select_related_fields = ['create_by', 'belong_dept', 'do_user',
|
||||
'submit_user', 'supplier', 'order', 'customer', 'pu_order']
|
||||
|
@ -122,18 +121,18 @@ class MIOViewSet(ListModelMixin, BulkCreateModelMixin, BulkUpdateModelMixin, Des
|
|||
filterset_fields = ['state', 'type', 'pu_order', 'order']
|
||||
data_filter = True
|
||||
|
||||
def get_serializer(self, *args, **kwargs):
|
||||
def get_serializer_class(self):
|
||||
if self.action in ['create', 'update', 'partial_update']:
|
||||
type = self.request.data.get('type')
|
||||
if type in [MIO.MIO_TYPE_DO_IN, MIO.MIO_TYPE_DO_OUT]:
|
||||
return MIODoSerializer(*args, **kwargs)
|
||||
return MIODoSerializer
|
||||
elif type in [MIO.MIO_TYPE_OTHER_IN, MIO.MIO_TYPE_OTHER_OUT]:
|
||||
return MIOOtherSerializer(*args, **kwargs)
|
||||
return MIOOtherSerializer
|
||||
elif type == MIO.MIO_TYPE_SALE_OUT:
|
||||
return MIOSaleSerializer(*args, **kwargs)
|
||||
return MIOSaleSerializer
|
||||
elif type == MIO.MIO_TYPE_PUR_IN:
|
||||
return MIOPurSerializer(*args, **kwargs)
|
||||
return super().get_serializer(*args, **kwargs)
|
||||
return MIOPurSerializer
|
||||
return self.serializer_class
|
||||
|
||||
def perform_destroy(self, instance):
|
||||
if instance.state != MIO.MIO_CREATE:
|
||||
|
|
Loading…
Reference in New Issue