diff --git a/core/apps/finance/serializers/cash_transaction.py b/core/apps/finance/serializers/cash_transaction.py index dff085f..8f2b20d 100644 --- a/core/apps/finance/serializers/cash_transaction.py +++ b/core/apps/finance/serializers/cash_transaction.py @@ -40,12 +40,33 @@ class CashTransactionListSerializer(serializers.ModelSerializer): class CashTransactionUpdateSerializer(serializers.ModelSerializer): + project_ids = serializers.ListField(child=serializers.UUIDField(required=False), required=False) + class Meta: model = CashTransaction fields = [ - 'name', 'payment_type', 'employees', 'status', 'folder', + 'name', 'payment_type', 'employees', 'status', 'folder', 'project_ids' ] + def update(self, instance, validated_data): + instance.name = validated_data.get('name', instance.name) + instance.payment_type = validated_data.get('payment_type', instance.payment_type) + instance.status = validated_data.get('status', instance.status) + instance.folder = validated_data.get('folder', instance.folder) # `folter` o‘rniga `folder` + + employees = validated_data.get('employees', None) + if employees is not None: + instance.employees.set(employees) + + project_ids = validated_data.pop('project_ids', []) + if project_ids: + projects = Project.objects.filter(id__in=project_ids) + instance.projects.set(projects) + + instance.save() + return instance + + class CashTransactionCreateSerializer(serializers.Serializer): payment_type_ids = serializers.ListSerializer(child=serializers.UUIDField(), write_only=True) diff --git a/core/apps/wherehouse/serializers/wherehouse.py b/core/apps/wherehouse/serializers/wherehouse.py index 55c3e06..d4a7d83 100644 --- a/core/apps/wherehouse/serializers/wherehouse.py +++ b/core/apps/wherehouse/serializers/wherehouse.py @@ -14,6 +14,7 @@ class ProjectSerializer(serializers.ModelSerializer): fields = [ 'id', 'name', 'start_date', 'end_date', 'status' ] + ref_name = 'WareHouseProjectSerializer' class WhereHouseListSerializer(serializers.ModelSerializer): @@ -63,10 +64,12 @@ class WhereHouseCreateSerializer(serializers.Serializer): class WhereHouseUpdateSerializer(serializers.ModelSerializer): + project_ids = serializers.ListField(child=serializers.UUIDField(required=False), required=False) + class Meta: model = WhereHouse fields = [ - 'name', 'address', 'users' + 'name', 'address', 'users', 'project_ids' ] def update(self, instance, validated_data): @@ -77,5 +80,11 @@ class WhereHouseUpdateSerializer(serializers.ModelSerializer): if users is not None: instance.users.clear() instance.users.set(users) + + project_ids = validated_data.pop('project_ids', []) + if project_ids: + projects = Project.objects.filter(id__in=project_ids) + instance.projects.set(projects) + instance.save() return instance