feat: 装箱操作
This commit is contained in:
parent
5514e8b561
commit
04d4c560ef
|
@ -416,4 +416,9 @@ class PackSerializer(CustomModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Pack
|
model = Pack
|
||||||
fields = "__all__"
|
fields = "__all__"
|
||||||
read_only_fields = EXCLUDE_FIELDS_BASE
|
read_only_fields = EXCLUDE_FIELDS_BASE
|
||||||
|
|
||||||
|
|
||||||
|
class PackMioSerializer(CustomModelSerializer):
|
||||||
|
mioitems = serializers.ListField(child=serializers.CharField(), label="明细ID")
|
||||||
|
pack = serializers.CharField(label="包装箱ID")
|
|
@ -9,12 +9,12 @@ from django.utils import timezone
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from django.db.models import Sum
|
from django.db.models import Sum
|
||||||
|
|
||||||
from apps.inm.models import WareHouse, MaterialBatch, MIO, MIOItem, MIOItemw
|
from apps.inm.models import WareHouse, MaterialBatch, MIO, MIOItem, MIOItemw, Pack
|
||||||
from apps.inm.serializers import (
|
from apps.inm.serializers import (
|
||||||
MaterialBatchSerializer, WareHourseSerializer, MIOListSerializer, MIOItemSerializer, MioItemAnaSerializer,
|
MaterialBatchSerializer, WareHourseSerializer, MIOListSerializer, MIOItemSerializer, MioItemAnaSerializer,
|
||||||
MIODoSerializer, MIOSaleSerializer, MIOPurSerializer, MIOOtherSerializer, MIOItemCreateSerializer,
|
MIODoSerializer, MIOSaleSerializer, MIOPurSerializer, MIOOtherSerializer, MIOItemCreateSerializer,
|
||||||
MaterialBatchDetailSerializer, MIODetailSerializer, MIOItemTestSerializer, MIOItemPurInTestSerializer,
|
MaterialBatchDetailSerializer, MIODetailSerializer, MIOItemTestSerializer, MIOItemPurInTestSerializer,
|
||||||
MIOItemwSerializer, MioItemDetailSerializer)
|
MIOItemwSerializer, MioItemDetailSerializer, PackSerializer, PackMioSerializer)
|
||||||
from apps.inm.serializers2 import MIOItemwCreateUpdateSerializer
|
from apps.inm.serializers2 import MIOItemwCreateUpdateSerializer
|
||||||
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
||||||
from apps.inm.services import InmService
|
from apps.inm.services import InmService
|
||||||
|
@ -236,6 +236,41 @@ class MIOViewSet(CustomModelViewSet):
|
||||||
return Response()
|
return Response()
|
||||||
|
|
||||||
|
|
||||||
|
class PackViewSet(CustomListModelMixin, BulkCreateModelMixin, BulkDestroyModelMixin, CustomGenericViewSet):
|
||||||
|
"""
|
||||||
|
list: 装箱记录
|
||||||
|
|
||||||
|
装箱记录
|
||||||
|
"""
|
||||||
|
perms_map = {'get': '*', 'post': '*', 'delete': '*'}
|
||||||
|
queryset = Pack.objects.all()
|
||||||
|
serializer_class = PackSerializer
|
||||||
|
filterset_fields = ["mio"]
|
||||||
|
ordering = ["mio", "index"]
|
||||||
|
|
||||||
|
@action(methods=['post'], detail=False, perms_map={'post': 'mio.update'}, serializer_class=PackMioSerializer)
|
||||||
|
@transaction.atomic
|
||||||
|
def pack_mioitem(self, request, *args, **kwargs):
|
||||||
|
"""装箱
|
||||||
|
|
||||||
|
装箱
|
||||||
|
"""
|
||||||
|
vdata = PackMioSerializer(data=request.data)
|
||||||
|
packId = vdata["pack"]
|
||||||
|
pack:Pack = Pack.objects.get(id=packId)
|
||||||
|
mioitems = vdata["mioitems"]
|
||||||
|
if not mioitems:
|
||||||
|
raise ParseError('未选择明细')
|
||||||
|
for id in mioitems:
|
||||||
|
mioitem = MIOItem.objects.get(id=id)
|
||||||
|
if mioitem.mio != pack.mio:
|
||||||
|
raise ParseError('存在明细不属于该装箱记录')
|
||||||
|
mioitem.pack = pack
|
||||||
|
mioitem.save(update_fields=['pack', 'update_time'])
|
||||||
|
return Response()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class MIOItemViewSet(CustomListModelMixin, BulkCreateModelMixin, BulkDestroyModelMixin, CustomGenericViewSet):
|
class MIOItemViewSet(CustomListModelMixin, BulkCreateModelMixin, BulkDestroyModelMixin, CustomGenericViewSet):
|
||||||
"""
|
"""
|
||||||
list: 出入库明细
|
list: 出入库明细
|
||||||
|
|
Loading…
Reference in New Issue