from django.db.models import Sum from Base.models import PayMethod from Movement.models import Calendar , Product def metric(Day): # Total de despesas do dia payment_method = PayMethod.objects.all() serv_mov = Calendar.objects.filter(date=Day).values() prod_mov = Product.objects.filter(date=Day).values() bank_balance = {} for PayM in payment_method: sum_bank1 = serv_mov.filter( pay_method__name=PayM.name, ).aggregate(Sum('gross_value'))['gross_value__sum'] or 0 sum_bank2 = prod_mov.filter( pay_method__name=PayM.name, ).aggregate(Sum('gross_value'))['gross_value__sum'] or 0 bank_balance[PayM.name] = sum_bank1 + sum_bank2 sum_of_bank = sum(bank_balance.values()) or 0 return { 'bank_balance':bank_balance, 'sum_of_bank':sum_of_bank, }