Changeset - 087b3274e7d2
[Not reviewed]
0 4 0
Brett Smith - 3 years ago 2021-01-19 19:23:51
brettcsmith@brettcsmith.org
ledger: Dedicated reporting tab for Expenses:Payroll.

To better accommodate the new payroll-type metadata.
4 files changed with 13 insertions and 2 deletions:
0 comments (0 inline, 0 general)
conservancy_beancount/reports/ledger.py
Show inline comments
...
 
@@ -92,6 +92,7 @@ class LedgerODS(core.BaseODS[data.Posting, None]):
 
    ]
 
    ACCOUNT_COLUMNS: Dict[str, Sequence[str]] = collections.OrderedDict([
 
        ('Income', ['project', 'rt-id', 'receipt', 'income-type', 'memo']),
 
        ('Expenses:Payroll', ['project', 'rt-id', 'payroll-type', 'expense-type', 'receipt', 'approval']),
 
        ('Expenses', ['project', 'rt-id', 'receipt', 'approval', 'expense-type']),
 
        ('Equity', ['project', 'rt-id']),
 
        ('Assets:Receivable', ['project', 'rt-id', 'invoice', 'approval', 'contract', 'purchase-order']),
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.15.4',
 
    version='1.15.5',
 
    author='Software Freedom Conservancy',
 
    author_email='info@sfconservancy.org',
 
    license='GNU AGPLv3+',
tests/books/ledger.beancount
Show inline comments
...
 
@@ -9,6 +9,8 @@
 
  classification: "Accounts receivable"
 
2018-01-01 open Expenses:Other
 
  classification: "Other expenses"
 
2018-01-01 open Expenses:Payroll
 
  classification: "Payroll expenses"
 
2018-01-01 open Income:Other
 
  classification: "Other income"
 
2018-01-01 open Liabilities:CreditCard
tests/test_reports_ledger.py
Show inline comments
...
 
@@ -34,6 +34,7 @@ _ledger_load = bc_loader.load_file(testutil.test_path('books/ledger.beancount'))
 
DEFAULT_REPORT_SHEETS = [
 
    'Balance',
 
    'Income',
 
    'Expenses:Payroll',
 
    'Expenses',
 
    'Equity',
 
    'Assets:Receivable',
...
 
@@ -42,7 +43,9 @@ DEFAULT_REPORT_SHEETS = [
 
    'Assets',
 
    'Liabilities',
 
]
 
PROJECT_REPORT_SHEETS = DEFAULT_REPORT_SHEETS[:5] + [
 
PROJECT_REPORT_SHEETS = [
 
    *DEFAULT_REPORT_SHEETS[:2],
 
    *DEFAULT_REPORT_SHEETS[3:6],
 
    'Assets:Prepaid',
 
    'Liabilities:UnearnedIncome',
 
    'Liabilities:Payable',
...
 
@@ -402,6 +405,11 @@ def test_account_names_report(ledger_entries, accounts, report_kwargs):
 
    for account in iter_accounts(ledger_entries):
 
        if not account.startswith(accounts):
 
            ExpectedPostings.check_not_in_report(report.document, account)
 
        # This account is reportable but has no postings
 
        elif account == 'Expenses:Payroll':
 
            ExpectedPostings.check_in_report(
 
                report.document, account, START_DATE, STOP_DATE, txn_filter,
 
            )
 
        elif txn_filter is None:
 
            expected[account].check_report(report.document, START_DATE, STOP_DATE)
 
        else:
0 comments (0 inline, 0 general)