diff --git a/hb_server/apps/inm/serializers.py b/hb_server/apps/inm/serializers.py index 766a164..e04b115 100644 --- a/hb_server/apps/inm/serializers.py +++ b/hb_server/apps/inm/serializers.py @@ -51,7 +51,6 @@ class MaterialBatchSerializer(serializers.ModelSerializer): class IProductListSerializer(serializers.ModelSerializer): material_ = MaterialSimpleSerializer(source='material', read_only=True) warehouse_ = WareHouseSimpleSerializer(source='warehouse', read_only=True) - is_mtested = serializers.BooleanField(source='wproduct.is_mtested', read_only=True) is_mtestok = serializers.BooleanField(source='wproduct.is_mtestok', read_only=True) remark_mtest = serializers.CharField(source='wproduct.remark_mtest', read_only=True) diff --git a/hb_server/apps/sam/serializers.py b/hb_server/apps/sam/serializers.py index 154b1e7..a397c63 100644 --- a/hb_server/apps/sam/serializers.py +++ b/hb_server/apps/sam/serializers.py @@ -63,7 +63,7 @@ class OrderSimpleSerializer(serializers.ModelSerializer): customer_ = CustomerSimpleSerializer(source='customer', read_only=True) class Meta: model = Order - fields = '__all__' + fields = ['id', 'number', 'contract_', 'customer_', 'need_test'] class SaleCreateSerializer(serializers.ModelSerializer): iproducts = serializers.PrimaryKeyRelatedField(queryset=IProduct.objects.all(), many=True) diff --git a/hb_server/apps/sam/views.py b/hb_server/apps/sam/views.py index a239d8e..357706e 100644 --- a/hb_server/apps/sam/views.py +++ b/hb_server/apps/sam/views.py @@ -136,13 +136,6 @@ class SaleViewSet(CreateUpdateCustomMixin, ListModelMixin, RetrieveModelMixin, C fifo.inout_date = timezone.now() fifo.create_by = request.user fifo.save() - # 出库条目 暂时不校验是否军检 - # spds = SaleProduct.objects.filter(sale=obj) - # for i in spds: - # if i.is_mtested and i.is_mtestok: - # pass - # else: - # raise exceptions.APIException('存在未军检产品') # 创建出库条目 ips = IProduct.objects.filter(sale_iproduct__sale=obj) items = ips.values('warehouse', 'material', 'batch').annotate(total=Count('id')) diff --git a/hb_server/apps/wpm/models.py b/hb_server/apps/wpm/models.py index c52a061..9027301 100644 --- a/hb_server/apps/wpm/models.py +++ b/hb_server/apps/wpm/models.py @@ -120,7 +120,6 @@ class WProduct(CommonAModel): on_delete=models.SET_NULL, null=True, blank=True, related_name='wp_ticket') to_order = models.ForeignKey('sam.order', verbose_name='指派的订单', null=True, blank=True, on_delete = models.CASCADE) - is_mtested = models.BooleanField('是否军检', default=False) is_mtestok = models.BooleanField('是否军检合格', null=True, blank=True) remark_mtest = models.TextField('军检备注', null=True, blank=True) last_test_result = models.BooleanField('最后一次检验结果', null=True, blank=True) @@ -194,7 +193,6 @@ class WproductFlow(CommonAModel): ticket = models.ForeignKey('wf.ticket', verbose_name='当前工单', on_delete=models.SET_NULL, null=True, blank=True) to_order = models.ForeignKey('sam.order', verbose_name='指派的订单', null=True, blank=True, on_delete = models.CASCADE) - is_mtested = models.BooleanField('是否军检', default=False) is_mtestok = models.BooleanField('是否军检合格', null=True, blank=True) remark_mtest = models.TextField('军检备注', null=True, blank=True) last_test_result = models.BooleanField('最后一次检验结果', null=True, blank=True) diff --git a/hb_server/apps/wpm/serializers.py b/hb_server/apps/wpm/serializers.py index 6716fdb..9436243 100644 --- a/hb_server/apps/wpm/serializers.py +++ b/hb_server/apps/wpm/serializers.py @@ -157,7 +157,7 @@ class WProductListSerializer(serializers.ModelSerializer): warehouse_ = WareHouseSimpleSerializer(source='warehouse', read_only=True) children = serializers.SerializerMethodField() to_order_ = OrderSimpleSerializer(source='to_order', read_only=True) - order_ = OrderSimpleSerializer(source='subproduction_plan__production_plan__order', read_only=True) + order_ = serializers.SerializerMethodField() class Meta: model = WProduct fields = '__all__' @@ -167,6 +167,11 @@ class WProductListSerializer(serializers.ModelSerializer): if wps.exists(): return WProductBaseSerializer(instance=wps, many=True).data return [] + + def get_order_(self, obj): + order = Order.objects.select_related('contract', 'customer').filter( + plan_order__subplan_plan__wproduct_subplan=obj).first() + return OrderSimpleSerializer(instance=order).data class WProductCardBaseSerializer(serializers.ModelSerializer): """ @@ -225,6 +230,8 @@ class WProductDetailSerializer(serializers.ModelSerializer): subproduction_plan_ = SubproductionPlanSimpleSerializer(source='subproduction_plan', read_only=True) warehouse_ = WareHouseSimpleSerializer(source='warehouse', read_only=True) children = serializers.SerializerMethodField() + to_order_ = OrderSimpleSerializer(source='to_order', read_only=True) + order_ = OrderSimpleSerializer(source='subproduction_plan__production_plan__order', read_only=True) class Meta: model = WProduct fields = '__all__' @@ -232,7 +239,6 @@ class WProductDetailSerializer(serializers.ModelSerializer): def get_children(self, obj): wps = WProduct.objects.filter(child=obj) if wps.exists(): - print(wps) return WProductBaseSerializer(instance=wps, many=True).data return [] diff --git a/hb_server/apps/wpm/views.py b/hb_server/apps/wpm/views.py index f5be060..d1f9c5a 100644 --- a/hb_server/apps/wpm/views.py +++ b/hb_server/apps/wpm/views.py @@ -399,12 +399,11 @@ class WProductViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet): 军检 """ obj = self.get_object() - if obj.is_mtested: + if obj.is_mtestok is None: raise exceptions.APIException('已进行军检') if obj.material.type != Material.MA_TYPE_GOOD: raise exceptions.APIException('军检必须是成品') obj.remark_mtest = request.data.get('remark_mtest', None) - obj.is_mtested = True is_mtestok = request.data.get('is_mtestok') obj.is_mtestok = is_mtestok if is_mtestok: