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
42d2002fda
reports: Balance.format(None) uses accounting formats.
2020-06-21 11:39:31 -04:00
Brett Smith
5e9e11923e
reports: Add account_balances() function.
2020-06-20 22:51:02 -04:00
Brett Smith
6213bc1e5d
reports: Add PeriodPostings class.
...
This is AccountPostings from the ledger report, cleaned up to be more
general.
2020-06-20 19:04:53 -04:00
Brett Smith
7a9bc2da50
reports: Add sort_and_filter_accounts() function.
...
Extracted from the ledger report.
2020-06-20 09:11:01 -04:00
Brett Smith
5b68312924
tests: Add tests for Balance.copy() tolerance handling.
...
I wrote the changes to Balance.format() before the dependent changes to
Balance.copy(), so I was sort of counting on them to be implicitly
tested. But they should be explicit.
2020-06-20 09:11:01 -04:00
Brett Smith
7f3a26b555
reports: Balance.format() accepts zero argument.
...
This change has the same motivation as the recent change to
BaseODS.balance_cell(): try to preserve currency information when it's
available.
2020-06-18 14:07:44 -04:00
Brett Smith
0f7a154ff4
reports: Balance cells try to retain currency on zero balance.
2020-06-18 10:07:10 -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
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
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
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
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
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
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
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
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
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
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
2bd3e8b462
books: Loader.from_all() accepts a start FY argument.
2020-06-04 09:03:10 -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
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
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
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
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
fea306b278
books.Loader: Ensure load_all properly sorts in chronological order.
...
The test changes make them order-sensitive, which they should be.
It's important that our loader methods return date-sorted entries
just like Beancount itself would.
2020-05-25 11:16:17 -04:00
Brett Smith
9595d3334d
books: Add Loader.load_all method.
2020-05-25 10:38:02 -04:00
Brett Smith
6801d12359
tests: Remove unused import.
2020-05-25 10:38:02 -04:00
Brett Smith
b7aae7b3c0
reports.accrual: Exclude payments from default output. RT#11294.
...
This makes the output more useful for broad searches like on an
entity. Invoices that cross FY boundaries will appear to be paid
without being accrued, and so would appear when we were just
filtering zeroed-out invoices.
If we integrate the aging report into this module in the future,
that'll need to follow different logic, and just filter out
zeroed-out invoices. But the basic balance report and outgoing
report are more workaday tools, where more filtering makes them
more useful.
2020-05-23 10:13:17 -04:00
Brett Smith
13df0390a1
tests: Generate configuration in accrual-report tests.
...
Usually reduces the amount of testing boilerplate.
2020-05-23 08:49:20 -04:00
Brett Smith
396173b55d
reports.Balance: Add eq_zero, ge_zero, and le_zero methods.
...
Support for RT#11294.
2020-05-21 23:10:03 -04:00
Brett Smith
552ef45f47
plugin: Be more selective about when ! skips validation.
...
It makes sense to let the bookkeeper skip validations in situations
where the metadata requires information that might not be available
when entered. It does not make sense to skip validations that *must*
be available and affect the structure of the books, like project and
entity.
This commit ensures every plugin hook has a test for flagged
transactions, even for hooks that currently have the desired
behavior where no code changes were required for the test to
pass.
2020-05-21 21:58:48 -04:00
Brett Smith
e3e782c028
tests: Style cleanup.
2020-05-21 21:57:29 -04:00
Brett Smith
b8d76ec5a0
meta_entity: Don't validate entries out of date range.
2020-05-19 10:30:50 -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
f64143db44
accrual: Outgoing report handles requestors without RealName.
2020-05-18 14:44:34 -04:00
Brett Smith
18800b249d
config: Let user specify books dir with ~.
2020-05-17 14:52:23 -04:00
Brett Smith
55de5627f2
reports.accrual: Outgoing report uses payment-to custom field. RT#10656.
2020-05-16 11:31:00 -04:00
Brett Smith
aa488effb0
books.Loader: New loading strategy based on load_file. RT#11034.
...
Building a string and loading it means Beancount can never cache any
load. It only caches top-level file loads because options in the
top-level file can change the semantics of included entries.
Instead use load_file as much as possible, and filter entries as
needed.
2020-05-16 10:29:06 -04:00
Brett Smith
1e09339b32
config: Make payment threshold configurable.
2020-05-16 09:51:02 -04:00
Brett Smith
2b7c1acff4
meta_receipt: Allow invoice as fallback documentation for checking credits.
...
We need this for incoming ACH where there is neither a receipt nor check.
2020-05-15 16:48:45 -04:00
Brett Smith
51db04dc20
test_meta_receipt: Prepare for multiple fallback meta keys.
2020-05-15 16:46:20 -04:00
Brett Smith
66cd27e7f0
test_rtutil: Capture debug logs for test_read_only_cache.
...
To help with SUSE installation, RT#10543.
2020-05-13 10:25:24 -04:00
Brett Smith
30e386f645
test_rtutil: Implement our own nullcontext.
...
contextlib.nullcontext does not exist in Python 3.6.
2020-05-13 10:12:08 -04:00
Brett Smith
536b50b478
plugin: Don't validate transactions flagged with !. RT#10591.
2020-05-11 09:52:05 -04:00
Brett Smith
56b644f1db
meta_entity: More battle testing.
...
See the test cases for examples of real entities in the books
that we should accept for now.
2020-05-06 10:26:25 -04:00
Brett Smith
072937eff5
books.Loader: New loading strategy.
...
The old loading strategy didn't load options, which yielded some
spurious errors. It also created awkward duplication of plugin
information in the code as well as the books.
Implement a new loading strategy that works by reading one of the
"main files" under the books/ subdirectory and includes entries
for additional FYs beyond that.
This is still not ideal in a lot of ways. In particular, Beancount can't
cache any results, causing any load to be slower than it theoretically could
be. I expect more commits to follow. But some of them might require
restructuring the books, and that should happen separately.
2020-05-05 14:31:08 -04:00
Brett Smith
ca1f6d0059
tests: Add accruals.beancount required for tests in last commit.
2020-05-05 14:30:39 -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
e429a6c6fd
meta_approval: Not required for chargebacks. RT#10978.
2020-05-01 16:24:24 -04:00
Brett Smith
23e1ed7cee
Revert "meta_receipt: Don't check chargebacks. RT#10978."
...
This reverts commit 6aadb740e6
.
This is supposed to be done in meta_approval, not meta_receipt.
2020-05-01 16:20:22 -04:00
Brett Smith
6aadb740e6
meta_receipt: Don't check chargebacks. RT#10978.
2020-05-01 16:18:46 -04:00
Brett Smith
be35f36d26
meta_tax_implication: Add Chargeback value.
2020-05-01 15:54:40 -04:00
Brett Smith
08a3151bfa
meta_tax_implication: Remove unused values.
2020-05-01 15:52:27 -04:00
Brett Smith
1b81375294
reports: Add Balance.__neg__() method.
2020-04-29 14:35:20 -04:00
Brett Smith
68acb86e7e
reports: Add Balance.__str__() method.
2020-04-29 11:37:38 -04:00
Brett Smith
5a1f7122bd
rtutil: Add RT.iter_urls() method.
2020-04-29 11:23:48 -04:00
Brett Smith
9fef177d2d
reports: Add RelatedPostings.all_meta_links() method.
2020-04-29 10:12:08 -04:00
Brett Smith
46ac91e86e
test_rtutil: Simplify setup.
2020-04-28 17:20:59 -04:00
Brett Smith
999ca2c5e1
rtutil: Add RT.txn_with_urls() method.
2020-04-28 16:20:25 -04:00
Brett Smith
701ccdc192
tests: Test where Transactions are real NamedTuples.
...
This makes methods like _replace available in real code, and caught the
bug where we can't use @functools.lru_cache with Transaction arguments,
because they're unhashable due to their mutable members.
2020-04-28 15:33:30 -04:00
Brett Smith
d01df054ab
reports: Let RelatedPostings be initialized with an Iterable[Posting].
2020-04-27 15:51:30 -04:00
Brett Smith
bd00822b8f
reports: Add RelatedPostings.group_by_meta() classmethod.
2020-04-24 13:37:35 -04:00
Brett Smith
fdd067b10e
tests: Add sample configuration file.
...
This should've been included in 7f45788
.
2020-04-23 11:41:07 -04:00
Brett Smith
d8507a1a35
rtutil: Add RTUtil.metadata_regexp() classmethod.
...
The accruals check script wants to be able to search RT links in
all kinds of metadata, not just rt-id as the filter currently
handles.
2020-04-23 10:27:47 -04:00
Brett Smith
d41bc5e9b6
reports: Add RelatedPostings.clear() method.
2020-04-22 12:02:06 -04:00
Brett Smith
ed4258daf7
reports: Add RelatedPostings.meta_values() method.
...
This corresponds to the ledtag_onevalue check in the
payment-report and income-report scripts.
2020-04-22 11:59:12 -04:00
Brett Smith
54a1bc4600
filters: Add filter_for_rt_id function.
2020-04-22 10:59:12 -04:00
Brett Smith
4420873c96
filters: Add filter_meta_match function.
2020-04-22 10:34:55 -04:00
Brett Smith
26762e11ef
test_filters: Test non-string metadata values.
2020-04-22 10:31:52 -04:00
Brett Smith
cc03c4beb6
filters: Add filter_meta_equal function.
2020-04-22 10:04:24 -04:00
Brett Smith
99dbd1ac95
tests: Promote date_seq to testutil.
2020-04-22 09:17:58 -04:00
Brett Smith
8d584734ec
data: Add Posting.from_entries() method.
2020-04-21 15:24:04 -04:00
Brett Smith
3000aeee09
config: Add Config.books_loader() method.
2020-04-21 13:35:56 -04:00
Brett Smith
96a363633f
books: Add Loader.load_fy_range() method.
2020-04-21 11:58:28 -04:00
Brett Smith
855c1c2bf0
books: Start Loader class.
2020-04-21 10:47:13 -04:00
Brett Smith
51137815d3
config: fiscal_year_begin returns a FiscalYear.
2020-04-21 09:07:14 -04:00
Brett Smith
5c60666619
books: Start FiscalYear class.
2020-04-20 17:20:26 -04:00
Brett Smith
894f044093
config: Add Config.fiscal_year_begin() method.
2020-04-20 14:31:22 -04:00
Brett Smith
7f45788235
config: Start configuration file with books path.
...
Ultimately I would like to make it possible to configure the software
entirely through this file, rather than the hodgepodge system we have
now. But that can come later.
2020-04-12 22:27:52 -04:00
Brett Smith
8fa9a0ffe6
tests: Set XDG_CONFIG_HOME for safety.
2020-04-12 22:24:34 -04:00
Brett Smith
b28646aa12
core.RelatedPostings: Add iter_with_balance method.
...
payment-report and accrual-report query to find the last date a
series of postings had a non/zero balance. This method is a good
building block for that.
2020-04-12 15:18:19 -04:00
Brett Smith
5aa30e5456
reports.core: Start Balance class.
2020-04-12 14:56:00 -04:00
Brett Smith
219cd4bc37
reports.core: Start RelatedPostings class.
2020-04-12 09:47:41 -04:00