diff --git a/append_reports.py b/append_reports.py new file mode 100644 index 0000000..bc69e8f --- /dev/null +++ b/append_reports.py @@ -0,0 +1,24 @@ + +import os + +file_path = 'core/views.py' + +missing_reports = r""" + +@login_required +def cashflow_report(request): + return render(request, 'core/cashflow_report.html') + +@login_required +def customer_statement(request): + return render(request, 'core/customer_statement.html') + +@login_required +def supplier_statement(request): + return render(request, 'core/supplier_statement.html') +""" + +with open(file_path, 'a') as f: + f.write(missing_reports) + +print("Appended missing reports to core/views.py") diff --git a/core/__pycache__/urls.cpython-311.pyc b/core/__pycache__/urls.cpython-311.pyc index 1f239d2..aa96f4c 100644 Binary files a/core/__pycache__/urls.cpython-311.pyc and b/core/__pycache__/urls.cpython-311.pyc differ diff --git a/core/__pycache__/views.cpython-311.pyc b/core/__pycache__/views.cpython-311.pyc index 0acedac..f7676fc 100644 Binary files a/core/__pycache__/views.cpython-311.pyc and b/core/__pycache__/views.cpython-311.pyc differ diff --git a/core/patch_views_missing.py b/core/patch_views_missing.py new file mode 100644 index 0000000..8cab7e4 --- /dev/null +++ b/core/patch_views_missing.py @@ -0,0 +1,92 @@ + +@login_required +def customer_statement(request): + customers = Customer.objects.all().order_by('name') + selected_customer = None + sales = [] + + customer_id = request.GET.get('customer') + start_date = request.GET.get('start_date') + end_date = request.GET.get('end_date') + + if customer_id: + selected_customer = get_object_or_404(Customer, id=customer_id) + sales = Sale.objects.filter(customer=selected_customer).order_by('-created_at') + + if start_date: + sales = sales.filter(created_at__date__gte=start_date) + if end_date: + sales = sales.filter(created_at__date__lte=end_date) + + context = { + 'customers': customers, + 'selected_customer': selected_customer, + 'sales': sales, + 'start_date': start_date, + 'end_date': end_date + } + return render(request, 'core/customer_statement.html', context) + +@login_required +def supplier_statement(request): + suppliers = Supplier.objects.all().order_by('name') + selected_supplier = None + purchases = [] + + supplier_id = request.GET.get('supplier') + start_date = request.GET.get('start_date') + end_date = request.GET.get('end_date') + + if supplier_id: + selected_supplier = get_object_or_404(Supplier, id=supplier_id) + purchases = Purchase.objects.filter(supplier=selected_supplier).order_by('-created_at') + + if start_date: + purchases = purchases.filter(created_at__date__gte=start_date) + if end_date: + purchases = purchases.filter(created_at__date__lte=end_date) + + context = { + 'suppliers': suppliers, + 'selected_supplier': selected_supplier, + 'purchases': purchases, + 'start_date': start_date, + 'end_date': end_date + } + return render(request, 'core/supplier_statement.html', context) + +@login_required +def cashflow_report(request): + # Simplified Cashflow + start_date = request.GET.get('start_date') + end_date = request.GET.get('end_date') + + sales = Sale.objects.all() + expenses = Expense.objects.all() + purchases = Purchase.objects.all() + + if start_date: + sales = sales.filter(created_at__date__gte=start_date) + expenses = expenses.filter(date__gte=start_date) + purchases = purchases.filter(created_at__date__gte=start_date) + + if end_date: + sales = sales.filter(created_at__date__lte=end_date) + expenses = expenses.filter(date__lte=end_date) + purchases = purchases.filter(created_at__date__lte=end_date) + + total_sales = sales.aggregate(total=Sum('total_amount'))['total'] or 0 + total_expenses = expenses.aggregate(total=Sum('amount'))['total'] or 0 + total_purchases = purchases.aggregate(total=Sum('total_amount'))['total'] or 0 + + net_profit = total_sales - total_expenses - total_purchases + + context = { + 'total_sales': total_sales, + 'total_expenses': total_expenses, + 'total_purchases': total_purchases, + 'net_profit': net_profit, + 'start_date': start_date, + 'end_date': end_date + } + return render(request, 'core/cashflow_report.html', context) diff --git a/core/templates/base.html b/core/templates/base.html index 11e28d3..70dd0c9 100644 --- a/core/templates/base.html +++ b/core/templates/base.html @@ -266,11 +266,11 @@