43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
from django.shortcuts import render
|
|
from .models import Account, Ledger, Invoice, Bill
|
|
from django.db.models import Sum
|
|
|
|
def account_list(request):
|
|
accounts = Account.objects.all()
|
|
return render(request, 'accounting/account_list.html', {'accounts': accounts})
|
|
|
|
def trial_balance(request):
|
|
accounts = Account.objects.all()
|
|
report_data = []
|
|
total_debits = 0
|
|
total_credits = 0
|
|
|
|
for account in accounts:
|
|
debit_total = Ledger.objects.filter(account=account).aggregate(Sum('debit'))['debit__sum'] or 0
|
|
credit_total = Ledger.objects.filter(account=account).aggregate(Sum('credit'))['credit__sum'] or 0
|
|
|
|
balance = debit_total - credit_total
|
|
|
|
report_data.append({
|
|
'number': account.number,
|
|
'name': account.name,
|
|
'debit': debit_total,
|
|
'credit': credit_total,
|
|
})
|
|
|
|
total_debits += debit_total
|
|
total_credits += credit_total
|
|
|
|
return render(request, 'accounting/trial_balance.html', {
|
|
'report_data': report_data,
|
|
'total_debits': total_debits,
|
|
'total_credits': total_credits,
|
|
})
|
|
|
|
def invoice_list(request):
|
|
invoices = Invoice.objects.all()
|
|
return render(request, 'accounting/invoice_list.html', {'invoices': invoices})
|
|
|
|
def bill_list(request):
|
|
bills = Bill.objects.all()
|
|
return render(request, 'accounting/bill_list.html', {'bills': bills}) |