austax: Add recording of PAYG withheld amounts
This commit is contained in:
parent
8777ddd0ef
commit
0caedab327
@ -16,7 +16,8 @@
|
||||
|
||||
from flask import render_template
|
||||
|
||||
from drcr.models import Posting, Transaction
|
||||
from drcr.models import AccountConfiguration, Posting, Transaction, TrialBalancer
|
||||
from drcr.database import db
|
||||
import drcr.plugins
|
||||
from drcr.webapp import app
|
||||
|
||||
@ -31,6 +32,7 @@ def plugin_init():
|
||||
drcr.plugins.account_kinds.append(('austax.income5', 'Australian Government allowances and payments (5)'))
|
||||
drcr.plugins.account_kinds.append(('austax.d4', 'Work-related self-education expenses (D4)'))
|
||||
drcr.plugins.account_kinds.append(('austax.d5', 'Other work-related expenses (D5)'))
|
||||
drcr.plugins.account_kinds.append(('austax.paygw', 'PAYG withheld amounts'))
|
||||
|
||||
drcr.plugins.transaction_providers.append(make_tax_transactions)
|
||||
|
||||
@ -48,11 +50,37 @@ def make_tax_transactions():
|
||||
if dt < datetime.now():
|
||||
dt = dt.replace(year=dt.year + 1)
|
||||
|
||||
return [Transaction(
|
||||
# Estimated tax payable
|
||||
transactions = [Transaction(
|
||||
dt=dt,
|
||||
description='Estimated tax payable',
|
||||
description='Estimated income tax',
|
||||
postings=[
|
||||
Posting(account='Income Tax', quantity=tax_amount.quantity, commodity='$'),
|
||||
Posting(account='Income Tax Control', quantity=-tax_amount.quantity, commodity='$')
|
||||
]
|
||||
)]
|
||||
|
||||
# Get trial balance
|
||||
balancer = TrialBalancer()
|
||||
balancer.apply_transactions(db.session.scalars(db.select(Transaction).options(db.selectinload(Transaction.postings))).all())
|
||||
|
||||
accounts = dict(sorted(balancer.accounts.items()))
|
||||
|
||||
# Get account configurations
|
||||
account_configurations = AccountConfiguration.get_all_kinds()
|
||||
|
||||
# PAYG withholding
|
||||
for account_name, kinds in account_configurations.items():
|
||||
if 'austax.paygw' in kinds:
|
||||
if accounts[account_name].quantity != 0:
|
||||
# Transfer balance to Income Tax Control
|
||||
transactions.append(Transaction(
|
||||
dt=dt,
|
||||
description='PAYG withheld amounts',
|
||||
postings=[
|
||||
Posting(account='Income Tax Control', quantity=accounts[account_name].quantity, commodity='$'),
|
||||
Posting(account=account_name, quantity=-accounts[account_name].quantity, commodity='$')
|
||||
]
|
||||
))
|
||||
|
||||
return transactions
|
||||
|
@ -89,24 +89,37 @@ def tax_summary_report():
|
||||
),
|
||||
Spacer(),
|
||||
Calculated(
|
||||
'Taxable income',
|
||||
'Net taxable income',
|
||||
lambda r: r.by_id('assessable').amount - r.by_id('deductions').amount,
|
||||
id='taxable',
|
||||
heading=True,
|
||||
bordered=True
|
||||
),
|
||||
Spacer(),
|
||||
Section(
|
||||
entries=[
|
||||
Calculated(
|
||||
'Income tax',
|
||||
'Base income tax',
|
||||
lambda _: base_income_tax(report.by_id('taxable').amount)
|
||||
),
|
||||
Calculated(
|
||||
'Medicare levy',
|
||||
lambda _: medicare_levy(report.by_id('taxable').amount)
|
||||
),
|
||||
Subtotal(id='total_tax', visible=False)
|
||||
Subtotal('Total income tax', id='total_tax', bordered=True)
|
||||
]
|
||||
),
|
||||
Spacer(),
|
||||
Section(
|
||||
title='PAYG withheld amounts',
|
||||
entries=entries_for_kind(account_configurations, accounts, 'austax.paygw') + [Subtotal('Total withheld amounts', id='paygw')]
|
||||
),
|
||||
Spacer(),
|
||||
Calculated(
|
||||
'Income tax payable (refundable)',
|
||||
lambda _: report.by_id('total_tax').amount - report.by_id('paygw').amount,
|
||||
heading=True,
|
||||
bordered=True
|
||||
)
|
||||
]
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user