From 4e8c59668a2a8e3815371c32d433f92401d1861b Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Tue, 19 Aug 2025 14:29:42 +0500 Subject: [PATCH] add --- core/apps/orders/serializers/order.py | 48 +++++++++++++++++++-------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/core/apps/orders/serializers/order.py b/core/apps/orders/serializers/order.py index 3265619..552ef9e 100644 --- a/core/apps/orders/serializers/order.py +++ b/core/apps/orders/serializers/order.py @@ -23,7 +23,6 @@ class OrderCreateSerializer(serializers.Serializer): wherehouse_id = serializers.UUIDField() project_id = serializers.UUIDField(required=False) project_folder_id = serializers.UUIDField() - date = serializers.DateField() def validate(self, data): try: @@ -55,24 +54,45 @@ class OrderCreateSerializer(serializers.Serializer): data['project_folder'] = project_folder return data - def create(self, validated_data): - with transaction.atomic(): - order = Order.objects.create( - product=validated_data.get('product'), - unity=validated_data.get('unity'), - wherehouse=validated_data.get('wherehouse'), - project_folder=validated_data.get('project_folder'), - project=validated_data.get('project'), - quantity=validated_data.get('quantity'), - date=validated_data.get('date'), - employee=self.context.get('user'), - ) - return order + # def create(self, validated_data): + # with transaction.atomic(): + # order = Order.objects.create( + # product=validated_data.get('product'), + # unity=validated_data.get('unity'), + # wherehouse=validated_data.get('wherehouse'), + # project_folder=validated_data.get('project_folder'), + # project=validated_data.get('project'), + # quantity=validated_data.get('quantity'), + # date=validated_data.get('date'), + # employee=self.context.get('user'), + # ) + # return order class MultipleOrderCreateSerializer(serializers.Serializer): resources = serializers.ListSerializer(child=OrderCreateSerializer()) + date = serializers.DateField() + def create(self, validated_data): + with transaction.atomic(): + resources = validated_data.pop('resources') + common_date = validated_data.get('date') + orders = [] + + for resource in resources: + orders.append(Order( + product=resource['product'], + unity=resource['unity'], + wherehouse=resource['wherehouse'], + project_folder=resource['project_folder'], + project=resource.get('project'), + quantity=resource['quantity'], + date=common_date, + employee=self.context.get('user'), + )) + + created_orders = Order.objects.bulk_create(orders) + return created_orders class OrderListSerializer(serializers.ModelSerializer): product = ProductListSerializer()