Merge branch 'develop' of https://e.coding.net/ctcdevteam/hberp/hberp into develop
This commit is contained in:
commit
ae75669c9e
|
@ -44,7 +44,7 @@ class PackItemUpdateSerializer(serializers.ModelSerializer):
|
|||
class MaterialSimpleSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Material
|
||||
fields = ['id', 'name', 'number', 'unit','specification', 'type']
|
||||
fields = ['id', 'name', 'number', 'unit','specification', 'type', 'count', 'count_safe']
|
||||
|
||||
class PackItemDetailSerializer(serializers.ModelSerializer):
|
||||
material_ = MaterialSimpleSerializer(source='material', read_only=True)
|
||||
|
|
|
@ -97,6 +97,8 @@ class TestRecordDetailSerializer(serializers.ModelSerializer):
|
|||
# record_data = TestRecordItemSerializer(source='item_test_record', read_only=True, many=True)
|
||||
record_data = serializers.SerializerMethodField()
|
||||
origin_test_ = TestRecordDetailBaseSerializer(source='origin_test', read_only=True)
|
||||
create_by_ = UserSimpleSerializer(source='create_by', read_only=True)
|
||||
update_by_ = UserSimpleSerializer(source='update_by', read_only=True)
|
||||
class Meta:
|
||||
model = TestRecord
|
||||
fields = '__all__'
|
||||
|
|
|
@ -76,18 +76,23 @@ class SPackItemSerializer(serializers.ModelSerializer):
|
|||
class SaleProductPackDetailSerializer(serializers.ModelSerializer):
|
||||
detail = serializers.SerializerMethodField()
|
||||
class Meta:
|
||||
model = ['packnum', 'detail']
|
||||
model = SaleProduct
|
||||
fields = ['packnum', 'detail', 'remark']
|
||||
|
||||
def get_detail(self, obj):
|
||||
return SPackItemSerializer(instance=SalePack.objects.filter(sale_product=obj)
|
||||
, many=True).data
|
||||
|
||||
class SPackItemCreateSerializer(serializers.Serializer):
|
||||
id = serializers.PrimaryKeyRelatedField(queryset=PackItem.objects.all())
|
||||
id = serializers.PrimaryKeyRelatedField(queryset=SalePack.objects.all())
|
||||
count = serializers.IntegerField()
|
||||
|
||||
class SaleProductPackSerializer(serializers.ModelSerializer):
|
||||
detail = SPackItemCreateSerializer(many=True)
|
||||
class Meta:
|
||||
model = SaleProduct
|
||||
fields = ['packnum', 'detail']
|
||||
fields = ['packnum', 'detail', 'remark']
|
||||
|
||||
|
||||
class SRemarkItemCreateSerializer(serializers.Serializer):
|
||||
remark = serializers.CharField()
|
||||
|
|
|
@ -6,7 +6,7 @@ from apps.inm.models import FIFO, FIFOItem, FIFOItemProduct, IProduct, WareHouse
|
|||
from apps.inm.services import InmService
|
||||
from apps.mtm.models import Material, PackItem
|
||||
from apps.sam.models import Sale, SalePack, SaleProduct
|
||||
from apps.sam.serializers_sale import SaleCreateSerializer, SaleListSerializer, SaleProductCreateSerializer, SaleProductListSerializer, SaleProductPackDetailSerializer, SaleProductPackSerializer
|
||||
from apps.sam.serializers_sale import SRemarkItemCreateSerializer, SaleCreateSerializer, SaleListSerializer, SaleProductCreateSerializer, SaleProductListSerializer, SaleProductPackDetailSerializer, SaleProductPackSerializer
|
||||
from rest_framework import exceptions
|
||||
from django.db import transaction
|
||||
from rest_framework.decorators import action
|
||||
|
@ -159,9 +159,15 @@ class SaleProductViewSet(ListModelMixin, DestroyModelMixin, CreateModelMixin, Ge
|
|||
sale.count = SaleProduct.objects.filter(sale=obj.sale).count()
|
||||
sale.save()
|
||||
return Response()
|
||||
|
||||
|
||||
@action(methods=['get', 'post'], detail=True, perms_map={'post':'sale_pack'}, serializer_class=serializers.Serializer)
|
||||
def create(self, request, *args, **kwargs):
|
||||
obj = self.get_object()
|
||||
sale = obj.sale
|
||||
if sale.is_audited:
|
||||
raise exceptions.APIException('该销售记录已审核,不可添加产品')
|
||||
return super().create(request, *args, **kwargs)
|
||||
|
||||
@action(methods=['get', 'post'], detail=True, perms_map={'post':'sale_pack', 'get':'*'}, serializer_class=SaleProductPackSerializer)
|
||||
@transaction.atomic
|
||||
def pack(self, request, pk=None):
|
||||
"""
|
||||
|
@ -169,7 +175,7 @@ class SaleProductViewSet(ListModelMixin, DestroyModelMixin, CreateModelMixin, Ge
|
|||
"""
|
||||
obj = self.get_object()
|
||||
if request.method == 'GET':
|
||||
for i in PackItem.objects.filter(product=obj.product.material, is_deleted=False):
|
||||
for i in PackItem.objects.filter(product=obj.iproduct.material, is_deleted=False):
|
||||
SalePack.objects.get_or_create(sale_product=obj, packitem=i,
|
||||
defaults={
|
||||
"sale_product":obj,
|
||||
|
@ -182,8 +188,24 @@ class SaleProductViewSet(ListModelMixin, DestroyModelMixin, CreateModelMixin, Ge
|
|||
serializer.is_valid(raise_exception=True)
|
||||
vdata = serializer.validated_data
|
||||
obj.packnum = vdata['packnum']
|
||||
obj.remark = vdata.get('remark', '')
|
||||
for i in vdata['detail']:
|
||||
pi = i['id']
|
||||
pi.count = i['count']
|
||||
pi.save()
|
||||
return Response()
|
||||
obj.save()
|
||||
return Response()
|
||||
|
||||
@action(methods=['post'], detail=True, perms_map={'post':'sale_pack'}, serializer_class=SRemarkItemCreateSerializer)
|
||||
@transaction.atomic
|
||||
def remark(self, request, pk=None):
|
||||
"""
|
||||
不装箱备注
|
||||
"""
|
||||
obj = self.get_object()
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
vdata = serializer.validated_data
|
||||
obj.remark = vdata['remark']
|
||||
obj.save()
|
||||
return Response()
|
Loading…
Reference in New Issue