Commit graph

279 commits

Author SHA1 Message Date
Brett Smith
a23d075add books: Add Loader.load_none() method. 2020-06-09 09:04:27 -04:00
Brett Smith
8d3d7e7ce4 data: Add part slicing methods to Account. 2020-06-09 09:04:27 -04:00
Brett Smith
2b5cb0eca6 cliutil: Add bytes_output() and text_output() functions. 2020-06-09 09:04:27 -04:00
Brett Smith
04c804a506 books: Remove unused workdir() function. 2020-06-09 09:04:27 -04:00
Brett Smith
0581525c98 reports: Add Balance.__pos__() method.
I did this while I was working on normalize_amount_func.
It turns out it's not immediately needed, but it's still nice to have.
2020-06-09 09:04:27 -04:00
Brett Smith
e26dffa214 reports: Add normalize_amount_func() function. 2020-06-09 09:04:27 -04:00
Brett Smith
cd1b28ae3e cliutil: Add generalized SearchTerm class.
This makes the same filtering easily available to other reporting tools for
consistency.
2020-06-09 09:04:27 -04:00
Brett Smith
0431d15d68 tests: Explain change to accruals.beancount from the last commit. 2020-06-09 09:04:01 -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
87760f6aea accrual: Clean up typing after recent bugfix. 2020-06-05 10:01:36 -04:00
Brett Smith
8cf829cc51 setup: Version bump for most recent bugfix. 2020-06-05 09:11:31 -04:00
Brett Smith
0b3eb1d1d3 accrual: Inconsistent entity is not an error. 2020-06-05 09:10:48 -04:00
Brett Smith
39fa977f71 reports: Balance.le/ge_zero returns False when exactly at tolerance. 2020-06-04 10:49:55 -04:00
Brett Smith
95ba1638d2 filters: remove_opening_balance_txn does replacement instead of del. 2020-06-04 09:49:39 -04:00
Brett Smith
5601ece2ac tests: books.Loader tests do more bounds checking. 2020-06-04 09:15:23 -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
2bd3e8b462 books: Loader.from_all() accepts a start FY argument. 2020-06-04 09:03:10 -04:00
Brett Smith
8dbe807efb setup: Move tox.ini to setup.cfg. 2020-06-03 22:27:49 -04:00
Brett Smith
4cba2b2681 reports: Balance has built-in tolerance for zero comparisons. 2020-06-03 22:20: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
d920c5842a reports: Start BaseSpreadsheet class. 2020-06-03 21:24:47 -04:00
Brett Smith
c88c5ef3b0 accruals: AccrualPostings only reports inconsistent cost per currency.
Of course if an accrual has multiple currencies, it'll probably have
different costs, and that's fine.
2020-06-03 21:24:47 -04:00
Brett Smith
3d704e2865 reports: Balance is initialized with just amounts.
This works fine with how we're currently using it, makes transformation
methods easier to implement, and avoids potential bugs where a balance is
initialized with a bad mapping.
2020-06-03 18:54:12 -04:00
Brett Smith
069939b2d3 reports: Balance classes support addition. 2020-06-03 18:53:17 -04:00
Brett Smith
cc0656dde9 reports: Add Balance.__abs__() method. 2020-06-03 18:52:44 -04:00
Brett Smith
58b02b6f33 accrual: Move more functionality into AccrualPostings. 2020-06-03 18:51:48 -04:00
Brett Smith
677c99b565 accrual: Filter opening balance txn before main reporting.
So far we've been implicitly relying on this by the user passing search
terms that filter out the opening balance transaction. That will stop
happening with the aging report, so we need to do it ourselves.
2020-06-03 18:51:48 -04:00
Brett Smith
39c9c0d83a reports: Add RelatedPostings.__repr__() method. 2020-06-03 18:51:44 -04:00
Brett Smith
7301bfc099 accrual: Add AccrualPostings.make_consistent() method.
This will help the aging report better render dirty data.
2020-06-03 18:51:44 -04:00
Brett Smith
b37d7a3024 reports: Make RelatedPostings an immutable data structure.
This was an early mistake, it makes data consistency mistakes too
easy, and I only used it once so far in actual code. Going to fix
this now so I can more safely build on top of this data structure.
2020-06-03 18:51:38 -04:00
Brett Smith
dd949a4866 reports: Define RelatedPostings.__slots__. 2020-05-30 10:40:24 -04:00
Brett Smith
aef00ce83f accrual: Check the consistency of accruals' cost. 2020-05-30 10:35:29 -04:00
Brett Smith
a008a09477 filters: Add remove_opening_balance_txn. 2020-05-30 08:30:07 -04:00
Brett Smith
32b62df540 cliutil: Better implementation of is_main_script.
The old one could return True if you called accrual.main()
directly from one-off test scripts.
2020-05-29 23:39:27 -04:00
Brett Smith
e07a47ec8f accrual: Use cliutil for better logging and error reporting. 2020-05-29 22:05:26 -04:00
Brett Smith
3fbd05d553 cliutil: Add is_main_script function. 2020-05-29 22:05:26 -04:00
Brett Smith
2b550a2037 cliutil: Start module.
We're probably going to have a small handful of reporting tools.
This module has all the stuff I end up putting in all of them.
2020-05-29 22:05:26 -04:00
Brett Smith
3a0b85c8f0 tests: Add test for trying to make outgoing report without rt-id.
Changes to other test cases are to make them *not* trip up this
error after adding it to the books.
2020-05-28 17:03:52 -04:00
Brett Smith
d3e0a38073 accrual: Introduce logging infrastructure. 2020-05-28 16:42:36 -04:00
Brett Smith
8b2683d962 accrual: Refactor reports into classes.
Preparation for introducing the aging report. This helps us
distinguish each report's setup requirements (different __init__ arguments).
2020-05-28 15:52:10 -04:00
Brett Smith
9223940213 tests: Refactor accrual tests.
Preparation for adding the aging report.
2020-05-28 15:52:09 -04:00
Brett Smith
eaae2b4a44 tests: Set locale environment variables.
To help tests get consistent formatting of currency.
2020-05-28 15:52:09 -04:00
Brett Smith
f66460f343 accrual: Outgoing report includes total at cost. 2020-05-28 09:05:18 -04:00
Brett Smith
d8df34ebaf reports: Balance.format() accepts None as a format. 2020-05-28 09:03:23 -04:00
Brett Smith
2c44cc8f50 reports: Add Balance.format() method. 2020-05-28 09:03:19 -04:00
Brett Smith
3780c31c59 reports: Add Balance.__eq__() method.
It turns out the provided implementation gets us most of the way there,
we just needed to add handling for the special case of zero balances.
Now it's confirmed with tests.
2020-05-28 09:01:00 -04:00
Brett Smith
81d216f282 reports: Add RelatedPostings.balance_at_cost() method.
This makes it easy to get results similar to `ledger -V`.
2020-05-28 09:01:00 -04:00
Brett Smith
52fa66bba1 data: Specify the type of Posting.cost.
The rationale is the same as it was for Posting.amount.
2020-05-28 09:01:00 -04:00