销售记录删除bug

This commit is contained in:
caoqianming 2022-02-23 15:30:54 +08:00
parent fbebb176aa
commit 7d715146a2
2 changed files with 10 additions and 8 deletions

View File

@ -55,18 +55,19 @@ class InmService:
o1 = Inventory.objects.get(material=material, warehouse=warehouse)
temp_count = o1.count - i.count
if temp_count < 0:
raise ValidationError('库存不足,操作失败')
raise ValidationError('仓库库存不足,操作失败')
o1.count = temp_count
o1.save()
print(i.batch)
o2 = MaterialBatch.objects.get(material=material, warehouse=warehouse, batch=i.batch)
temp_count = o2.count - i.count
if temp_count < 0:
raise ValidationError('库存不足,操作失败')
raise ValidationError('批次库存不足,操作失败')
o2.count = temp_count
o2.save()
temp_count = material.count - i.count
if temp_count < 0:
raise ValidationError('库存不足,操作失败')
raise ValidationError('物料库存不足,操作失败')
material.count = temp_count
material.save()
@ -87,8 +88,8 @@ class InmService:
if saleps.exists():
raise ValidationError('存在未装箱的产品')
# 创建出库条目
ips = IProduct.objects.filter(sale_iproduct__sale=sale
).exclude(sale_iproduct__packnum__isnull=True)
ips = IProduct.objects.filter(sale_iproduct__sale=sale,
sale_iproduct__packnum__isnull=False)
ips.update(state=IProduct.SALED)
items = ips.values('warehouse', 'material', 'batch').annotate(total=Count('id'))
for i in items:
@ -119,7 +120,7 @@ class InmService:
# 更新动态产品表情况
from apps.wpm.models import WProduct
WProduct.objects.filter(iproduct_wproduct__sale_iproduct__sale=sale).update(
WProduct.objects.filter(id__in=ips.values_list('wproduct', flat=True)).update(
act_state=WProduct.WPR_ACT_STATE_SELLED)
# 变更销售记录实际发货数
@ -129,5 +130,5 @@ class InmService:
order = sale.order
if order:
order.delivered_count = IProduct.objects.filter(sale_iproduct__sale__order=order
).exclude(sale_iproduct__packnum__isnull=True).count()
, sale_iproduct__packnum__isnull=False).count()
order.save()

View File

@ -42,7 +42,8 @@ class SaleViewSet(CreateUpdateModelAMixin, ListModelMixin, RetrieveModelMixin, C
if obj.is_audited:
raise exceptions.APIException('该销售记录已审核,不可删除')
obj.delete()
IProduct.objects.filter(sale_iproduct__sale=obj).update()
IProduct.objects.filter(sale_iproduct__sale=obj).update(state=IProduct.SALE_OK)
return Response()
def create(self, request, *args, **kwargs):
data = request.data