From 5fcde1ec976e378c0595ce2890b7857ed4fc1203 Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Tue, 18 Nov 2025 17:01:39 +0500 Subject: [PATCH] fix --- core/apps/orders/views/party.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/core/apps/orders/views/party.py b/core/apps/orders/views/party.py index 5c668d2..0012da8 100644 --- a/core/apps/orders/views/party.py +++ b/core/apps/orders/views/party.py @@ -239,7 +239,9 @@ 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_course = Decimal( + UsdCourse.objects.first().value if UsdCourse.objects.exists() else 12000 + ) usd = queryset.filter(currency='usd', is_deleted=False).aggregate( total_price_usd=Sum('party_amount__calculated_amount'), @@ -264,18 +266,24 @@ 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) + def safe(x): + return Decimal(x) if x is not None else Decimal(0) - uzs_total = safe(uzs.get('total_price_uzs')) - total_balance = uzs_total + usd_total_in_uzs + total = { + "total_price": safe(uzs["total_price_uzs"]) + (safe(usd["total_price_usd"]) * usd_course), + "cost_amount": safe(uzs["cost_amount_uzs"]) + (safe(usd["cost_amount_usd"]) * usd_course), + "calculated_amount": safe(uzs["calculated_amount_uzs"]) + (safe(usd["calculated_amount_usd"]) * usd_course), + "paid_amount": safe(uzs["paid_amount_uzs"]) + (safe(usd["paid_amount_usd"]) * usd_course), + "payment_amount": safe(uzs["payment_amount_uzs"]) + (safe(usd["payment_amount_usd"]) * usd_course), + "overdue_payments": safe(uzs["overdue_payments_uzs"]) + (safe(usd["overdue_payments_usd"]) * usd_course), + } res = { - 'usd': usd, - 'uzs': uzs, - 'total_balance': total_balance + "usd": usd, + "uzs": uzs, + "total_balance": total } return Response(res, status=200)