54 lines
1.9 KiB
Python
54 lines
1.9 KiB
Python
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
|
|
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('material', 'warehouse').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(create_by=request.user)
|
|
|