diff --git a/core/apps/counterparty/models/conterparty.py b/core/apps/counterparty/models/conterparty.py index f4590da..2b24087 100644 --- a/core/apps/counterparty/models/conterparty.py +++ b/core/apps/counterparty/models/conterparty.py @@ -111,36 +111,22 @@ class CounterpartyBalance(BaseModel): Party = apps.get_model('orders', 'Party') 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='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( + + 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 + currency='usd' + ).distinct() + paid_amount = parties.aggregate(total_price=models.Sum('party_amount__paid_amount'))['total_price'] or 0 + total_amount = parties.aggregate(total_price=models.Sum('party_amount__total_price'))['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 - return (party_total_amount + income) - expence + party_amount = total_amount - paid_amount + return (party_amount + income) - expence @property @@ -149,37 +135,22 @@ 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_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) parties = Party.objects.filter( orders__counterparty=self.counterparty, is_deleted=False, currency='uzs' ).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 + total_amount = parties.aggregate(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 - return ((total_amount - paid_amount) + income) - expence + party_amount = total_amount - paid_amount + print(party_amount) + return (party_amount + income) - expence def __str__(self): return f"{self.counterparty.name}"