Commit graph

130 commits

Author SHA1 Message Date
Brett Smith
7281cf0f01 audit_report: New tool. 2020-08-30 22:34:32 -04:00
Brett Smith
dfdb9b65d5 accrual: Add total divider lines. 2020-08-22 12:39:43 -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
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
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
07757e7717 balance_sheet: Add cash flows report.
With this, the balance sheet report has all the reports from the audit.
2020-08-17 17:09:31 -04:00
Brett Smith
eaaf8fe98c balance_sheet: Add functional expenses report. 2020-08-17 15:28:08 -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
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
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
88ae03302f ledger: Add memo column to Income sheets.
Quick accommodation for project reporting.
2020-07-16 16:33:18 -04:00
Brett Smith
0e8745bf51 ledger: Include all fund accounts in default project ledger reports.
This brings the reporting into sync with the fund report.
2020-07-15 10:14:46 -04:00
Brett Smith
a8a3f9d12b accrual: Better error handling and reporting around payment-method. 2020-07-02 10:56:51 -04:00
Brett Smith
b25bea0fc6 fund: Swap Unearned Income and Payable columns.
Unearned Income is more interesting.
2020-07-01 15:59:55 -04:00
Brett Smith
7a0fa4fb57 accrual: Wire is a single payment method. 2020-07-01 13:43:58 -04:00
Brett Smith
42b3e6ca17 accruals: Aging report shows all unpaid accruals color coded by age.
Some readers care about recent accruals, some don't. This presentation
accommmodates both audiences, providing the data while making it easy to
ignore or filter out recent accruals.
2020-07-01 12:00:17 -04:00
Brett Smith
f7d24cd8ab fund: ODS report usability improvements.
* Lock the first column.
* Open the breakdown sheet by default.
2020-06-29 09:39:41 -04:00
Brett Smith
138928eebf fund: Omit unreportable rows from the fund report sheet. 2020-06-27 21:37:14 -04:00
Brett Smith
b1a46d6ef6 plugin: Validate FY19. 2020-06-26 10:34:50 -04:00
Brett Smith
cd5d98eb4d setup: Bump version for income_type update. 2020-06-25 13:57:44 -04:00
Brett Smith
f3c68ff462 opening_balances: New tool. 2020-06-25 10:51:37 -04:00
Brett Smith
fd548f35f4 accrual: Be case-insensitive when gathering payment-method.
This is a little nicer for the user, and lets us simplify surrounding
case-handling code.
2020-06-23 16:46:31 -04:00
Brett Smith
5085d4d8ef accrual: Outgoing report sets RT CFs for outgoing payment. 2020-06-23 14:47:03 -04:00
Brett Smith
f9411e0ffe meta_receipt: Not required on interest income. RT#11695. 2020-06-22 16:34:06 -04:00
Brett Smith
887102ea92 fund: New report. 2020-06-21 18:07:44 -04:00
Brett Smith
7441f4ef0c ledger: Correct period totals. RT#11661.
The period totals were reporting the balance of all the loaded postings, not
just the ones in the reporting date range.

Like the accrual report, introduce a RelatedPostings subclass that records
and saves all the information we need at group definition time, to help us
get it consistently right rather than redoing the same math over and over.
2020-06-17 18:25:47 -04:00
Brett Smith
d7e2ab34b9 meta_project: Force the default project on Equity accounts.
See rationale in comments.
2020-06-17 04:29:17 -04:00
Brett Smith
8b8bdc0225 reports: Add BaseODS.column_style() method.
Use this to provide more consistent column styles throughout the reports.
2020-06-16 22:41:13 -04:00
Brett Smith
cf2833ee20 plugin: Load user configuration file. 2020-06-16 15:10:19 -04:00
Brett Smith
b1f82badf7 config: Get repository directory from config file.
One less thing users have to fiddle with to get set up.
2020-06-16 14:42:09 -04:00
Brett Smith
efe9bd8855 ledger: Change default report dates.
The old defaults were optimized for the audit report.
The new defaults provide more helpful ad hoc reports.
The latter will be run more often and more quickly, so it's
worth optimizing the defaults for them.
2020-06-16 13:31:46 -04:00
Brett Smith
9782e7203a ledger: New reporting module. 2020-06-16 10:18:18 -04:00
Brett Smith
aff1fc537d reports: Add BaseODS.meta_links_cell() method. 2020-06-12 17:10:25 -04:00
Brett Smith
44946a061d accrual: Aging report is written to repository path by default.
Opening it here is necessary for repository links to work anyway.
2020-06-12 15:56:29 -04:00
Brett Smith
cd578289c4 cliutil: Add make_entry_point() function.
This provides better logging setup, reduces the amount of boilerplate in
main, and replaces is_main_script().
2020-06-12 15:08:08 -04:00
Brett Smith
3330c834b2 accrual: Only try to generate an outgoing report for accruals with rt-id. 2020-06-12 10:51:29 -04:00
Brett Smith
1124842ea7 accrual: Actually use RT caching as intended.
Basically none of the reports were reading or writing the RT link cache
because they didn't instantiate an rtutil.RT properly to do that.
2020-06-11 16:29:18 -04:00
Brett Smith
175ac3bd7a accrual: Outgoing report groups by rt-id. RT#11594. 2020-06-11 15:27:36 -04:00
Brett Smith
5859421a15 accrual: Remove the consistency checker.
Everything it said was a problem has been done legitimately in our books at
one point or another.

