wherehouse: add sender field to stock movemend model
This commit is contained in:
@@ -9,6 +9,7 @@ from core.apps.wherehouse.models import (
|
||||
StockMovmendProduct,
|
||||
WhereHouse,
|
||||
)
|
||||
from core.apps.accounts.models import User
|
||||
|
||||
|
||||
class StockMovmendProductSerializer(serializers.Serializer):
|
||||
@@ -31,6 +32,7 @@ class StockMovmendCreateSerializer(serializers.Serializer):
|
||||
wherehouse_from_id = serializers.UUIDField()
|
||||
date = serializers.DateField(required=False)
|
||||
comment = serializers.CharField(required=False)
|
||||
recipient_id = serializers.UUIDField(required=False)
|
||||
|
||||
def validate(self, data):
|
||||
if data.get("project_folder_id"):
|
||||
@@ -53,6 +55,11 @@ class StockMovmendCreateSerializer(serializers.Serializer):
|
||||
).first()
|
||||
if not wherehouse_from:
|
||||
raise serializers.ValidationError("WhereHouse from not found")
|
||||
if data.get('recipient'):
|
||||
recipient = User.objects.filter(id=data.get('recipient_id')).first()
|
||||
if not recipient:
|
||||
raise serializers.ValidationError("Recipient not found")
|
||||
data['recipient'] = recipient
|
||||
data["wherehouse_to"] = wherehouse_to
|
||||
data["wherehouse_from"] = wherehouse_from
|
||||
return data
|
||||
@@ -67,7 +74,8 @@ class StockMovmendCreateSerializer(serializers.Serializer):
|
||||
comment=validated_data.get("comment"),
|
||||
wherehouse_to=validated_data.get("wherehouse_to"),
|
||||
wherehouse_from=validated_data.get("wherehouse_from"),
|
||||
recipient=self.context.get("user"),
|
||||
sender=self.context.get("user"),
|
||||
recipient=validated_data.get('recipient'),
|
||||
)
|
||||
movmend_products = []
|
||||
for product in products:
|
||||
@@ -97,7 +105,7 @@ class StockMovemendProductListSerializer(serializers.ModelSerializer):
|
||||
"type": obj.inventory.product.type,
|
||||
"name": obj.inventory.product.name,
|
||||
}
|
||||
if obj.inventory.product
|
||||
if obj.inventory and obj.inventory.product
|
||||
else None
|
||||
)
|
||||
|
||||
@@ -107,7 +115,7 @@ class StockMovemendProductListSerializer(serializers.ModelSerializer):
|
||||
"id": obj.inventory.unity.id,
|
||||
"value": obj.inventory.unity.value,
|
||||
}
|
||||
if obj.inventory.unity
|
||||
if obj.inventory and obj.inventory.unity
|
||||
else None
|
||||
)
|
||||
|
||||
@@ -119,6 +127,7 @@ class StockMovemendListSerializer(serializers.ModelSerializer):
|
||||
method_name="get_wherehouse_from"
|
||||
)
|
||||
recipient = serializers.SerializerMethodField(method_name="get_recipient")
|
||||
sender = serializers.SerializerMethodField(method_name="get_sender")
|
||||
project_folder = serializers.SerializerMethodField(method_name="get_project_folder")
|
||||
project = serializers.SerializerMethodField(method_name="get_project")
|
||||
|
||||
@@ -130,6 +139,7 @@ class StockMovemendListSerializer(serializers.ModelSerializer):
|
||||
"wherehouse_to",
|
||||
"wherehouse_from",
|
||||
"recipient",
|
||||
"sender",
|
||||
"project_folder",
|
||||
"project",
|
||||
"movemend_type",
|
||||
@@ -168,6 +178,17 @@ class StockMovemendListSerializer(serializers.ModelSerializer):
|
||||
else None
|
||||
)
|
||||
|
||||
|
||||
def get_sender(self, obj):
|
||||
return (
|
||||
{
|
||||
"id": obj.sender.id,
|
||||
"full_name": obj.sender.full_name,
|
||||
}
|
||||
if obj.sender
|
||||
else None
|
||||
)
|
||||
|
||||
def get_project_folder(self, obj):
|
||||
return (
|
||||
{"id": obj.project_folder.id, "name": obj.project_folder.name}
|
||||
|
||||
Reference in New Issue
Block a user