first commit

This commit is contained in:
2026-01-02 09:19:43 -03:00
parent 63cf724aaf
commit cc44b7ef4f
187 changed files with 2484 additions and 686 deletions

View File

@@ -1,39 +1,59 @@
from django.db.models import Sum
from django.utils import timezone
from Base.models import Professional
from Movement.models import Calendar, Expense
from Movement.models import Calendar, ExpenseOrCredit
def metric():
Professionals = Professional.objects.all()
# current_month = timezone.localtime(timezone.now()).month
# current_year = timezone.localtime(timezone.now()).year
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
professional__id=Prof.id,
date__month= current_month,
date__year= current_year
).aggregate(Sum('prof_money'))['prof_money__sum'] or 0
sum_serv_prof[Prof.name] = sum_
sum_expense_prof[Prof.name] = sum_
sum_serv_prof_credit = {}
for Prof in Professionals:
sum_ = ExpenseOrCredit.objects.filter(
# active=True,
firm=False,
debit=False,
credit=True,
professional__id=Prof.id,
date__month= current_month,
date__year= current_year
).aggregate(Sum('gross_value'))['gross_value__sum'] or 0
sum_serv_prof_credit[Prof.name] = sum_
sum_serv_prof_debit = {}
for Prof in Professionals:
sum_ = ExpenseOrCredit.objects.filter(
# active=True,
firm=False,
debit=True,
credit=False,
professional__id=Prof.id,
date__month= current_month,
date__year= current_year
).aggregate(Sum('gross_value'))['gross_value__sum'] or 0
sum_serv_prof_debit[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 )
sum1 = sum_expense_prof.get(str(total.name))
sum2 = sum_serv_prof_credit.get(str(total.name))
sum3 = sum_serv_prof_debit.get(str(total.name))
sum_total[total.name] = ( sum1 + sum2 - sum3 )
return sum_total
sum_all = sum(sum_total.values()) or 0
return {
'sum_total':sum_total,
'sum_all':sum_all,
}