wherehouse: fix bug

This commit is contained in:
behruz-dev
2025-10-30 16:21:26 +05:00
parent af8d212b3e
commit ec6d3dd172
3 changed files with 29 additions and 7 deletions

View File

@@ -0,0 +1,20 @@
# Generated by Django 5.2.4 on 2025-10-30 16:19
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('projects', '0016_estimatework_employee_estimatework_end_date_and_more'),
('wherehouse', '0017_wherehouse_users'),
]
operations = [
migrations.AlterField(
model_name='invalidproduct',
name='project_folder',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='invalid_products', to='projects.projectfolder'),
),
]

View File

@@ -26,7 +26,8 @@ class InvalidProduct(BaseModel):
# relationship # relationship
inventory = models.ForeignKey(Inventory, on_delete=models.CASCADE, related_name='invalid_products') inventory = models.ForeignKey(Inventory, on_delete=models.CASCADE, related_name='invalid_products')
project_folder = models.ForeignKey( project_folder = models.ForeignKey(
ProjectFolder, on_delete=models.CASCADE, related_name='invalid_products' ProjectFolder, on_delete=models.CASCADE, related_name='invalid_products',
null=True, blank=True
) )
witnesses = models.ManyToManyField(User, related_name='invalid_products') witnesses = models.ManyToManyField(User, related_name='invalid_products')
work = models.ForeignKey( work = models.ForeignKey(

View File

@@ -10,7 +10,7 @@ from core.apps.accounts.serializers.user import UserListSerializer
class InvalidProductCreateSerializer(serializers.Serializer): class InvalidProductCreateSerializer(serializers.Serializer):
inventory_id = serializers.UUIDField() inventory_id = serializers.UUIDField()
project_folder_id = serializers.UUIDField() project_folder_id = serializers.UUIDField(required=False)
witnesses_ids = serializers.ListField(child=serializers.UUIDField()) witnesses_ids = serializers.ListField(child=serializers.UUIDField())
work_id = serializers.UUIDField(required=False) work_id = serializers.UUIDField(required=False)
amount = serializers.IntegerField() amount = serializers.IntegerField()
@@ -24,16 +24,17 @@ class InvalidProductCreateSerializer(serializers.Serializer):
inventory = Inventory.objects.filter(id=attrs['inventory_id']).first() inventory = Inventory.objects.filter(id=attrs['inventory_id']).first()
if not inventory: if not inventory:
raise serializers.ValidationError("Inventory not found") raise serializers.ValidationError("Inventory not found")
project_folder = ProjectFolder.objects.filter(id=attrs['project_folder_id']).first() if attrs.get('project_folder_id'):
if not project_folder: project_folder = ProjectFolder.objects.filter(id=attrs['project_folder_id']).first()
raise serializers.ValidationError("Project Folder not found") if not project_folder:
raise serializers.ValidationError("Project Folder not found")
attrs['project_folder'] = project_folder
if attrs.get('work_id'): if attrs.get('work_id'):
work = EstimateWork.objects.filter(id=attrs['work_id']).first() work = EstimateWork.objects.filter(id=attrs['work_id']).first()
if not work: if not work:
raise serializers.ValidationError("Work not found") raise serializers.ValidationError("Work not found")
attrs['work'] = work attrs['work'] = work
attrs['inventory'] = inventory attrs['inventory'] = inventory
attrs['project_folder'] = project_folder
return super().validate(attrs) return super().validate(attrs)
def create(self, validated_data): def create(self, validated_data):
@@ -75,7 +76,7 @@ class InvliadProductListSerializer(serializers.ModelSerializer):
return { return {
'id': obj.project_folder.id, 'id': obj.project_folder.id,
'name': obj.project_folder.name, 'name': obj.project_folder.name,
} } if obj.project_folder else None
def get_wherehouse(self, obj): def get_wherehouse(self, obj):
return { return {