From 439566b4e5b0015dd3d1a57c15a295681c99018d Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 7 Dec 2021 10:24:37 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=80=E5=94=AE=E5=AE=A1=E6=A0=B8bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hb_server/apps/inm/signals.py | 11 ++++++----- hb_server/apps/sam/views.py | 11 +++++++---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/hb_server/apps/inm/signals.py b/hb_server/apps/inm/signals.py index 79d5a19..e659c0c 100644 --- a/hb_server/apps/inm/signals.py +++ b/hb_server/apps/inm/signals.py @@ -36,7 +36,7 @@ def update_inm(instance:FIFO, type:int=1): ips2.append(IProduct(**ip)) IProduct.objects.bulk_create(ips2) - elif instance.type in [FIFO.FIFO_TYPE_DO_OUT]: # 生产领料 + elif instance.type in [FIFO.FIFO_TYPE_DO_OUT, FIFO.FIFO_TYPE_SALE_OUT]: # 生产领料 销售出库 # 更新相关表 for i in FIFOItem.objects.filter(fifo=instance): material = i.material @@ -49,8 +49,9 @@ def update_inm(instance:FIFO, type:int=1): o2.save() material.count = material.count - i.count material.save() - - # 删除IProduct - numbers = FIFOItemProduct.objects.filter(fifoitem=i).values_list('number', flat=True) - IProduct.objects.filter(number__in=numbers).delete() + + # 删除IProduct + if instance.type == FIFO.FIFO_TYPE_DO_OUT: + numbers = FIFOItemProduct.objects.filter(fifoitem=i).values_list('number', flat=True) + IProduct.objects.filter(number__in=numbers).delete() diff --git a/hb_server/apps/sam/views.py b/hb_server/apps/sam/views.py index e4902a8..1f7b0b3 100644 --- a/hb_server/apps/sam/views.py +++ b/hb_server/apps/sam/views.py @@ -2,7 +2,8 @@ from django.db import transaction from django.db.models.aggregates import Count from rest_framework import exceptions, serializers from rest_framework.mixins import CreateModelMixin, DestroyModelMixin, ListModelMixin, RetrieveModelMixin -from apps.inm.models import FIFO, FIFOItem, FIFOItemProduct, IProduct +from apps.mtm.models import Material +from apps.inm.models import FIFO, FIFOItem, FIFOItemProduct, IProduct, WareHouse from apps.inm.signals import update_inm 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 @@ -142,16 +143,18 @@ class SaleViewSet(CreateUpdateCustomMixin, ListModelMixin, RetrieveModelMixin, C ips = IProduct.objects.filter(sale_iproduct__sale=obj) items = ips.values('warehouse', 'material', 'batch').annotate(total=Count('id')) for i in items: + warehouse = WareHouse.objects.get(id=i['warehouse']) + material = Material.objects.get(id=i['material']) fifoitem = FIFOItem() fifoitem.is_tested = True fifoitem.is_testok = True - fifoitem.warehouse = i['warehouse'] - fifoitem.material = i['material'] + fifoitem.warehouse = warehouse + fifoitem.material = material fifoitem.count = i['total'] fifoitem.batch = i['batch'] fifoitem.fifo = fifo fifoitem.save() - items_p = ips.filter(warehouse=i['warehouse'], batch=i['batch']) + items_p = ips.filter(warehouse=warehouse, batch=i['batch']) ips = [] for i in items_p: # 创建入库明细半成品