38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
from django.db.models import Sum , Count
|
|
from django.utils import timezone
|
|
from Movement.models import (
|
|
Calendar,
|
|
ExpenseOrCredit
|
|
)
|
|
|
|
def metric(Prof_id):
|
|
current_month = timezone.localtime(timezone.now()).month
|
|
current_year = timezone.localtime(timezone.now()).year
|
|
|
|
calenda = Calendar.objects.filter(
|
|
professional_id=Prof_id,
|
|
date__month=current_month,
|
|
date__year=current_year,
|
|
)
|
|
debit = ExpenseOrCredit.objects.filter(
|
|
prof=True,
|
|
debit=True,
|
|
credit=False,
|
|
professional_id=Prof_id,
|
|
date__month=current_month,
|
|
date__year=current_year,
|
|
)
|
|
credit = ExpenseOrCredit.objects.filter(
|
|
prof=True,
|
|
debit=False,
|
|
credit=True,
|
|
professional_id=Prof_id,
|
|
date__month=current_month,
|
|
date__year=current_year,
|
|
)
|
|
sum_calenda = calenda.aggregate(Sum('prof_money'))['prof_money__sum'] or 0
|
|
sum_debit = calenda.aggregate(Sum('gross_value'))['gross_value__sum'] or 0
|
|
sum_credit = calenda.aggregate(Sum('gross_value'))['gross_value__sum'] or 0
|
|
all = sum_calenda + sum_credit - sum_debit
|
|
|
|
return all |