This commit is contained in:
behruz-dev
2025-08-19 14:29:42 +05:00
parent 784d2ed337
commit 4e8c59668a

View File

@@ -23,7 +23,6 @@ class OrderCreateSerializer(serializers.Serializer):
wherehouse_id = serializers.UUIDField() wherehouse_id = serializers.UUIDField()
project_id = serializers.UUIDField(required=False) project_id = serializers.UUIDField(required=False)
project_folder_id = serializers.UUIDField() project_folder_id = serializers.UUIDField()
date = serializers.DateField()
def validate(self, data): def validate(self, data):
try: try:
@@ -55,24 +54,45 @@ class OrderCreateSerializer(serializers.Serializer):
data['project_folder'] = project_folder data['project_folder'] = project_folder
return data return data
def create(self, validated_data): # def create(self, validated_data):
with transaction.atomic(): # with transaction.atomic():
order = Order.objects.create( # order = Order.objects.create(
product=validated_data.get('product'), # product=validated_data.get('product'),
unity=validated_data.get('unity'), # unity=validated_data.get('unity'),
wherehouse=validated_data.get('wherehouse'), # wherehouse=validated_data.get('wherehouse'),
project_folder=validated_data.get('project_folder'), # project_folder=validated_data.get('project_folder'),
project=validated_data.get('project'), # project=validated_data.get('project'),
quantity=validated_data.get('quantity'), # quantity=validated_data.get('quantity'),
date=validated_data.get('date'), # date=validated_data.get('date'),
employee=self.context.get('user'), # employee=self.context.get('user'),
) # )
return order # return order
class MultipleOrderCreateSerializer(serializers.Serializer): class MultipleOrderCreateSerializer(serializers.Serializer):
resources = serializers.ListSerializer(child=OrderCreateSerializer()) 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): class OrderListSerializer(serializers.ModelSerializer):
product = ProductListSerializer() product = ProductListSerializer()