This commit is contained in:
behruz-dev
2025-11-18 17:01:39 +05:00
parent d665abe5ec
commit 5fcde1ec97

View File

@@ -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)