Added the brought-forward records to the journal in the accounting application.
This commit is contained in:
parent
1cd64955a3
commit
36389623ef
@ -440,8 +440,47 @@ def journal(request, period_spec):
|
|||||||
transaction__date__lte=period.end).order_by(
|
transaction__date__lte=period.end).order_by(
|
||||||
"transaction__date", "is_credit", "ord")
|
"transaction__date", "is_credit", "ord")
|
||||||
# The brought-forward records
|
# The brought-forward records
|
||||||
# TODO: To be done.
|
brought_forward_subjects = Subject.objects.filter(
|
||||||
|
Q(code__startswith="1")
|
||||||
|
| Q(code__startswith="2")
|
||||||
|
| Q(code__startswith="3"))\
|
||||||
|
.annotate(balance=Sum(
|
||||||
|
Case(
|
||||||
|
When(record__is_credit=True, then=-1),
|
||||||
|
default=1
|
||||||
|
) * F("record__amount"),
|
||||||
|
filter=Q(record__transaction__date__lt=period.start)))\
|
||||||
|
.filter(~Q(balance__gt=0))
|
||||||
|
debit_records = [Record(
|
||||||
|
transaction=Transaction(date=period.start),
|
||||||
|
subject=x,
|
||||||
|
is_credit=False,
|
||||||
|
amount=x.balance
|
||||||
|
) for x in brought_forward_subjects if x.balance > 0]
|
||||||
|
credit_records = [Record(
|
||||||
|
transaction=Transaction(date=period.start),
|
||||||
|
subject=x,
|
||||||
|
is_credit=True,
|
||||||
|
amount=-x.balance
|
||||||
|
) for x in brought_forward_subjects if x.balance < 0]
|
||||||
|
sum_debits = sum([x.amount for x in debit_records])
|
||||||
|
sum_credits = sum([x.amount for x in credit_records])
|
||||||
|
if sum_debits < sum_credits:
|
||||||
|
debit_records.append(Record(
|
||||||
|
transaction=Transaction(date=period.start),
|
||||||
|
subject=Subject.objects.filter(code="3351").first(),
|
||||||
|
is_credit=False,
|
||||||
|
amount=sum_credits - sum_debits
|
||||||
|
))
|
||||||
|
elif sum_debits > sum_credits:
|
||||||
|
credit_records.append(Record(
|
||||||
|
transaction=Transaction(date=period.start),
|
||||||
|
subject=Subject.objects.filter(code="3351").first(),
|
||||||
|
is_credit=True,
|
||||||
|
amount=sum_debits - sum_credits
|
||||||
|
))
|
||||||
|
records = list(debit_records) + list(credit_records)\
|
||||||
|
+ list(records)
|
||||||
pagination = Pagination(request, records, True)
|
pagination = Pagination(request, records, True)
|
||||||
return render(request, "accounting/journal.html", {
|
return render(request, "accounting/journal.html", {
|
||||||
"records": pagination.records,
|
"records": pagination.records,
|
||||||
|
Loading…
Reference in New Issue
Block a user