From 035a294a643aa682f23a45d05e98320f1977f2eb Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Wed, 12 Nov 2025 14:33:42 +0500 Subject: [PATCH] fi --- core/apps/counterparty/models/conterparty.py | 78 ++++++++++---------- 1 file changed, 41 insertions(+), 37 deletions(-) diff --git a/core/apps/counterparty/models/conterparty.py b/core/apps/counterparty/models/conterparty.py index 1ba416b..f4590da 100644 --- a/core/apps/counterparty/models/conterparty.py +++ b/core/apps/counterparty/models/conterparty.py @@ -112,32 +112,35 @@ class CounterpartyBalance(BaseModel): Income = apps.get_model('finance', 'Income') Expence = apps.get_model('finance', 'Expence') - party_payment = Party.objects.filter( + # party_payment = Party.objects.filter( + # orders__counterparty=self.counterparty, + # is_deleted=False, + # currency='usd' + # ).aggregate( + # payment_amount=models.Sum('party_amount__payment_amount') + # )['payment_amount'] or 0 + + # party_overdue = Party.objects.filter( + # orders__counterparty=self.counterparty, + # is_deleted=False, + # currency='usd' + # ).aggregate( + # overdue_amount=models.Sum('party_amount__overdue_amount') + # )['overdue_amount'] or 0 + + # party_amount = Decimal(party_payment or 0) - Decimal(party_overdue or 0) + party_total_amount = Party.objects.filter( orders__counterparty=self.counterparty, is_deleted=False, - currency='usd' - ).aggregate( - payment_amount=models.Sum('party_amount__payment_amount') - )['payment_amount'] or 0 - - party_overdue = Party.objects.filter( - orders__counterparty=self.counterparty, - is_deleted=False, - currency='usd' - ).aggregate( - overdue_amount=models.Sum('party_amount__overdue_amount') - )['overdue_amount'] or 0 - - party_amount = Decimal(party_payment or 0) - Decimal(party_overdue or 0) - + currency='uzs' + ).distinct().aggregate(total_price=models.Sum('party_amount__paid_amount'))['total_price'] or 0 income = Income.objects.filter(currency='usd', counterparty=self.counterparty).aggregate( total_price=models.Sum("price") )['total_price'] or 0 expence = Expence.objects.filter(currency='usd', counterparty=self.counterparty).aggregate( total_price=models.Sum("price") )['total_price'] or 0 - print((party_amount + income) - expence) - return (party_amount + income) - expence + return (party_total_amount + income) - expence @property @@ -146,36 +149,37 @@ class CounterpartyBalance(BaseModel): Income = apps.get_model('finance', 'Income') Expence = apps.get_model('finance', 'Expence') - party_payment = Party.objects.filter( - orders__counterparty=self.counterparty, - is_deleted=False, - currency='uzs' - ).aggregate( - payment_amount=models.Sum('party_amount__payment_amount') - )['payment_amount'] or 0 + # party_payment = Party.objects.filter( + # orders__counterparty=self.counterparty, + # is_deleted=False, + # currency='uzs' + # ).aggregate( + # payment_amount=models.Sum('party_amount__payment_amount') + # )['payment_amount'] or 0 - party_overdue = Party.objects.filter( - orders__counterparty=self.counterparty, - is_deleted=False, - currency='uzs' - ).aggregate( - overdue_amount=models.Sum('party_amount__overdue_amount') - )['overdue_amount'] or 0 + # party_overdue = Party.objects.filter( + # orders__counterparty=self.counterparty, + # is_deleted=False, + # currency='uzs' + # ).aggregate( + # overdue_amount=models.Sum('party_amount__overdue_amount') + # )['overdue_amount'] or 0 - party_amount = Decimal(party_payment or 0) - Decimal(party_overdue or 0) - party_total_amount = Party.objects.filter( + # party_amount = Decimal(party_payment or 0) - Decimal(party_overdue or 0) + parties = Party.objects.filter( orders__counterparty=self.counterparty, is_deleted=False, currency='uzs' - ).distinct().aggregate(total_price=models.Sum('party_amount__paid_amount'))['total_price'] or 0 + ).distinct() + paid_amount = parties.aggregate(total_price=models.Sum('party_amount__paid_amount'))['total_price'] or 0 + total_amount = parties.aaggregate(total_price=models.Sum('party_amount__total_price'))['total_price'] or 0 income = Income.objects.filter(currency='uzs', counterparty=self.counterparty).aggregate( total_price=models.Sum("price") )['total_price'] or 0 expence = Expence.objects.filter(currency='uzs', counterparty=self.counterparty).aggregate( total_price=models.Sum("price") )['total_price'] or 0 - print((party_total_amount + income) - expence) - return (party_total_amount + income) - expence + return ((total_amount - paid_amount) + income) - expence def __str__(self): return f"{self.counterparty.name}"