def get(self, request): today = datetime.datetime.now().date() today_sales = SaleItem.objects.filter(sale__in=[s for s in Sale.objects.filter( sale_date__date=today)]).values_list('quantity', 'price') if today_sales: total_today_sales = sum( float(s[0]) * float(s[1]) for s in today_sales) else: total_today_sales = 0 today_expenses = ExpenseDetail.objects.filter(expense__expense_date=today).aggregate( Sum("expense_amount"))["expense_amount__sum"] if today_expenses: today_total_expenses = today_expenses else: today_total_expenses = 0 today_sale_list = Sale.objects.filter( sale_date__date=today).order_by("-created") today_expense_list = Expense.objects.filter( expense_date=today).order_by("created") from control.account_calculations import get_today_total_cash_amount,get_today_total_bank_amount,total_petty_account_amount,get_total_cash_on_hand context = { 'title': "Home", 'total_today_sales': total_today_sales, 'today_total_expenses': today_total_expenses, 'total_cash_collection': get_today_total_cash_amount(), 'total_bank_collection': get_today_total_bank_amount(), 'total_collection': get_today_total_cash_amount() + get_today_total_bank_amount(), 'coh': get_total_cash_on_hand(), 'sale_list': today_sale_list, 'expense_list': today_expense_list, 'petty_cash_account': total_petty_account_amount(), } return render(request, 'pages/home.html', context)
def clean(self): form_data = self.cleaned_data amount = form_data.get("expense_amount", None) account_id = form_data.get("payment_method", None) if amount: if not account_id == "Cash Collections": if total_account_amount(int(account_id)) < amount: self._errors['payment_method'] = "Your balance is not enough! transfer or recharge" else: if get_today_total_cash_amount() < amount: self._errors['payment_method'] = "Your balance is not enough! transfer or recharge"