fix
This commit is contained in:
43
core/apps/finance/management/commands/count.py
Normal file
43
core/apps/finance/management/commands/count.py
Normal 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)
|
||||
|
||||
Reference in New Issue
Block a user