* Variation in contract can happen in different line items of an invoice or
  "group of contractor" situations.

* Variation in cost can happen because one invoice spans a period of time,
  like donation matching programs. There is probably still value in a tool
  that checks to make sure we use consistent rates each day, but that
  affects all kinds of transactions, not just accruals, so it would be
  done better in a separate tool.

* Variation in account happens because invoices legitimately span accrual
  accounts, like donation matching programs with fees payable.

So: it's gone, good riddance.
2020-06-10 16:03:08 -04:00
Brett Smith
d3ef19c5f6 setup: Version bump for latest bugfix. 2020-06-09 17:06:39 -04:00
Brett Smith
948d3a2d14 accrual: Add columns to the aging report. RT#11439.
This adds almost all the metadata that's relevant to accruals.
I considered adding statement, but that cuased rows to get spaced out a lot,
and statement's kind of a low-value column, so I decided against it.

Ultimately I would like to make this configurable but that's for the
future.
2020-06-09 15:59:09 -04:00
Brett Smith
ba8aaaa988 accrual: Aging report uses group since last nonzero. RT#11600.
This makes it consistent with our other reports. The fact that it wasn't
already was basically an oversight.
2020-06-09 14:52:55 -04:00
Brett Smith
8dc6894ce7 accrual: Outgoing report uses first rt-id as primary ticket number.
This makes it consistent with the reporting and our general rule
that the first link is primary.
2020-06-08 16:38:42 -04:00
Brett Smith
e22e63dcca accrual: Make accruals consistent by entity on the accrual side.
It is more common than I realized that we split an invoice by
entity on the accrual side, so this supports that better.

It still disregards inconsistency between accrual entity and payment entity
for reporting purposes, to help keep reporting clean around automatic
imports.

The changes to BaseReport._report shook out because at this point, the group
key is effectively arbitrary and shouldn't be used for any reporting
purposes.
2020-06-05 10:54:35 -04:00
Brett Smith
8cf829cc51 setup: Version bump for most recent bugfix. 2020-06-05 09:11:31 -04:00
Brett Smith
38cea37715 accrual: Load all books since args.since.
This lets the tool find and report accruals in the future.
2020-06-04 09:03:37 -04:00
Brett Smith
f8f57428aa accrual: Introduce aging report. RT#10694. 2020-06-03 22:20:37 -04:00
Brett Smith
70057fe383 reports: Start BaseODS class. 2020-06-03 21:24:47 -04:00
Brett Smith
aef00ce83f accrual: Check the consistency of accruals' cost. 2020-05-30 10:35:29 -04:00
Brett Smith
e07a47ec8f accrual: Use cliutil for better logging and error reporting. 2020-05-29 22:05:26 -04:00
Brett Smith
f66460f343 accrual: Outgoing report includes total at cost. 2020-05-28 09:05:18 -04:00
Brett Smith
2c44cc8f50 reports: Add Balance.format() method. 2020-05-28 09:03:19 -04:00
Brett Smith
8f014df515 setup: Document Debian packages for dependencies when available. 2020-05-25 11:16:57 -04:00
Brett Smith
1286cc2200 setup: Version bump for validation changes. 2020-05-21 23:00:06 -04:00
Brett Smith
47235f694c accrual: Outgoing report doesn't put RT web links in < >.
The RT web interface doesn't handle angle brackets well, making the
`>` part of the link.
2020-05-18 17:05:01 -04:00
Brett Smith
b142e8fc31 accrual: Bugfix last commit. 2020-05-18 15:31:00 -04:00
Brett Smith
f64143db44 accrual: Outgoing report handles requestors without RealName. 2020-05-18 14:44:34 -04:00
Brett Smith
a8a1a53c7c accrual: Nicer whitespace in outgoing report. 2020-05-18 09:25:04 -04:00
Brett Smith
dcbac5db98 setup: Install subpackages. 2020-05-18 09:21:08 -04:00
Brett Smith
912c6f3de1 setup: 1.0 release. 2020-05-18 08:39:11 -04:00
Brett Smith
ad81c45f2a reports.accrual: Begin reporting.
This module basically reimplements the old payment-report+income-report,
in a single tool (after setting aside some of the checks that have moved
to the plugin). The aging report can be implemented here too when we need
that.
2020-05-04 16:36:59 -04:00
Brett Smith
18a513a694 setup: Add overlooked PyYAML dependency.
Needed by meta_repo_links.
2020-04-06 14:32:41 -04:00
Brett Smith
499f18ff62 meta_entity: Adjust what entities are allowed based on today's books.
See the comments throughout for more discussion about what cases are
or aren't allowed, and why.
2020-04-01 13:38:37 -04:00
Brett Smith
f09f029fc4 config: Add Config.rt_client method. 2020-03-24 09:08:08 -04:00
Brett Smith
1caeb9a1a6 setup: Introduce typecheck alias. 2020-03-18 08:20:45 -04:00
Brett Smith
c5dd7984bc Initial commit: license, setup.py, gitignore, skeleton structure. 2020-03-05 09:33:23 -05:00