Changeset - 3519933b8cea
[Not reviewed]
0 2 0
Brett Smith - 4 years ago 2020-08-19 20:09:53
brettcsmith@brettcsmith.org
balance_sheet: Normalize handling of release from restrictions.
2 files changed with 13 insertions and 13 deletions:
0 comments (0 inline, 0 general)
conservancy_beancount/reports/balance_sheet.py
Show inline comments
...
 
@@ -87,6 +87,12 @@ class BalanceKey(NamedTuple):
 

	
 

	
 
class Balances:
 
    ACCOUNT_REWRITES: Mapping[str, data.Account] = {
 
        # Normalize the chart of accounts from prior FYs to the current one.
 
        'Expenses:CurrencyConversion': data.Account('Income:CurrencyConversion'),
 
        'Income:Donations:Released': data.Account('Equity:Funds:Restricted'),
 
    }
 

	
 
    def __init__(self,
 
                 postings: Iterable[data.Posting],
 
                 start_date: datetime.date,
...
 
@@ -123,14 +129,11 @@ class Balances:
 
                period = Period.PRIOR
 
            else:
 
                period = Period.OPENING
 
            if post.account == 'Expenses:CurrencyConversion':
 
                account = data.Account('Income:CurrencyConversion')
 
            else:
 
                account = post.account
 
            if post.meta.get(fund_key) == unrestricted_fund_value:
 
                fund = Fund.UNRESTRICTED
 
            else:
 
                fund = Fund.RESTRICTED
 
            account = self.ACCOUNT_REWRITES.get(post.account, post.account)
 
            try:
 
                classification_s = account.meta['classification']
 
                if isinstance(classification_s, str):
...
 
@@ -216,7 +219,6 @@ class Balances:
 

	
 
class Report(core.BaseODS[Sequence[None], None]):
 
    C_CASH = 'Cash'
 
    C_SATISFIED = 'Satisfaction of program restrictions'
 
    NO_BALANCE = core.Balance()
 
    SPACE = ' ' * 4
 

	
...
 
@@ -425,23 +427,21 @@ class Report(core.BaseODS[Sequence[None], None]):
 

	
 
        self.add_row(self.string_cell("Support and Revenue", stylename=self.style_bold))
 
        self.add_row()
 
        income_totals = self.write_classifications_by_account(
 
            'Income', bal_kwargs, (self.C_SATISFIED,),
 
        )
 
        income_totals = self.write_classifications_by_account('Income', bal_kwargs)
 
        self.write_totals_row("", income_totals, stylename=self.style_subtotline)
 
        self.add_row()
 
        self.add_row(
 
            self.string_cell("Net Assets released from restrictions:"),
 
        )
 
        released = self.balances.total(
 
            account='Expenses', period=Period.PERIOD, fund=Fund.RESTRICTED,
 
        ) - self.balances.total(
 
            classification=self.C_SATISFIED, period=Period.PERIOD, fund=Fund.UNRESTRICTED,
 
            account=('Expenses', 'Equity'),
 
            period=Period.PERIOD,
 
            fund=Fund.RESTRICTED,
 
        )
 
        other_totals = [core.MutableBalance() for _ in bal_kwargs]
 
        other_totals[0] += released
 
        other_totals[1] -= released
 
        self.write_totals_row(self.C_SATISFIED, other_totals)
 
        self.write_totals_row("Satisfaction of program restrictions", other_totals)
 
        self.write_totals_row(
 
            "Total Support and Revenue",
 
            income_totals, other_totals,
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.8.5',
 
    version='1.8.6',
 
    author='Software Freedom Conservancy',
 
    author_email='info@sfconservancy.org',
 
    license='GNU AGPLv3+',
0 comments (0 inline, 0 general)