From defc84514847e44ed25798271aee452c9d3450a3 Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Mon, 3 Nov 2025 15:22:24 +0500 Subject: [PATCH] fix --- core/apps/counterparty/utils/counterparty.py | 27 ++++++++++++++------ core/apps/orders/models/__init__.py | 2 +- core/apps/orders/{ => models}/order_offer.py | 0 3 files changed, 20 insertions(+), 9 deletions(-) rename core/apps/orders/{ => models}/order_offer.py (100%) diff --git a/core/apps/counterparty/utils/counterparty.py b/core/apps/counterparty/utils/counterparty.py index e0ae810..104ec58 100644 --- a/core/apps/counterparty/utils/counterparty.py +++ b/core/apps/counterparty/utils/counterparty.py @@ -1,19 +1,18 @@ from django.db.models import Sum from core.apps.finance.models import Expence, Income +from core.apps.orders.models import Party def update_counterparty_balance(counterparty): if not counterparty: return - # EXPENCE -> DEBIT (faqat CONFIRMED status) expences = Expence.objects.filter( counterparty=counterparty, is_deleted=False, - status='CONFIRMED' # ✅ Status filteri qo'shildi + status='CONFIRMED' ) - # Valutasi bo'yicha qo'shish debit_usd = expences.filter(currency='usd').aggregate( total=Sum('price') )['total'] or 0 @@ -22,8 +21,23 @@ def update_counterparty_balance(counterparty): total=Sum('price') )['total'] or 0 + parties = Party.objects.filter( + orders__counterparty=counterparty, + is_deleted=False + ).distinct() + + party_payment_usd = parties.filter(currency='usd').aggregate( + total=Sum('party_amount__payment_amount') + )['total'] or 0 + + party_payment_uzs = parties.filter(currency='uzs').aggregate( + total=Sum('party_amount__payment_amount') + )['total'] or 0 + + debit_usd = debit_usd - party_payment_usd + debit_uzs = debit_uzs - party_payment_uzs + - # INCOME -> KREDIT incomes = Income.objects.filter( counterparty=counterparty, is_deleted=False @@ -38,12 +52,9 @@ def update_counterparty_balance(counterparty): )['total'] or 0 - # Total (faqat bir valutada qo'shish) total_debit = debit_usd + debit_uzs total_kredit = kredit_usd + kredit_uzs - - # Modelni yangilash counterparty.debit_usd = debit_usd counterparty.debit_uzs = debit_uzs counterparty.total_debit = total_debit @@ -53,4 +64,4 @@ def update_counterparty_balance(counterparty): counterparty.save(update_fields=[ 'debit_usd', 'debit_uzs', 'total_debit', 'kredit_usd', 'kredit_uzs', 'total_kredit' - ]) + ]) \ No newline at end of file diff --git a/core/apps/orders/models/__init__.py b/core/apps/orders/models/__init__.py index ea3bcde..d2231f2 100644 --- a/core/apps/orders/models/__init__.py +++ b/core/apps/orders/models/__init__.py @@ -1,3 +1,3 @@ from .order import * -from ..order_offer import * +from .order_offer import * from .party import * \ No newline at end of file diff --git a/core/apps/orders/order_offer.py b/core/apps/orders/models/order_offer.py similarity index 100% rename from core/apps/orders/order_offer.py rename to core/apps/orders/models/order_offer.py