39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
from django.db.models import Sum
|
|
from django.utils import timezone
|
|
from Base.models import Professional
|
|
from Movement.models import Calendar, Expense
|
|
|
|
def metric():
|
|
Professionals = Professional.objects.all()
|
|
# current_month = timezone.localtime(timezone.now()).month
|
|
# current_year = timezone.localtime(timezone.now()).year
|
|
|
|
sum_expense_prof = {}
|
|
for Prof in Professionals:
|
|
sum_ = Expense.objects.filter(
|
|
# active=True,
|
|
firm=False,
|
|
professional__name=Prof.name,
|
|
# date__month=current_month,
|
|
# date__year=current_year
|
|
).aggregate(Sum('gross_value'))['gross_value__sum'] or 0
|
|
sum_expense_prof[Prof.name] = sum_
|
|
|
|
|
|
sum_serv_prof = {}
|
|
for Prof in Professionals:
|
|
sum_ = Calendar.objects.filter(
|
|
# active=True,
|
|
professional__name=Prof.name,
|
|
# date__month=current_month,
|
|
# date__year=current_year
|
|
).aggregate(Sum('prof_money'))['prof_money__sum'] or 0
|
|
sum_serv_prof[Prof.name] = sum_
|
|
|
|
sum_total = {}
|
|
for total in Professionals:
|
|
sum1 = sum_serv_prof.get(str(total.name))
|
|
sum2 = sum_expense_prof.get(str(total.name))
|
|
sum_total[total.name] = ( sum1 - sum2 )
|
|
|
|
return sum_total |