Commit graph

339 commits

Author SHA1 Message Date
Brett Smith
7abc01b1ac fund: Bugfix crash when text report has an empty balance.
This mostly happens when a date range includes the opening or closing of a
fund account, because then the reported beginning/ending balance is empty.
2020-12-29 10:53:55 -05:00
Brett Smith
51eee8ec8f meta_entity: Don't set transaction metadata when payee is None. RT#12913 2020-11-04 13:43:54 -05:00
Brett Smith
2b23eba549 data: PostingMeta.detached() can be chain-called. 2020-10-26 14:52:41 -04:00
Brett Smith
69f597a47c rewrite: Support `metakey in value` conditions.
For now, works exactly like ``.account in value``.
2020-10-24 11:43:46 -04:00
Brett Smith
ea69d58957 tests: Test updates for accrual report changes in the last commit.
Where assertions are removed from individual tests, I believe that
functionality is covered by other tests (although probably not to the extent
of checking multiple splits).
2020-10-24 11:31:39 -04:00
Brett Smith
db3ba4fd4d accrual: Add Prepaid Expenses to aging report. 2020-10-21 11:33:27 -04:00
Brett Smith
1fcab6af32 fund: Add totals rows to the full report.
This is easy to do with the current infrastructure, and it's nice to have.
2020-10-16 16:41:08 -04:00
Brett Smith
404a88de1d fund: Use Balances instead of PeriodPostings.
A few motivations for this:

* This makes the fund report more maintainable, because the data structure
  is better suited to the task at hand, making it easier to follow what's
  going on.

* This helps put Balances through a little more testing with a high-level
  report.

* This makes the fund report a little faster, since totals are usually
  calculated from a smaller number of Balance objects rather than all
  Postings over a period.
2020-10-16 16:29:05 -04:00
Brett Smith
5e147dc0b5 core: Balances lets the caller specify posting metadata to load. 2020-10-16 11:56:38 -04:00
Brett Smith
ffc20b6899 reports: Move Balance class and friends to core.
This will be used for the fund report and the upcoming budget variance
report.
2020-10-16 10:53:15 -04:00
Brett Smith
7baa78fe34 ledger: Add Equity back to default project report sheets.
While many projects often won't have anything here, this is necessary to
show project funds released from restrictions.
2020-09-22 10:20:51 -04:00
Brett Smith
f55fccd48d plugin: Add TransactionDate hook. RT#10566
This prevents mistakes where a transaction is entered in the wrong file for
its date (which in turns causes errors in reports).
2020-09-10 16:59:29 -04:00
Brett Smith
8bc17dbf4a meta_entity: Set metadata when entity comes from payee. RT#12525
This makes it easier to write bean-queries, since you don't have to check
two places for the "real" entity.
2020-09-10 16:06:43 -04:00
Brett Smith
da056917bf meta_repo_links: Check all non-RT links. RT#12517
This is less "future-proof," but the thing is, it's premature to try
to anticipate what other link formats will be in the future. See
discussion in comments.
2020-09-05 14:59:13 -04:00
Brett Smith
c2851f5cc0 reports: URL-quote file links in spreadsheets. RT#12517
This was already done correctly in RT links because rtutil takes care of the
quoting. The fact that we weren't doing it for file links was an oversight.
2020-09-05 14:48:48 -04:00
Brett Smith
de10197af7 reports: Improve formatting of non-currency commodities.
Introduce the get_commodity_format() function, which returns Babel's
usual format string for currencies, but returns a version of it
"merged" with the locale's currency unit pattern for other
commodities.

BaseODS then calls this function where needed to format amounts.
2020-09-04 15:29:10 -04:00
Brett Smith
72f144e1ff extract_odf_links: Make "not found" warning easier to parse.
e.g., you can just use `grep | cut -b N-`.
2020-09-03 09:45:31 -04:00
Brett Smith
2eba5a5546 extract_odf_links: Add --relative-to option.
This is just too convenient for our usual case where we expect
all links to be relative to a specific directory (the repository).
2020-08-30 10:03:57 -04:00
Brett Smith
cf2d825a08 tests: Reorganize extract_odf_links tests for new feature. 2020-08-30 09:18:41 -04:00
Brett Smith
f3e577f0d5 rewrite: New module.
This module is intended to make bulk data changes to normalize
information across FYs for reporting.
2020-08-29 17:17:41 -04:00
Brett Smith
52adf1f0a5 data: Add PostingMeta.detached() method. 2020-08-29 10:26:21 -04:00
Brett Smith
4f223642ed reports: Refactor total styles to BaseODS. 2020-08-22 12:33:06 -04:00
Brett Smith
e8a754c387 ledger: Formatting modernizations.
* Equity sheet(s) report project.
* Headers include account classification.
* Bottom lines are formatted in the usual accounting way.
2020-08-22 12:31:44 -04:00
Brett Smith
58954aab23 fund: Text output readability improvements.
Make it look more like the spreadsheets:

