organization limit for quota - get org childs
This commit is contained in:
@@ -30,6 +30,12 @@ class ProductSerializer(serializers.ModelSerializer):
|
||||
return representation
|
||||
|
||||
|
||||
class ProductStatsSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = product_models.ProductStats
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class AttributeSerializer(serializers.ModelSerializer):
|
||||
""" serialize attributes of reference product """
|
||||
|
||||
@@ -61,7 +67,6 @@ class AttributeValueSerializer(serializers.ModelSerializer):
|
||||
fields = '__all__'
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
|
||||
instance.quota = validated_data.get('quota', instance.quota)
|
||||
instance.attribute = validated_data.get('attribute', instance.attribute)
|
||||
instance.value = validated_data.get('value', instance.value)
|
||||
|
||||
@@ -5,7 +5,8 @@ from django.db import models
|
||||
from apps.product.exceptions import (
|
||||
QuotaWeightException,
|
||||
QuotaClosedException,
|
||||
QuotaExpiredTimeException
|
||||
QuotaExpiredTimeException,
|
||||
QuotaLimitByOrganizationException
|
||||
)
|
||||
|
||||
|
||||
@@ -21,12 +22,15 @@ class QuotaDistributionSerializer(serializers.ModelSerializer):
|
||||
|
||||
def validate(self, data):
|
||||
"""
|
||||
to validate if distribution weight
|
||||
@ to validate if distribution weight
|
||||
more than quota weight raise exception
|
||||
or if quota is closed raise exception
|
||||
@ if quota is closed raise exception
|
||||
@ if quota has organization limit, before distribution
|
||||
check assigned organization
|
||||
"""
|
||||
|
||||
quota = data['quota']
|
||||
assigned_organization = data['assigned_organization']
|
||||
amount = data['weight']
|
||||
instance_id = self.instance.id if self.instance else None
|
||||
|
||||
@@ -38,6 +42,9 @@ class QuotaDistributionSerializer(serializers.ModelSerializer):
|
||||
if quota.is_closed:
|
||||
raise QuotaClosedException()
|
||||
|
||||
if assigned_organization not in quota.limit_by_organizations.all():
|
||||
raise QuotaLimitByOrganizationException()
|
||||
|
||||
# total quota distributions weight
|
||||
total = product_models.QuotaDistribution.objects.filter(
|
||||
quota=quota
|
||||
|
||||
@@ -59,6 +59,8 @@ class QuotaSerializer(serializers.ModelSerializer):
|
||||
instance.group = validated_data.get('group', instance.group)
|
||||
instance.has_distribution_limit = validated_data.get('has_distribution_limit', instance.has_distribution_limit)
|
||||
instance.distribution_mode = validated_data.get('distribution_mode', instance.distribution_mode)
|
||||
instance.has_organization_limit = validated_data.get('has_organization_limit', instance.has_organization_limit)
|
||||
instance.limit_by_organizations = validated_data.get('limit_by_organizations', instance.limit_by_organizations)
|
||||
instance.base_price_factory = validated_data.get('base_price_factory', instance.base_price_factory)
|
||||
instance.base_price_cooperative = validated_data.get('base_price_cooperative', instance.base_price_cooperative)
|
||||
instance.final_price = validated_data.get('final_price', instance.final_price)
|
||||
@@ -74,6 +76,12 @@ class QuotaSerializer(serializers.ModelSerializer):
|
||||
return instance
|
||||
|
||||
|
||||
class QuotaStatsSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = product_models.QuotaStats
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class QuotaIncentiveAssignmentSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = product_models.QuotaIncentiveAssignment
|
||||
|
||||
Reference in New Issue
Block a user