from django.shortcuts import render from rest_framework import serializers from rest_framework.mixins import ListModelMixin from rest_framework.viewsets import GenericViewSet, ModelViewSet from apps.inm.models import WareHouse,Inventory from apps.inm.serializers import FIFOInPurSerializer, WareHouseSerializer, WareHouseCreateUpdateSerializer,InventorySerializer,InventoryCreateUpdateSerializer from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin from rest_framework.decorators import action # Create your views here. class WarehouseViewSet(CreateUpdateModelAMixin, ModelViewSet): """ 仓库-增删改查 """ perms_map = {'*': '*'} queryset = WareHouse.objects.select_related('create_by').all() serializer_class = WareHouseSerializer search_fields = ['name', 'number', 'place'] filterset_fields = [] ordering_fields = ['create_time'] ordering = ['-create_time'] def get_serializer_class(self): if self.action in ['create', 'update']: return WareHouseCreateUpdateSerializer return WareHouseSerializer class InventoryViewSet(ListModelMixin, GenericViewSet): """ 仓库物料表 """ perms_map = {'*': '*'} queryset = Inventory.objects.select_related('create_by').all() serializer_class = InventorySerializer filterset_fields = [] search_fields = ['material', 'warehouse'] ordering_fields = ['create_time'] ordering = ['-create_time'] class FIFOViewSet(GenericViewSet): """ 出入库记录 """ perms_map = {'*': '*'} @action(methods=['post'], detail=False, perms_map={'post':'*'}, serializer_class=FIFOInPurSerializer) def in_pur(self, request, pk=None): """ 采购入库 """ serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) serializer.save()