fix - pos device agencies on new system with quota stat

This commit is contained in:
2025-12-03 15:03:24 +03:30
parent 82683d4d71
commit c2bb50d9f8
4 changed files with 57 additions and 17 deletions

View File

@@ -26,7 +26,7 @@ from apps.core.services.visibility_service import apply_visibility_filter_by_org
from apps.pos_device import models as pos_models
from apps.pos_device.web.api.v1.serilaizers import device as device_serializer
from apps.pos_device.web.api.v1.viewsets.client import POSClientViewSet
from apps.product.models import Broker
from apps.product.models import Broker, OrganizationQuotaStats
from apps.product.web.api.v1.viewsets.quota_distribution_api import QuotaDistributionViewSet
from common.helpers import generate_code
from common.helpers import get_organization_by_user
@@ -389,7 +389,11 @@ class StakeHoldersViewSet(SoftDeleteMixin, viewsets.ModelViewSet, DynamicSearchM
class StakeHolderShareAmountViewSet(viewsets.ModelViewSet, DynamicSearchMixin, SoftDeleteMixin):
queryset = pos_models.StakeHolderShareAmount.objects.select_related('quota_distribution', 'stakeholders')
queryset = pos_models.StakeHolderShareAmount.objects.select_related(
'quota_distribution',
'org_quota_stat',
'stakeholders'
)
serializer_class = device_serializer.StakeHolderShareAmountSerializer
@transaction.atomic
@@ -413,7 +417,14 @@ class StakeHolderShareAmountViewSet(viewsets.ModelViewSet, DynamicSearchMixin, S
view=QuotaDistributionViewSet(),
data=data['distribution']
)
data.update({'quota_distribution': distribution['id']})
# quota stat will create after distribution , we get that obj here
quota_stat = OrganizationQuotaStats.objects.get(
quota_id=data['distribution']['quota'],
organization_id=data['distribution']['assigned_organization']
)
data.update({'quota_distribution': distribution['id'], 'org_quota_stat': quota_stat.id})
serializer = self.serializer_class(data=data)
if serializer.is_valid(raise_exception=True):