fix: change_or_new该物料编号已存在不可使用

This commit is contained in:
caoqianming 2025-01-06 16:12:33 +08:00
parent 561fb94930
commit 9f56968385
4 changed files with 9 additions and 1 deletions

View File

@ -238,6 +238,8 @@ class MlogSerializer(CustomModelSerializer):
source='create_by.name', read_only=True)
update_by_name = serializers.CharField(
source='update_by.name', read_only=True)
material_in_ = MaterialSimpleSerializer(
source='material_in', read_only=True)
material_out_ = MaterialSimpleSerializer(
source='material_out', read_only=True)
material_out_name = serializers.StringRelatedField(

View File

@ -591,6 +591,8 @@ class MlogbwViewSet(CustomModelViewSet):
def perform_create(self, serializer):
ins:Mlogbw = serializer.save()
mlogb:Mlogb = ins.mlogb
if mlogb.mlog.submit_time is not None:
raise ParseError('日志已提交不可修改')
self.cal_mlogb_count(mlogb)
# 如果是输入且输出追踪到个,需同步创建
material_in:Material = mlogb.material_in
@ -605,6 +607,8 @@ class MlogbwViewSet(CustomModelViewSet):
@transaction.atomic
def perform_destroy(self, instance):
mlogb = instance.mlogb
if mlogb.mlog.submit_time is not None:
raise ParseError('日志已提交不可修改')
instance.delete()
self.cal_mlogb_count(mlogb)
# 如果是输入且输出追踪到个,需同步创建

View File

@ -30,6 +30,8 @@ class Wpr(BaseModel):
elif number:
try:
ins = cls.objects.get(number=number)
if ins.wm or ins.wm:
raise ParseError("该物料编号已存在不可使用")
except cls.DoesNotExist:
ins = cls(number=number)

View File

@ -16,7 +16,7 @@ class WprViewSet(CustomListModelMixin, CustomGenericViewSet):
prefetch_related_fields = ["defects"]
queryset = Wpr.objects.all()
serializer_class = WprSerializer
filter_fields = ["mb", "wm", "state", "material", "defects"]
filterset_fields = ["mb", "wm", "state", "material", "defects"]
ordering = ["-create_time"]
ordering_fields = ["number", "create_time", "update_time"]
search_fields = ["number", "material__name", "material__model", "material__specification"]