39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
from django.db.models import Sum , Count
|
|
from django.utils import timezone
|
|
from Movement.models import (
|
|
Calendar,
|
|
ExpenseOrCredit,
|
|
ChartOfAccount,
|
|
)
|
|
|
|
def metric(Prof_id):
|
|
current_month = timezone.localtime(timezone.now()).month
|
|
current_year = timezone.localtime(timezone.now()).year
|
|
|
|
# pegando total de Despesas
|
|
debit = ChartOfAccount.objects.filter(
|
|
firm=False,
|
|
debit=True,
|
|
credit=False,
|
|
prof=True,
|
|
)
|
|
expense = {}
|
|
total_geral_despesas = 0
|
|
for bank in debit:
|
|
sum_bank = ExpenseOrCredit.objects.filter(
|
|
# active=True,
|
|
date__month=current_month,
|
|
date__year=current_year,
|
|
chart_of_account__id=bank.id,
|
|
professional__id=Prof_id,
|
|
)
|
|
total_geral_despesas += sum_bank.aggregate(Sum('gross_value'))['gross_value__sum'] or 0
|
|
expense[bank.name] = {
|
|
'sum_expense': sum_bank.aggregate(Sum('gross_value'))['gross_value__sum'] or 0,
|
|
'list_expense': sum_bank ,
|
|
}
|
|
|
|
return {
|
|
'sum_expense': expense,
|
|
'sum_expense_all': total_geral_despesas,
|
|
} |