1
0
forked from erp-dev/erp
This commit is contained in:
2026-07-02 18:26:09 +08:00
parent 5170700234
commit 4538e51ad5
14 changed files with 471 additions and 26 deletions

View File

@@ -147,7 +147,7 @@ class DeviceSerializer(serializers.ModelSerializer):
class ProductionAssignmentWriteSerializer(serializers.Serializer):
device = serializers.IntegerField(required=False, min_value=1)
device = serializers.IntegerField(required=False, allow_null=True, min_value=1)
content_type = serializers.IntegerField(required=False, min_value=1)
object_id = serializers.IntegerField(required=False, min_value=1)
assigner = serializers.IntegerField(required=False, min_value=1)
@@ -160,13 +160,14 @@ class ProductionAssignmentWriteSerializer(serializers.Serializer):
self.is_create = kwargs.pop("is_create", False)
super().__init__(*args, **kwargs)
if self.is_create:
self.fields["device"].required = True
self.fields["content_type"].required = True
self.fields["object_id"].required = True
self.fields["assigner"].required = True
self.fields["production_quantity"].required = True
def validate_device(self, value):
if value is None:
return None
employee = self.context["employee"]
try:
return Device.objects.get(id=value, merchant=employee.merchant)
@@ -197,7 +198,7 @@ class ProductionAssignmentWriteSerializer(serializers.Serializer):
class ProductionAssignmentSerializer(serializers.ModelSerializer):
device_name = serializers.CharField(source='device.name', read_only=True)
device_name = serializers.SerializerMethodField(read_only=True)
assigner = serializers.SerializerMethodField()
assignee = serializers.SerializerMethodField()
created_by = serializers.SerializerMethodField()
@@ -226,6 +227,11 @@ class ProductionAssignmentSerializer(serializers.ModelSerializer):
]
read_only_fields = fields
def get_device_name(self, obj):
if obj.device is None:
return None
return obj.device.name
def get_assigner(self, obj):
return _employee_payload(obj.assigner)