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) source='create_by.name', read_only=True)
update_by_name = serializers.CharField( update_by_name = serializers.CharField(
source='update_by.name', read_only=True) source='update_by.name', read_only=True)
material_in_ = MaterialSimpleSerializer(
source='material_in', read_only=True)
material_out_ = MaterialSimpleSerializer( material_out_ = MaterialSimpleSerializer(
source='material_out', read_only=True) source='material_out', read_only=True)
material_out_name = serializers.StringRelatedField( material_out_name = serializers.StringRelatedField(

View File

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

View File

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

View File

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