From 4ac2698ba5e3615d1cbb647bb08be412d0eeb8b9 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 28 Oct 2021 15:40:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=85=A5=E5=BA=93=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/inm/serializers.py | 15 ++++++++++++++- hb_server/apps/inm/urls.py | 3 ++- hb_server/apps/inm/views.py | 21 ++++++++++++++++++--- 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/hb_server/apps/inm/serializers.py b/hb_server/apps/inm/serializers.py index 3ed6c01..958e620 100644 --- a/hb_server/apps/inm/serializers.py +++ b/hb_server/apps/inm/serializers.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from apps.inm.models import FIFO, FIFODetail, IProduct, WareHouse,Inventory +from apps.inm.models import FIFO, FIFODetail, IProduct, MaterialBatch, WareHouse,Inventory from apps.system.serializers import UserSimpleSerializer from apps.mtm.serializers import MaterialSimpleSerializer @@ -28,6 +28,19 @@ class InventorySerializer(serializers. ModelSerializer): model = Inventory fields = '__all__' +class MaterialBatchSerializer(serializers. ModelSerializer): + material_= MaterialSimpleSerializer(source='material', read_only=True) + warehouse_ = WareHouseSimpleSerializer(source='warehouse', read_only=True) + class Meta: + model = MaterialBatch + fields = '__all__' + +class FIFOListSerializer(serializers.ModelSerializer): + warehouse_ = WareHouseSimpleSerializer(source='warehouse', read_only=True) + operator_ = UserSimpleSerializer(source='operator', read_only=True) + class Meta: + model=FIFO + fields = '__all__' class IProductInPurSerializer(serializers.ModelSerializer): class Meta: diff --git a/hb_server/apps/inm/urls.py b/hb_server/apps/inm/urls.py index 851ccc8..e963137 100644 --- a/hb_server/apps/inm/urls.py +++ b/hb_server/apps/inm/urls.py @@ -1,12 +1,13 @@ from django.db.models import base from rest_framework import urlpatterns -from apps.inm.views import FIFOViewSet, WarehouseViewSet,InventoryViewSet +from apps.inm.views import FIFOViewSet, MaterialBatchViewSet, WarehouseViewSet,InventoryViewSet from django.urls import path, include from rest_framework.routers import DefaultRouter router = DefaultRouter() router.register('warehouse', WarehouseViewSet, basename='warehouse') router.register('inventory', InventoryViewSet, basename='inventory') +router.register('materialbatch', MaterialBatchViewSet, basename='materialbatch') router.register('fifo', FIFOViewSet, basename='fifo') urlpatterns = [ path('', include(router.urls)), diff --git a/hb_server/apps/inm/views.py b/hb_server/apps/inm/views.py index f3bc619..feb9263 100644 --- a/hb_server/apps/inm/views.py +++ b/hb_server/apps/inm/views.py @@ -3,8 +3,8 @@ 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.inm.models import FIFO, MaterialBatch, WareHouse,Inventory +from apps.inm.serializers import FIFOInPurSerializer, FIFOListSerializer, MaterialBatchSerializer, WareHouseSerializer, WareHouseCreateUpdateSerializer,InventorySerializer from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin from rest_framework.decorators import action from rest_framework.response import Response @@ -39,11 +39,26 @@ class InventoryViewSet(ListModelMixin, GenericViewSet): ordering_fields = ['create_time'] ordering = ['-create_time'] -class FIFOViewSet(GenericViewSet): +class MaterialBatchViewSet(ListModelMixin, GenericViewSet): + perms_map = {'*': '*'} + queryset = MaterialBatch.objects.select_related('material', 'warehouse').all() + serializer_class = MaterialBatchSerializer + filterset_fields = [] + search_fields = ['material', 'warehouse'] + ordering_fields = ['create_time'] + ordering = ['-create_time'] + +class FIFOViewSet(ListModelMixin, GenericViewSet): """ 出入库记录 """ perms_map = {'*': '*'} + queryset = FIFO.objects.all() + + def get_serializer_class(self): + if self.action == 'list': + return FIFOListSerializer + @action(methods=['post'], detail=False, perms_map={'post':'*'}, serializer_class=FIFOInPurSerializer) def in_pur(self, request, pk=None): """