From 38d6b95999f3ab2a3e451cd68b0e31cc3e9ffdd0 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 22 Feb 2022 16:38:21 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E8=A3=85=E7=AE=B1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/sam/views_sale.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hb_server/apps/sam/views_sale.py b/hb_server/apps/sam/views_sale.py index dad03e2..8db2b1e 100644 --- a/hb_server/apps/sam/views_sale.py +++ b/hb_server/apps/sam/views_sale.py @@ -161,7 +161,7 @@ class SaleProductViewSet(ListModelMixin, DestroyModelMixin, CreateModelMixin, Ge return Response() - @action(methods=['get', 'post'], detail=True, perms_map={'post':'sale_pack'}, serializer_class=serializers.Serializer) + @action(methods=['get', 'post'], detail=True, perms_map={'post':'sale_pack'}, serializer_class=SaleProductPackSerializer) @transaction.atomic def pack(self, request, pk=None): """ From a13f1cc95099e95cfc5249f3076b67bde42ba145 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 23 Feb 2022 08:49:25 +0800 Subject: [PATCH 2/8] =?UTF-8?q?testrecord=20detail=20=E5=A2=9E=E5=8A=A0cre?= =?UTF-8?q?ate=5Fby=20update=5Fby=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/qm/serializers.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hb_server/apps/qm/serializers.py b/hb_server/apps/qm/serializers.py index 28a8829..93d5a76 100644 --- a/hb_server/apps/qm/serializers.py +++ b/hb_server/apps/qm/serializers.py @@ -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__' From cf78837fb24297a2e358df122e4b210760d99086 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 23 Feb 2022 09:11:18 +0800 Subject: [PATCH 3/8] pack get bug --- hb_server/apps/sam/views_sale.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/hb_server/apps/sam/views_sale.py b/hb_server/apps/sam/views_sale.py index 8db2b1e..dfcbe33 100644 --- a/hb_server/apps/sam/views_sale.py +++ b/hb_server/apps/sam/views_sale.py @@ -160,6 +160,12 @@ class SaleProductViewSet(ListModelMixin, DestroyModelMixin, CreateModelMixin, Ge sale.save() return Response() + 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'}, serializer_class=SaleProductPackSerializer) @transaction.atomic @@ -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, From 164a6f43e5357433cf04dd1bf47add8ea82ddb74 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 23 Feb 2022 09:19:58 +0800 Subject: [PATCH 4/8] pack get bug --- hb_server/apps/sam/serializers_sale.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hb_server/apps/sam/serializers_sale.py b/hb_server/apps/sam/serializers_sale.py index 1dda868..04434fc 100644 --- a/hb_server/apps/sam/serializers_sale.py +++ b/hb_server/apps/sam/serializers_sale.py @@ -76,7 +76,8 @@ class SPackItemSerializer(serializers.ModelSerializer): class SaleProductPackDetailSerializer(serializers.ModelSerializer): detail = serializers.SerializerMethodField() class Meta: - model = ['packnum', 'detail'] + model = SaleProduct + fields = ['packnum', 'detail'] def get_detail(self, obj): return SPackItemSerializer(instance=SalePack.objects.filter(sale_product=obj) From dd77d842d9b57110340dcd5723725c39183ce91f Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 23 Feb 2022 09:36:44 +0800 Subject: [PATCH 5/8] =?UTF-8?q?pack=20get=20=E8=BF=94=E5=9B=9E=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/mtm/serializers.py | 2 +- hb_server/apps/sam/serializers_sale.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hb_server/apps/mtm/serializers.py b/hb_server/apps/mtm/serializers.py index b3e3b71..942ae3b 100644 --- a/hb_server/apps/mtm/serializers.py +++ b/hb_server/apps/mtm/serializers.py @@ -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) diff --git a/hb_server/apps/sam/serializers_sale.py b/hb_server/apps/sam/serializers_sale.py index 04434fc..a3606b5 100644 --- a/hb_server/apps/sam/serializers_sale.py +++ b/hb_server/apps/sam/serializers_sale.py @@ -77,7 +77,7 @@ class SaleProductPackDetailSerializer(serializers.ModelSerializer): detail = serializers.SerializerMethodField() class Meta: model = SaleProduct - fields = ['packnum', 'detail'] + fields = ['packnum', 'detail', 'remark'] def get_detail(self, obj): return SPackItemSerializer(instance=SalePack.objects.filter(sale_product=obj) @@ -91,4 +91,4 @@ class SaleProductPackSerializer(serializers.ModelSerializer): detail = SPackItemCreateSerializer(many=True) class Meta: model = SaleProduct - fields = ['packnum', 'detail'] + fields = ['packnum', 'detail', 'remark'] From 3f68f51bc6009b68937006708b31646a644de76d Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 23 Feb 2022 10:31:06 +0800 Subject: [PATCH 6/8] sam pack bug --- hb_server/apps/sam/serializers_sale.py | 2 +- hb_server/apps/sam/views_sale.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/hb_server/apps/sam/serializers_sale.py b/hb_server/apps/sam/serializers_sale.py index a3606b5..3b3d484 100644 --- a/hb_server/apps/sam/serializers_sale.py +++ b/hb_server/apps/sam/serializers_sale.py @@ -84,7 +84,7 @@ class SaleProductPackDetailSerializer(serializers.ModelSerializer): , 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): diff --git a/hb_server/apps/sam/views_sale.py b/hb_server/apps/sam/views_sale.py index dfcbe33..f64aefe 100644 --- a/hb_server/apps/sam/views_sale.py +++ b/hb_server/apps/sam/views_sale.py @@ -188,6 +188,7 @@ class SaleProductViewSet(ListModelMixin, DestroyModelMixin, CreateModelMixin, Ge serializer.is_valid(raise_exception=True) vdata = serializer.validated_data obj.packnum = vdata['packnum'] + obj.remark = vdata['remark'] for i in vdata['detail']: pi = i['id'] pi.count = i['count'] From 3d01995012ac5194b44315fdb8361b1840683827 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 23 Feb 2022 10:35:39 +0800 Subject: [PATCH 7/8] =?UTF-8?q?sam=20pack=20remark=20=E5=8F=AF=E4=B8=BA?= =?UTF-8?q?=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/sam/views_sale.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hb_server/apps/sam/views_sale.py b/hb_server/apps/sam/views_sale.py index f64aefe..5b2c95c 100644 --- a/hb_server/apps/sam/views_sale.py +++ b/hb_server/apps/sam/views_sale.py @@ -188,7 +188,7 @@ class SaleProductViewSet(ListModelMixin, DestroyModelMixin, CreateModelMixin, Ge serializer.is_valid(raise_exception=True) vdata = serializer.validated_data obj.packnum = vdata['packnum'] - obj.remark = vdata['remark'] + obj.remark = vdata.get('remark', '') for i in vdata['detail']: pi = i['id'] pi.count = i['count'] From 588102a41177ed72b2d060ea1320936e9dd8a9db Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 23 Feb 2022 10:48:14 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E4=B8=8D=E8=A3=85=E7=AE=B1=E5=A4=87?= =?UTF-8?q?=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/sam/serializers_sale.py | 4 ++++ hb_server/apps/sam/views_sale.py | 23 +++++++++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/hb_server/apps/sam/serializers_sale.py b/hb_server/apps/sam/serializers_sale.py index 3b3d484..615deea 100644 --- a/hb_server/apps/sam/serializers_sale.py +++ b/hb_server/apps/sam/serializers_sale.py @@ -92,3 +92,7 @@ class SaleProductPackSerializer(serializers.ModelSerializer): class Meta: model = SaleProduct fields = ['packnum', 'detail', 'remark'] + + +class SRemarkItemCreateSerializer(serializers.Serializer): + remark = serializers.CharField() diff --git a/hb_server/apps/sam/views_sale.py b/hb_server/apps/sam/views_sale.py index 5b2c95c..7c52345 100644 --- a/hb_server/apps/sam/views_sale.py +++ b/hb_server/apps/sam/views_sale.py @@ -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,7 +159,7 @@ class SaleProductViewSet(ListModelMixin, DestroyModelMixin, CreateModelMixin, Ge sale.count = SaleProduct.objects.filter(sale=obj.sale).count() sale.save() return Response() - + def create(self, request, *args, **kwargs): obj = self.get_object() sale = obj.sale @@ -167,7 +167,7 @@ class SaleProductViewSet(ListModelMixin, DestroyModelMixin, CreateModelMixin, Ge raise exceptions.APIException('该销售记录已审核,不可添加产品') return super().create(request, *args, **kwargs) - @action(methods=['get', 'post'], detail=True, perms_map={'post':'sale_pack'}, serializer_class=SaleProductPackSerializer) + @action(methods=['get', 'post'], detail=True, perms_map={'post':'sale_pack', 'get':'*'}, serializer_class=SaleProductPackSerializer) @transaction.atomic def pack(self, request, pk=None): """ @@ -193,4 +193,19 @@ class SaleProductViewSet(ListModelMixin, DestroyModelMixin, CreateModelMixin, Ge pi = i['id'] pi.count = i['count'] pi.save() - return Response() \ No newline at end of file + 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() \ No newline at end of file