fix
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
# Generated by Django 5.2.4 on 2025-08-19 17:19
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders', '0006_offer_price_type'),
|
||||
('projects', '0016_estimatework_employee_estimatework_end_date_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='order',
|
||||
name='project_folder',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='order', to='projects.projectfolder'),
|
||||
),
|
||||
]
|
||||
@@ -22,7 +22,7 @@ class Order(BaseModel):
|
||||
Unity, on_delete=models.CASCADE, related_name='orders'
|
||||
)
|
||||
project_folder = models.ForeignKey(
|
||||
ProjectFolder, on_delete=models.CASCADE, related_name='order', null=True
|
||||
ProjectFolder, on_delete=models.SET_NULL, related_name='order', null=True, blank=True
|
||||
)
|
||||
project = models.ForeignKey(
|
||||
Project, on_delete=models.SET_NULL, related_name='orders', null=True, blank=True
|
||||
|
||||
@@ -22,14 +22,13 @@ class OrderCreateSerializer(serializers.Serializer):
|
||||
quantity = serializers.IntegerField()
|
||||
wherehouse_id = serializers.UUIDField()
|
||||
project_id = serializers.UUIDField(required=False)
|
||||
project_folder_id = serializers.UUIDField()
|
||||
project_folder_id = serializers.UUIDField(required=False)
|
||||
|
||||
def validate(self, data):
|
||||
try:
|
||||
product = Product.objects.get(id=data['product_id'])
|
||||
unity = Unity.objects.get(id=data['unity_id'])
|
||||
wherehouse = WhereHouse.objects.get(id=data['wherehouse_id'])
|
||||
project_folder = ProjectFolder.objects.get(id=data['project_folder_id'])
|
||||
if data.get('project_id'):
|
||||
Project.objects.get(
|
||||
id=data['project_id']
|
||||
@@ -40,34 +39,24 @@ class OrderCreateSerializer(serializers.Serializer):
|
||||
raise serializers.ValidationError("Unity not found")
|
||||
except WhereHouse.DoesNotExist:
|
||||
raise serializers.ValidationError("Where House not found")
|
||||
except ProjectFolder.DoesNotExist:
|
||||
raise serializers.ValidationError("Project Folder not found")
|
||||
try:
|
||||
if data.get('project_id'):
|
||||
data['project'] = Project.objects.get(id=data['project_id'])
|
||||
except Project.DoesNotExist:
|
||||
raise serializers.ValidationError("Project not found")
|
||||
|
||||
if data.get('project_folder_id'):
|
||||
try:
|
||||
project_folder = ProjectFolder.objects.get(id=data['project_folder_id'])
|
||||
|
||||
except ProjectFolder.DoesNotExist:
|
||||
raise serializers.ValidationError("Project Folder not found")
|
||||
data['project_folder'] = project_folder
|
||||
|
||||
data['product'] = product
|
||||
data['unity'] = unity
|
||||
data['wherehouse'] = wherehouse
|
||||
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
|
||||
|
||||
|
||||
class MultipleOrderCreateSerializer(serializers.Serializer):
|
||||
resources = OrderCreateSerializer(many=True)
|
||||
@@ -84,7 +73,7 @@ class MultipleOrderCreateSerializer(serializers.Serializer):
|
||||
product=resource['product'],
|
||||
unity=resource['unity'],
|
||||
wherehouse=resource['wherehouse'],
|
||||
project_folder=resource['project_folder'],
|
||||
project_folder=resource.get('project_folder'),
|
||||
project=resource.get('project'),
|
||||
quantity=resource['quantity'],
|
||||
date=common_date,
|
||||
|
||||
Reference in New Issue
Block a user