diff --git a/core/apps/orders/views/party.py b/core/apps/orders/views/party.py index 490ccad..5c668d2 100644 --- a/core/apps/orders/views/party.py +++ b/core/apps/orders/views/party.py @@ -21,6 +21,8 @@ from core.apps.orders.tasks.order import create_inventory # finance app from core.apps.finance.models import Expence from core.apps.finance.serializers.expence import ExpenceListSerializer +# sharede +from core.apps.shared.models import UsdCourse class PartyCreateApiView(generics.GenericAPIView): @@ -237,6 +239,8 @@ class PartyStatisticsApiView(generics.GenericAPIView): queryset = self.filter_queryset(self.queryset) today = now().date() + usd_course = UsdCourse.objects.first().value if UsdCourse.objects.exists() else Decimal('12000') + usd = queryset.filter(currency='usd', is_deleted=False).aggregate( total_price_usd=Sum('party_amount__calculated_amount'), cost_amount_usd=Sum('party_amount__cost_amount'), @@ -260,9 +264,18 @@ class PartyStatisticsApiView(generics.GenericAPIView): filter=Q(payment_date__lt=today) ) ) + def safe(x): return x if x is not None else Decimal(0) + + usd_total_in_uzs = safe(usd.get('total_price_usd')) * Decimal(usd_course) + + uzs_total = safe(uzs.get('total_price_uzs')) + + total_balance = uzs_total + usd_total_in_uzs + res = { 'usd': usd, - 'uzs': uzs + 'uzs': uzs, + 'total_balance': total_balance } return Response(res, status=200)