safeproduct 创建删除接口完善

This commit is contained in:
caoqianming 2021-12-06 13:39:40 +08:00
parent 332c4b7729
commit 0f65b1ff8a
2 changed files with 26 additions and 4 deletions

View File

@ -109,7 +109,10 @@ class SaleProductCreateSerializer(serializers.ModelSerializer):
def create(self, validated_data): def create(self, validated_data):
validated_data['number'] = validated_data['iproduct'].number validated_data['number'] = validated_data['iproduct'].number
return super().create(validated_data) instance = SaleProduct.objects.create(**validated_data)
instance.sale.count = SaleProduct.objects.filter(sale=instance.sale).count()
instance.sale.save()
return instance
class SaleProductMtestSerializer(serializers.ModelSerializer): class SaleProductMtestSerializer(serializers.ModelSerializer):
class Meta: class Meta:

View File

@ -1,6 +1,6 @@
from rest_framework import exceptions from rest_framework import exceptions, serializers
from rest_framework.mixins import CreateModelMixin, DestroyModelMixin, ListModelMixin, RetrieveModelMixin from rest_framework.mixins import CreateModelMixin, DestroyModelMixin, ListModelMixin, RetrieveModelMixin
from apps.sam.serializers import ContractCreateUpdateSerializer, ContractSerializer, CustomerCreateUpdateSerializer, CustomerSerializer, OrderCreateUpdateSerializer, OrderSerializer, SaleCreateSerializer, SaleListSerializer, SaleProductCreateSerializer, SaleProductListSerializer from apps.sam.serializers import ContractCreateUpdateSerializer, ContractSerializer, CustomerCreateUpdateSerializer, CustomerSerializer, OrderCreateUpdateSerializer, OrderSerializer, SaleCreateSerializer, SaleListSerializer, SaleProductCreateSerializer, SaleProductListSerializer, SaleProductMtestSerializer
from apps.sam.models import Contract, Customer, Order, Sale, SaleProduct from apps.sam.models import Contract, Customer, Order, Sale, SaleProduct
from rest_framework.viewsets import GenericViewSet, ModelViewSet from rest_framework.viewsets import GenericViewSet, ModelViewSet
from apps.system.mixins import CreateUpdateCustomMixin from apps.system.mixins import CreateUpdateCustomMixin
@ -90,6 +90,18 @@ class SaleViewSet(CreateUpdateCustomMixin, ListModelMixin, RetrieveModelMixin, C
elif self.action == 'retrieve': elif self.action == 'retrieve':
return SaleListSerializer return SaleListSerializer
return super().get_serializer_class() return super().get_serializer_class()
@action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=serializers.Serializer)
def audit(self, request, pk=None):
"""
审核
"""
obj = self.get_object()
if obj.is_audited:
raise exceptions.APIException('已审核通过')
# 创建出库记录
# 更新库存
return Response()
class SaleProductViewSet(ListModelMixin, DestroyModelMixin, CreateModelMixin, GenericViewSet): class SaleProductViewSet(ListModelMixin, DestroyModelMixin, CreateModelMixin, GenericViewSet):
""" """
@ -107,8 +119,15 @@ class SaleProductViewSet(ListModelMixin, DestroyModelMixin, CreateModelMixin, Ge
if self.action == 'create': if self.action == 'create':
return SaleProductCreateSerializer return SaleProductCreateSerializer
return super().get_serializer_class() return super().get_serializer_class()
def destroy(self, request, *args, **kwargs):
obj = self.get_object()
obj.sale.count = SaleProduct.objects.filter(sale=obj.sale).count()
obj.sale.save()
obj.delete()
return Response()
@action(methods=['post'], detail=True, perms_map={'post':'*'}) @action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=SaleProductMtestSerializer)
def mtest(self, request, pk=None): def mtest(self, request, pk=None):
""" """
军检 军检