* Don't normalize Expenses negative.

* Consistent account order: Income, then Expenses, then Equity.

* Include a bottom line divider for each fund.
2020-08-22 09:49:19 -04:00
Brett Smith
cc1767a09d fund: Incorporate Equity accounts into Release from Restrictions.
This matches what we do on our Statement of Activities in the
balance sheet report.
2020-08-22 09:25:53 -04:00
Brett Smith
95fb8ce481 meta_expense_type: Refine defaults.
* Default "management" for more accounts.

* There's a good handful of accounts where in past audits, the functional
  split has been "Conservancy expenses are management, project expenses are
  program." Handle those cases too.
2020-08-20 17:22:05 -04:00
Brett Smith
aa1f2ea35a balance_sheet: Balance.total() accepts multiple account names.
This simplifies the code to total all equity.
2020-08-18 01:28:37 -04:00
Brett Smith
e05f55659a balance_sheet: Balance only considers post_type for Expenses.
This simplifies the code and slightly optimizes it, since now Balance
won't store and keep re-summing income-type breakdowns that nothing
needs.
2020-08-18 01:28:37 -04:00
Brett Smith
29d4325c7a balance_sheet: Add activity report. 2020-08-17 15:26:55 -04:00
Brett Smith
a87d4bfc6c balance_sheet: Start report with financial position. RT#11854. 2020-08-17 10:34:38 -04:00
Brett Smith
385f5a20da extract_odf_links: Don't print document-internal links. 2020-08-10 11:36:51 -04:00
Brett Smith
ce067963dc tools: Add extract-odf-links. 2020-08-10 10:02:40 -04:00
Brett Smith
8597a526d7 cliutil: Use semi-standardized BSD exit codes. 2020-07-30 15:53:31 -04:00
Brett Smith
f56d89462a reports: Add common properties to all ODS reports. 2020-07-29 17:30:07 -04:00
Brett Smith
837fcec8f0 reports: Add BaseODS.set_common_properties() method. 2020-07-29 17:22:09 -04:00
Brett Smith
59b088b573 reports: Add BaseODS.set_properties() method. 2020-07-29 16:58:57 -04:00
Brett Smith
f9ea7edae3 config: Add Config.books_repo() method. 2020-07-29 15:46:14 -04:00
Brett Smith
680bb6e305 meta_tax_implication: Update values for TY2020 1099-MISC changes.
Support the new 1099-NEC form.
2020-07-28 16:41:34 -04:00
Brett Smith
123508ef88 expense_type: Revamp expense-allocation metadata.
* Change the name for symmetry with income-type.
* Standardize on "management" value because that's what it's called in the 990.
2020-07-28 11:46:00 -04:00
Brett Smith
a27d68beab cliutil: Add diff_year function. 2020-07-27 11:50:11 -04:00
Brett Smith
4615364538 cliutil: Add ReturnFlag.
Take this opportunity to re-standardize flag values now that it's clear
what's most common.
2020-07-27 10:54:04 -04:00
Brett Smith
46fe18809c ledger: Add transaction-level reports.
Mainly for the cash disbursements and receipts reports, which have dedicated
shortcuts.
2020-07-22 11:26:36 -04:00
Brett Smith
56114cc66e accrual: Support limited punctuation in payment-method. 2020-07-21 13:20:58 -04:00
Brett Smith
6c7603fa6c ledger: Add options to control account totals display. 2020-07-20 22:45:14 -04:00
Brett Smith
708d48699a accrual: Restore "since last nonzero" behavior to outgoing report.
Basically this behavior is an extension of the fact that the outgoing report
is grouped by RT ticket rather than "accrual data." Ripping this
functionality out of other reports was correct, but it needed to stay for
the outgoing report.
2020-07-20 15:13:20 -04:00
Brett Smith
52e7f3a221 ledger: Only display accounts requested with --account.
Now that we're accepting classifications, it's possible to specify account
options that select some but not all accounts at the same level of the
hierarchy. This commit tracks requested account names separately from sheet
names to do that correctly.
2020-07-20 13:13:22 -04:00
Brett Smith
aaa26e9e61 data: Make Account.iter_accounts() argument optional. 2020-07-20 11:22:23 -04:00
Brett Smith
4483d76999 data: Add Account.is_open_on_date() method. 2020-07-17 09:58:18 -04:00
Brett Smith
a0372d4b73 data: Add Account.keeps_balance() method. 2020-07-17 09:33:59 -04:00
Brett Smith
3f0b201d16 ledger: --account accepts a classification.
This makes it easier for users to specify a group of accounts.
2020-07-16 15:12:20 -04:00