增加事务操作

This commit is contained in:
caoqianming 2021-11-10 09:00:35 +08:00
parent 537fda2e86
commit 5d5a1e7604
5 changed files with 88 additions and 78 deletions

View File

@ -4,6 +4,7 @@ from apps.inm.models import FIFO, FIFOItem, IProduct, MaterialBatch, WareHouse,I
from apps.system.serializers import UserSimpleSerializer
from apps.mtm.serializers import MaterialSimpleSerializer
from django.db import transaction
class WareHouseSerializer(serializers. ModelSerializer):
create_by_=UserSimpleSerializer('create_by', read_only=True)
@ -91,6 +92,7 @@ class FIFOInPurSerializer(serializers.ModelSerializer):
pass
# 创建采购入库
with transaction.atomic():
validated_data['type'] = FIFO.FIFO_TYPE_PUR_IN
obj = FIFO(**validated_data)
obj.save()

View File

@ -11,6 +11,7 @@ from apps.inm.signals import update_inm
from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin
from rest_framework.decorators import action
from rest_framework.response import Response
from django.db import transaction
# Create your views here.
class WarehouseViewSet(CreateUpdateModelAMixin, ModelViewSet):
@ -118,6 +119,7 @@ class FIFOViewSet(ListModelMixin, GenericViewSet):
raise APIException('未检验通过, 不可审核')
if obj.is_audited:
raise APIException('该入库记录已审核通过')
with transaction.atomic():
obj.is_audited = True
obj.save()
update_inm(obj) # 更新库存

View File

@ -6,6 +6,7 @@ from apps.system.mixins import CreateUpdateModelAMixin
from rest_framework.exceptions import APIException
from rest_framework.response import Response
from rest_framework import status
from django.db import transaction
# Create your views here.
class StandardViewSet(CreateUpdateModelAMixin, ModelViewSet):
"""
@ -66,7 +67,7 @@ class TestRecordViewSet(ModelViewSet):
record_data = vdata.pop('record_data')
if 'is_testok' not in vdata:
raise APIException('未填写检测结论')
with transaction.atomic():
obj = serializer.save(create_by = self.request.user)
tris = []
for m in record_data: # 保存记录详情

View File

@ -10,6 +10,7 @@ from django.utils import timezone
from django.utils.translation import gettext_lazy as _
from apps.system.serializers import UserSimpleSerializer
from apps.wpm.models import Operation, WMaterial, WProduct, OperationRecord, OperationRecordItem
from django.db import transaction
class PickDetailSerializer(serializers.Serializer):
material = serializers.PrimaryKeyRelatedField(queryset=Material.objects.all(), label="物料ID")
@ -36,6 +37,7 @@ class PickSerializer(serializers.Serializer):
except:
raise serializers.ValidationError('物料不存在')
# 创建出库记录
with transaction.atomic():
operator = self.context['request'].user
validated_data['create_by'] = operator
validated_data['operator'] = operator

View File

@ -16,6 +16,7 @@ from apps.wpm.models import WMaterial, WProduct, Operation, OperationMaterial, O
from apps.wpm.serializers import OperationDetailSerializer, OperationListSerializer, PickSerializer, OperationInitSerializer, OperationSubmitSerializer, WMaterialListSerializer, WProductListSerializer
from rest_framework.response import Response
from django.db import transaction
# Create your views here.
class WPlanViewSet(ListModelMixin, GenericViewSet):
"""
@ -131,6 +132,8 @@ class DoFormInit(CreateAPIView, GenericAPIView):
class DoFormSubmit(CreateAPIView, GenericAPIView):
perms_map={'*':'*'}
serializer_class = OperationSubmitSerializer
@transaction.atomic
def post(self, request, format=None):
"""
提交操作表单