finance: change import income and expence commands

This commit is contained in:
behruz-dev
2025-11-03 13:32:48 +05:00
parent 6bd866c53c
commit 2769b3cc37
4 changed files with 148 additions and 133 deletions

View File

@@ -5,28 +5,22 @@ from core.apps.finance.models import Income
def update_counterparty_balance(counterparty):
"""Counterpartyning debit va kredit balanslarini exchange_rate bilan hisoblash"""
if not counterparty:
return
# EXPENCE -> DEBIT
expences = Expence.objects.filter(
counterparty=counterparty,
is_deleted=False,
status='CONFIRMED'
)
# USD bo'lganlari
debit_usd = expences.filter(currency='usd').aggregate(
total=Sum('price')
)['total'] or 0
# UZS bo'lganlari (to'g'ridan-to'g'ri)
debit_uzs_direct = expences.filter(currency='uzs').aggregate(
total=Sum('price')
)['total'] or 0
# USD -> UZS konversiyasi (exchange_rate bilan ko'paytirish)
debit_uzs_from_usd = expences.filter(currency='usd').aggregate(
total=Sum(
Case(
@@ -40,23 +34,19 @@ def update_counterparty_balance(counterparty):
debit_uzs = debit_uzs_direct + debit_uzs_from_usd
# INCOME -> KREDIT
incomes = Income.objects.filter(
counterparty=counterparty,
is_deleted=False
)
# USD bo'lganlari
kredit_usd = incomes.filter(currency='usd').aggregate(
total=Sum('price')
)['total'] or 0
# UZS bo'lganlari (to'g'ridan-to'g'ri)
kredit_uzs_direct = incomes.filter(currency='uzs').aggregate(
total=Sum('price')
)['total'] or 0
# USD -> UZS konversiyasi
kredit_uzs_from_usd = incomes.filter(currency='usd').aggregate(
total=Sum(
Case(
@@ -70,11 +60,9 @@ def update_counterparty_balance(counterparty):
kredit_uzs = kredit_uzs_direct + kredit_uzs_from_usd
# Total hisoblash
total_debit = debit_usd + debit_uzs
total_kredit = kredit_usd + kredit_uzs
# Modelni yangilash
counterparty.debit_usd = debit_usd
counterparty.debit_uzs = int(debit_uzs)
counterparty.total_debit = int(total_debit)