Commit graph

556 commits

Author SHA1 Message Date
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
04be991e19 reports: Add BaseODS.set_custom_property() method. 2020-07-29 16:58:57 -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
6960425571 ledger: Prepare LedgerODS for subclasses.
This commit reorganized the class internals to make it more straightforward
to add a transaction-oriented reporting subclass.
2020-07-22 11:15:31 -04:00
Brett Smith
56114cc66e accrual: Support limited punctuation in payment-method. 2020-07-21 13:20:58 -04:00
Brett Smith
a008c84e45 accrual: Add E-Check payment method. 2020-07-21 13:15:41 -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
6f1d01a3d4 ledger: Improve sheet size math. 2020-07-17 11:00:33 -04:00
Brett Smith
e5aa63996a ledger: Include balances for accounts without activity. 2020-07-17 10:56:12 -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
88ae03302f ledger: Add memo column to Income sheets.
Quick accommodation for project reporting.
2020-07-16 16:33:18 -04:00
Brett Smith
97d813972b books: Loader.load_none() returns default options_map.
This way it's still safe to assume all the expected keys are there.
2020-07-16 15:37:11 -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
Brett Smith
fd3bd68326 data: Add Account iteration methods. 2020-07-16 13:51:23 -04:00
Brett Smith
87e715df7c tests: Make clean_account_meta a teardown fixture. 2020-07-16 10:39:48 -04:00
Brett Smith
df0c3546fd data: Add Account.load_from_books convenience classmethod. 2020-07-16 10:39:31 -04:00
Brett Smith
fff9e37bf8 data: Add Account.is_account and Account.load_options_map.
These work in concert to distinguish account names from other
colon-separated strings.
2020-07-16 10:11:39 -04:00
Brett Smith
6a7815090c data: Add AccountMeta class. 2020-07-15 10:27:05 -04:00
Brett Smith
a19b3fb6c4 setup: Incorporate pytest.ini. 2020-07-15 10:27:05 -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
69d079190c tests: Test non-string values for payment-method metadata. 2020-07-02 13:08:21 -04:00
Brett Smith
638bc8ccbb accrual: Make comment not an actual type:ignore. 2020-07-02 13:07:59 -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
b41249bec6 fund: Clean unused import. 2020-07-01 15:59:16 -04:00
Brett Smith
ceb0c451fa fund: Improve type signature. 2020-07-01 15:57:58 -04:00
Brett Smith
7702a1f03c fund: Add bottom line totals to Fund Report. RT#4582.
This required keeping the balances from write_row, and then a lot of other
changes followed from that. In particular it makes more sense to build the
fund report sheet from scratch rather than copying the breakdowns report and
chiseling the fund report out of it.
2020-07-01 15:56:39 -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
c0a2d1c070 accrual: Rip out unnecessary functionality.
Now that make_consistent is really robust, there's much less need to do all
the consistency checking that was done in AccrualPostings.__init__. I expect
this will provide a performance benefit for large reports, since we'll be
calculating data for many fewer accrual groups. The only performance penalty
I see is that the aging report has to calculate the balance three times for
each row it reports, twice in write() and once in write_row(), but that
seems okay and can be cached separately if needed.
2020-07-01 10:54:58 -04:00
Brett Smith
a5b3dc1463 accrual: AccrualPostings.make_consistent() groups accruals by date.
This accommodates cases of contracts without separate invoices,
where a series of payments are scheduled over time.

The dance we used to do of group-by-invoice, then make consistent was
already suspect. It was originally motivated by the consistency checks that
are now gone. Use this opportunity to clean up and just make make_consistent
a classmethod.
2020-07-01 09:50:20 -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
2c61f2b9f2 reports: Add BaseODS.set_open_sheet() method. 2020-06-29 09:38:04 -04:00
Brett Smith
8d3a0dbe4c reports: Add BaseODS.lock_first_column() method. 2020-06-29 09:20:59 -04:00
Brett Smith
d6821b1368 fund: Fund report columns more closely match the audit report. 2020-06-28 09:43:44 -04:00
Brett Smith
5978c2f0c2 reports: Remove BaseODS.style_dividerline.
Obsoleted by the new border_style() method.
2020-06-27 23:12:35 -04:00
Brett Smith
15becebf5c reports: Add BaseODS.border_style() method. 2020-06-27 23:08:23 -04:00
Brett Smith
138928eebf fund: Omit unreportable rows from the fund report sheet. 2020-06-27 21:37:14 -04:00