38086-vm/core/patch_views_missing.py
2026-02-07 13:40:39 +00:00

93 lines
3.1 KiB
Python

@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)