Commit graph

566 commits

Author SHA1 Message Date
Brett Smith
0054465ce5 audit_report: Use common rewrite rules argument for consistency. 2020-09-17 10:28:34 -04:00
Brett Smith
d9360f1cea audit_report: Use concurrent.futures for parallelization.
This is basically a pure maintainability change: concurrent.futures is the
nicest API that's available in both Python 3.6 and 3.7, and our other tools
are using it.
2020-09-17 10:24:13 -04:00
Brett Smith
ad96fdfa90 audit_report: Remove manifest generation.
We're basically always going to have a "packet build step," and it makes
more sense to have the manifest generated there, since it's the thing that
consumes the manifest, rather than here.
2020-09-17 10:07:24 -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
e60078933d rewrite: Add docstring with user documentation. 2020-09-10 15:16:49 -04:00
Brett Smith
3219bf89d2 split_ods_links: New tool.
See docstring—this is mostly a post-filter to improve Excel compatibility.
2020-09-08 23:37:00 -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
b4f2b506be reports: ODS currency formatting gets integer precision from Babel. 2020-09-04 14:49:20 -04:00
Brett Smith
21383d2355 reports: Correct use of NumberPattern.grouping.
The 2-tuple represents min/max grouping, not positive/negative.
2020-09-04 14:46:18 -04:00
Brett Smith
44ac5e61f7 reports: BaseODS gets decimalplaces directly from Babel. 2020-09-04 14:20:11 -04:00
Brett Smith
2c3438ba0f balance_sheet: Add account code column to chart of accounts. 2020-09-03 17:01:28 -04:00
Brett Smith
5081c8934c ledger: Put account classification on each row in a hidden column.
This makes it easier to build formulas based on classification.
Hiding it keeps the presentation neat for human readers.
2020-09-03 14:51:39 -04:00
Brett Smith
27acf1f0c1 meta_expense_type: Default management for payroll expenses.
It's a little abstract since we usually rewrite these but this is a
safer default.
2020-09-03 11:55:59 -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
42442c401f extract_odf_links: Support multiprocessing.
This cuts audit packet manifest build time in half on my 8-core laptop.
2020-09-03 09:40:47 -04:00
Brett Smith
552dae6ea5 cliutil: Take on --jobs support from audit_report. 2020-09-02 13:26:35 -04:00
Brett Smith
0f91aefb5a setup: Install tools module. 2020-08-31 17:05:51 -04:00
Brett Smith
35804db617 reports: All reports support rewrite rules.
I realized that if ledger-report supported rewrite rules, then it would
include all the information necessary to reproduce the numbers on the
statement of functional expenses.

With that, it was easy enough to add support to the rest of the reports for
consistency's sake.
2020-08-31 14:19:00 -04:00
Brett Smith
8c81eceb2c audit_report: Exclude rewrite logs from verbose display. 2020-08-31 14:14:19 -04:00
Brett Smith
7281cf0f01 audit_report: New tool. 2020-08-30 22:34:32 -04:00
Brett Smith
0e52f11a58 rtutil: Fix crash when multiple RTLinkCaches race.
This was most likely to happen with multiple bean-checks running in
parallel: they would both see a new RT URL, fetch it, and try to
insert it into the cache. That's not a problem as long as they're
both inserting the same URL, so catch that exception.
2020-08-30 11:18:32 -04:00
Brett Smith
dc2e2d200d balance_sheet: Fix logger name. 2020-08-30 11:14:25 -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
977b16e365 balance_sheet: Remove custom data normalizations.
These can be supported with rewrite rules now.
2020-08-29 17:18:38 -04:00
Brett Smith
153361ce9f balance_sheet: Support rewrite rules. 2020-08-29 17:18:15 -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
dfdb9b65d5 accrual: Add total divider lines. 2020-08-22 12:39:43 -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
3519933b8c balance_sheet: Normalize handling of release from restrictions. 2020-08-19 16:09:53 -04:00
Brett Smith
bd33c04932 balance_sheet: Re-simplify the "release from restrictions" math.
Basically the original bug was an incorrect sign. The last implementation
was very belt-and-suspenders to help me think through it. But it's also more
error-prone in the long run.
2020-08-18 16:48:26 -04:00
Brett Smith
5a3ee24589 balance_sheet: Correct "release from restrictions" calculation.
The old version was causing Income:Donations:Released postings to be
"double-released." This version gets the bottom line numbers for
Net Assets With/out Donor Restrictions match the corresponding numbers
in the fund report.
2020-08-18 16:26:12 -04:00
Brett Smith
a0ff9e6834 balance_sheet: Support arbitrary date ranges.
This lets you do year-over-year comparisons of smaller ranges of time, like
a quarter.
2020-08-18 15:15:02 -04:00
Brett Smith
9e7df0b020 balance_sheet: Fix typo in report. 2020-08-18 15:13:31 -04:00
Brett Smith
5c7cf9cd2a balance_sheet: Sort trial balance accounts.
They were previously sorted by date, then name, which is slightly less
helpful.
2020-08-18 14:20:16 -04:00
Brett Smith
950536e4f1 balance_sheet: Transform "chart of accounts" into trial balances.
It was mostly this already, just needed to add a column and change the
title.
2020-08-18 13:22:07 -04:00
Brett Smith
ee40b5b5c2 balance_sheet: Add chart of accounts. 2020-08-18 10:13:30 -04:00
Brett Smith
6159870681 balance_sheet: Refactor out Report.write_totals_row method. 2020-08-18 04:16:08 -04:00
Brett Smith
b7dee6a88a balance_sheet: Refactor out Report.write_classifications_by_account. 2020-08-18 03:27:27 -04:00
Brett Smith
90ae343a1a balance_sheet: Refactor out Report.start_sheet method. 2020-08-18 02:02:54 -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