Brett Smith
0caf78436f
accrual: Generate an aging report in more cases.
...
Default to generating an aging report unless the user searched for a
specific RT ticket or invoice.
2020-06-17 15:32:08 -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
7660700e6c
cliutil: Add date_arg() function.
...
Meant to be used as an argument type.
2020-06-15 18:11:39 -04:00
Brett Smith
4a28596db2
data: bank-statement and tax-statement are link metadata.
...
Not including them earlier was an oversight.
2020-06-15 18:08:18 -04:00
Brett Smith
582316ae85
data: Add Metadata.report_links() method.
...
This is just a variant of get_links() that eats TypeError.
Higher-level reporting code often wants it.
2020-06-15 14:19:10 -04:00
Brett Smith
72f58d80d7
reports: BaseODS.currency_cell() sets default style.
...
It'll be rare we don't want this.
2020-06-15 14:09:42 -04:00
Brett Smith
8333ed8876
reports: Add RelatedPostings.group_by_account() classmethod.
2020-06-15 11:20:30 -04:00
Brett Smith
ccc3a829da
reports: Add RelatedPostings.balance_at_cost_by_date() method.
2020-06-15 10:38:26 -04:00
Brett Smith
b2e35d098a
reports: Add Balance subtraction methods.
2020-06-15 10:16:34 -04:00
Brett Smith
f21ac740f2
data: Add Posting.at_cost() method.
2020-06-15 10:16:34 -04:00
Brett Smith
a2ee9c73fe
ranges: Start module.
...
The ledger report wants to use this functionality, so make it available in a
higher-level module.
I took the opportunity to clean up a lot of the surrounding type
declarations. It is less flexible, since it relies on the static list of
types in RangeT, but I don't think the other method actually worked at all
except by cheating with generic Any.
2020-06-15 09:14:42 -04:00
Brett Smith
760e0a8cd9
reports: Add column width styles to BaseODS.
2020-06-14 08:53:27 -04:00
Brett Smith
71d671e493
data: Add Metadata.human_name() classmethod.
2020-06-14 08:53:27 -04:00
Brett Smith
9a7b9de08d
test_reports_accrual: Clean imports.
2020-06-13 16:10:52 -04:00
Brett Smith
aff1fc537d
reports: Add BaseODS.meta_links_cell() method.
2020-06-12 17:10:25 -04:00
Brett Smith
17c5468a7d
reports: ODS links default to using URL as link text.
2020-06-12 16:42:54 -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
d6559b572f
accrual: Aging report uses RT short links for all RT link text.
...
Per user request. This is better than saying "Display.html" everywhere.
2020-06-12 15:54:50 -04:00
Brett Smith
4ca188611f
rtutil: Add RT.unparse() classmethod.
2020-06-12 15:54:38 -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
2a33e17892
accrual: Clean up comments.
2020-06-12 14:34:41 -04:00
Brett Smith
5706273bbe
accrual: Clean up types and imports.
...
Mostly I wanted to write the documentation about groups, and then
I kept pulling the thread.
2020-06-12 13:24:25 -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
8d7a2b1eea
accrual: Add AccrualPostings.rt_id property.
...
This is like the existing attributes, but it only supports the outgoings
report, so don't build it at __init__ time.
2020-06-11 14:22:11 -04:00
Brett Smith
52fc0d1b5f
reports: Add RelatedPostings.group_by_first_meta_link() method.
2020-06-11 14:01:19 -04:00
Brett Smith
f52ad4fbc1
reports: Add RelatedPostings.first_meta_links() method.
...
Basically moving this from AccrualPostings into the superclass.
2020-06-11 13:07:14 -04:00
Brett Smith
1cbc9d3dc9
tests: Add _meta_type kwarg to testutil.Posting.
2020-06-11 13:07:14 -04:00
Brett Smith
f76fa35fad
reports: RelatedPostings.all_meta_links() returns an iterator.
...
This preserves order.
2020-06-11 10:46:06 -04:00
Brett Smith
e3dceb601c
filters: Add iter_unique() function.
2020-06-11 10:46:06 -04:00
Brett Smith
9c33517583
data: Add Metadata.first_link() method.
2020-06-11 10:44:05 -04:00
Brett Smith
4b6a27496d
accrual: Clean unused imports.
2020-06-10 16:14:07 -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
8250f0a8ef
filters: Add audit_date() function.
2020-06-10 15:59:56 -04:00
Brett Smith
944c19da8d
books: Add date-fetching methods to FiscalYear.
2020-06-10 15:59:56 -04:00
Brett Smith
d3ef19c5f6
setup: Version bump for latest bugfix.
2020-06-09 17:06:39 -04:00
Brett Smith
6e9a612bb7
accrual: Aging report filters out too-recent accruals. RT#11600.
2020-06-09 17:05:36 -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
f192d250e7
accrual: More detailed text for "total aged" lines in aging report.
...
Per bkuhn's request.
2020-06-09 15:04:41 -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
581046f988
reports: Balance.format() respects tolerance.
2020-06-09 09:04:27 -04:00
Brett Smith
cd1766adcf
reports: Balance.__eq__ respects tolerance.
2020-06-09 09:04:27 -04:00
Brett Smith
110e5038e1
reports: Balance.__init__ better handles multiple amounts of same currency.
...
This is something that should've happened with 3d704e286
but I didn't think of it at the time.
2020-06-09 09:04:27 -04:00
Brett Smith
a23d075add
books: Add Loader.load_none() method.
2020-06-09 09:04:27 -04:00