from decimal import Decimal from django.db.models import Sum from core.apps.finance.models import Expence from core.apps.orders.models import Party from core.apps.counterparty.models import Counterparty def find_tafavvut(): tafavvut = [] party_total_price = 0 expence_total_price = 0 counterparty = Counterparty.objects.filter(name__icontains="Сардор карта 7664").first() if not counterparty: print("Counterparty topilmadi") return for party in Party.objects.filter(orders__counterparty=counterparty): price_result = Expence.objects.filter(party=party, currency='uzs').aggregate(total_price=Sum("price")) expence_total_price_value = price_result['total_price'] or 0 party_total = party.party_amount.total_price or 0 if party_total != expence_total_price_value: print(f"Party: {party.id}, Party Total: {party_total}, Expence Total: {expence_total_price_value}") tafavvut.append({ 'party': party, 'party_total': party_total, 'expence_total': expence_total_price_value, 'tafavvut': party_total - expence_total_price_value }) party_total_price += party_total expence_total_price += expence_total_price_value print("\n=== NATIJA ===") print(f"Tafavvut topilgan: {len(tafavvut)}") print(f"Party jami: {party_total_price}") print(f"Expence jami: {expence_total_price}") print(f"Farq: {party_total_price - expence_total_price}") for item in tafavvut: print(f"Party {item['party'].id}: +{item['tafavvut']}") return tafavvut find_tafavvut()