accrual: Add Prepaid Expenses to aging report.
This commit is contained in:
parent
56bfbe21c4
commit
db3ba4fd4d
3 changed files with 9 additions and 4 deletions
|
@ -140,6 +140,7 @@ class AccrualAccount(enum.Enum):
|
|||
# See AgingODS.start_spreadsheet().
|
||||
RECEIVABLE = Account('Assets:Receivable', [365, 120, 90, 60])
|
||||
PAYABLE = Account('Liabilities:Payable', [365, 90, 60, 30])
|
||||
PREPAID = Account('Assets:Prepaid', [365, 120, 90, 60])
|
||||
|
||||
@classmethod
|
||||
def account_names(cls) -> Iterator[str]:
|
||||
|
@ -175,11 +176,15 @@ class AccrualPostings(core.RelatedPostings):
|
|||
accruals: Dict[Tuple[str, ...], List[data.Posting]] = collections.defaultdict(list)
|
||||
payments: Dict[Tuple[str, ...], Deque[data.Posting]] = collections.defaultdict(Deque)
|
||||
key: Tuple[str, ...]
|
||||
prepaid_account = AccrualAccount.PREPAID.value.name
|
||||
for post in postings:
|
||||
norm_func = core.normalize_amount_func(post.account)
|
||||
entity = str(post.meta.get('entity', 'BlankEntity'))
|
||||
if post.account.is_under(prepaid_account):
|
||||
invoice = entity
|
||||
else:
|
||||
invoice = str(post.meta.get('invoice', 'BlankInvoice'))
|
||||
if norm_func(post.units.number) >= 0:
|
||||
entity = str(post.meta.get('entity', 'BlankEntity'))
|
||||
key = (post.meta.date.isoformat(), entity, invoice, post.account)
|
||||
accruals[key].append(post)
|
||||
else:
|
||||
|
|
2
setup.py
2
setup.py
|
@ -5,7 +5,7 @@ from setuptools import setup
|
|||
setup(
|
||||
name='conservancy_beancount',
|
||||
description="Plugin, library, and reports for reading Conservancy's books",
|
||||
version='1.12.3',
|
||||
version='1.12.4',
|
||||
author='Software Freedom Conservancy',
|
||||
author_email='info@sfconservancy.org',
|
||||
license='GNU AGPLv3+',
|
||||
|
|
|
@ -218,7 +218,7 @@ def check_aging_ods(ods_file, date, recv_rows=AGING_AR, pay_rows=AGING_AP):
|
|||
ods_file.seek(0)
|
||||
ods = odf.opendocument.load(ods_file)
|
||||
sheets = ods.spreadsheet.getElementsByType(odf.table.Table)
|
||||
assert len(sheets) == 2
|
||||
assert len(sheets) >= 2
|
||||
check_aging_sheet(sheets[0], recv_rows, date)
|
||||
check_aging_sheet(sheets[1], pay_rows, date)
|
||||
|
||||
|
|
Loading…
Reference in a new issue