This commit is contained in:
behruz-dev
2025-11-05 16:25:39 +05:00
parent 3d9bf5bea6
commit 876b30b107

View File

@@ -0,0 +1,43 @@
from django.db.models import Count
from core.apps.finance.models import Expence
from django.core.management import BaseCommand
def get_duplicate_expenses_all():
"""
Barcha counterparty boyicha bir xil summada yaratilgan expenselarni topadi
"""
expences = Expence.objects.filter(
is_deleted=False
).values('counterparty', 'price', 'currency').annotate(
count=Count('id')
).filter(count__gt=1).order_by('-count')
return expences
class Command(BaseCommand):
def handle(self, *args, **options):
duplicate_data = get_duplicate_expenses_all()
result = []
for item in duplicate_data:
expenses = Expence.objects.filter(
is_deleted=False,
counterparty_id=item['counterparty'],
price=item['price'],
currency=item['currency']
)
counterparty = expenses.first().counterparty if expenses.exists() else None
result.append({
'counterparty': counterparty,
'amount': item['price'],
'currency': item['currency'],
'count': item['count'],
'expenses': expenses
})
print(result)