This commit is contained in:
behruz-dev
2025-11-18 16:17:18 +05:00
parent 39610223a3
commit 6e0cd06e32

View File

@@ -21,6 +21,8 @@ from core.apps.orders.tasks.order import create_inventory
# finance app # finance app
from core.apps.finance.models import Expence from core.apps.finance.models import Expence
from core.apps.finance.serializers.expence import ExpenceListSerializer from core.apps.finance.serializers.expence import ExpenceListSerializer
# sharede
from core.apps.shared.models import UsdCourse
class PartyCreateApiView(generics.GenericAPIView): class PartyCreateApiView(generics.GenericAPIView):
@@ -237,6 +239,8 @@ class PartyStatisticsApiView(generics.GenericAPIView):
queryset = self.filter_queryset(self.queryset) queryset = self.filter_queryset(self.queryset)
today = now().date() 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( usd = queryset.filter(currency='usd', is_deleted=False).aggregate(
total_price_usd=Sum('party_amount__calculated_amount'), total_price_usd=Sum('party_amount__calculated_amount'),
cost_amount_usd=Sum('party_amount__cost_amount'), cost_amount_usd=Sum('party_amount__cost_amount'),
@@ -260,9 +264,18 @@ class PartyStatisticsApiView(generics.GenericAPIView):
filter=Q(payment_date__lt=today) 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 = { res = {
'usd': usd, 'usd': usd,
'uzs': uzs 'uzs': uzs,
'total_balance': total_balance
} }
return Response(res, status=200) return Response(res, status=200)