fix bug of rancher inventory entries - list of all cities

This commit is contained in:
2025-09-08 16:36:42 +03:30
parent 54acba058f
commit 5307a27d20
4 changed files with 26 additions and 12 deletions

View File

@@ -18,12 +18,12 @@ class CityViewSet(ModelViewSet, SoftDeleteMixin): # noqa
def list(self, request, *args, **kwargs):
""" return list of cities by province """
if 'province' in self.request.query_params.keys():
query = self.queryset.filter(province_id=int(request.GET['province']))
else:
query = self.queryset
serializer = self.serializer_class(
self.queryset.filter(
province_id=int(request.GET['province'])
), many=True
)
serializer = self.serializer_class(query, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)

View File

@@ -1,14 +1,18 @@
from apps.pos_device.models import Device
from apps.product.models import Quota
from apps.product.models import Quota, QuotaDistribution
from apps.pos_device.models import Device, StakeHolderShareAmount
import typing
def pos_organizations_sharing_information(device: Device, quota: Quota = None) -> typing.Any:
def pos_organizations_sharing_information(
device: Device,
quota: Quota = None,
distribution: QuotaDistribution = None
) -> typing.Any:
"""
pos sharing organizations' information,
device have multiple organizations (sub_accounts) for sharing money
"""
stake_holders = device.stake_holders.select_related('broker', 'broker_amount', 'organization')
stake_holders = device.stake_holders.select_related('broker', 'organization')
sharing_information_list = [{
"organization_name": item.organization.name,
@@ -20,7 +24,9 @@ def pos_organizations_sharing_information(device: Device, quota: Quota = None) -
"broker": item.broker.name if item.broker else None,
"amount": quota.broker_values.filter(
broker=item.broker
).first().value if quota and item.broker else item.share_amount
).first().value if quota and item.broker else item.holders_share_amount.filter(
quota_distribution=distribution
).first().share_amount
} for item in stake_holders]
return sharing_information_list

View File

@@ -98,7 +98,11 @@ class QuotaDistributionSerializer(serializers.ModelSerializer):
representation['pricing'] = { # noqa
'pricing_attributes': quota_attribute_value(instance.quota),
'sharing': pos_organizations_sharing_information(self.context['device'], instance.quota),
'sharing': pos_organizations_sharing_information(
self.context['device'],
instance.quota,
distribution=instance
),
'base_prices': [
{
"text": "قیمت درب کارخانه", # noqa

View File

@@ -63,7 +63,11 @@ class InventoryEntrySerializer(serializers.ModelSerializer):
representation['pricing'] = {
'pricing_attributes': quota_attribute_value(instance.distribution.quota),
'sharing': pos_organizations_sharing_information(self.context['device']),
'sharing': pos_organizations_sharing_information(
self.context['device'],
instance.distribution.quota,
instance.distribution
),
'base_prices': [
{
"text": "قیمت درب کارخانه", # noqa