• 1000 это мой текущий запрос и работает хорошо до сих пор
meal = Meal.objects.all()
purchase = Purchase.objects.all()
total_purchase = Purchase.objects.aggregate(total_purchase=Sum('amount'))
total_meal = Meal.objects.aggregate(total_meal=Sum('number_of_meal'))
cost_per_meal = float(total_purchase['total_purchase']) / float(total_meal['total_meal'])
user_wise_meal_cost = User.objects.annotate(
total_meal_cost=Coalesce(Sum('meal_entry_for__number_of_meal'), Value(0)) * cost_per_meal
)
user_wise_payable_receivable = User.objects.annotate(
receivable_payable=Coalesce(Sum('ledger_entry_for__amount'), Value(0))
)
Я пытаюсь вычесть user_wise_meal_cost
из этого расчета Coalesce(Sum('ledger_entry_for__amount'), Value(0))
в user_wise_payable_receivable
Я имею в виду, я хочу определить, какой пользователь нужно заплатить или получить сколько. общая покупка пользователем от общей стоимости еды будет минимизирована. это простая бизнес-логика c.
Может ли кто-нибудь помочь определить, какой пользователь должен платить, сколько и какой пользователь должен получить, сколько в зависимости от их покупки на потребляемую еду?