Changeset - db3ba4fd4d85
[Not reviewed]
0 3 0
Brett Smith - 4 years ago 2020-10-21 15:33:27
brettcsmith@brettcsmith.org
accrual: Add Prepaid Expenses to aging report.
3 files changed with 9 insertions and 4 deletions:
0 comments (0 inline, 0 general)
conservancy_beancount/reports/accrual.py
Show inline comments
...
 
@@ -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)
 
            invoice = str(post.meta.get('invoice', 'BlankInvoice'))
 
            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:
setup.py
Show inline comments
...
 
@@ -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+',
tests/test_reports_accrual.py
Show inline comments
...
 
@@ -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)
 

	
0 comments (0 inline, 0 general)