wherehouse: fix bug
This commit is contained in:
@@ -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'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -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(
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user