领料需求接口

This commit is contained in:
caoqianming 2021-11-01 08:57:06 +08:00
parent 74c787960e
commit d832878c50
3 changed files with 31 additions and 9 deletions

View File

@ -79,6 +79,17 @@ class FIFOInPurSerializer(serializers.ModelSerializer):
pass
else:
raise serializers.ValidationError('没有入库内容')
for i in details:
# 校验批次
try:
obj = MaterialBatch.objects.get(batch=i['batch'])
if obj.warehouse != validated_data['warehouse']:
raise serializers.ValidationError('批次号{}在其他仓库已存在'.format(i['batch']))
except:
pass
# 创建采购入库
validated_data['type'] = 3
obj = FIFO(**validated_data)
obj.save()

View File

@ -50,15 +50,16 @@ class MaterialBatchViewSet(ListModelMixin, GenericViewSet):
ordering_fields = ['create_time']
ordering = ['-create_time']
# @action(methods=['post'], detail=False, perms_map={'post':'*'}, serializer_class=MaterialBatchQuerySerializer)
# def query(self, request, pk=None):
# """
# 复杂查询
# """
# serializer = MaterialBatchQuerySerializer(data=request.data)
# serializer.is_valid(raise_exception=True)
# queryset = self.queryset.filter()
# return Response()
@action(methods=['post'], detail=False, perms_map={'post':'*'}, serializer_class=MaterialBatchQuerySerializer)
def query(self, request, pk=None):
"""
复杂查询
"""
data = request.data
serializer = MaterialBatchQuerySerializer(data=data)
serializer.is_valid(raise_exception=True)
queryset = self.queryset.filter(warehouse__id=data['warehouse'], material__id__in=data['materials'])
return Response(MaterialBatchSerializer(instance=queryset, many=True).data)
class FIFODetailViewSet(ListModelMixin, GenericViewSet):
"""

View File

@ -148,6 +148,16 @@ class SubProductionPlanViewSet(CreateUpdateModelAMixin, ListModelMixin, UpdateMo
return Response()
raise APIException('计划状态有误')
@action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=serializers.Serializer)
def pick_need_(self, request, pk=None):
"""
领料需求清单
"""
obj = self.get_object()
instance = SubProductionProgress.objects.filter(subproduction_plan=obj, type=1)
serializer = SubProductionProgressSerializer(instance=instance, many=True)
return Response(serializer.data)
@action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=PickNeedSerializer)
def pick_need(self, request, pk=None):
"""