Commit graph

543 commits

Author SHA1 Message Date
Brett Smith
13c66e8ce2 pdfforms: Initial module and tool to extract PDF form data to YAML.
Next steps:

* A tool to fill the PDF form based on values written to that YAML.
* An extension to fill some of those values with numbers queried from the
  books (which is why we need something more involved than FDF).
2021-01-09 10:09:08 -05:00
Brett Smith
1b7fdf4f3b Clarify and organize license info including additional permission. 2021-01-08 16:58:04 -05:00
Brett Smith
71f50a6cf8 data: Bugfix is_opening_balance_txn() for donations from equity. RT#13516
Opening balance transactions should only include opening equity
accounts and non-equity accounts. Reflect that in the test.
2020-12-29 12:20:53 -05:00
Brett Smith
7abc01b1ac fund: Bugfix crash when text report has an empty balance.
This mostly happens when a date range includes the opening or closing of a
fund account, because then the reported beginning/ending balance is empty.
2020-12-29 10:53:55 -05:00
Brett Smith
e06b400998 meta_payroll_type: Prefer :Tax: over :Taxes: in metadata values.
This is something we're doing generally, e.g., in our chart of accounts.
Do it here too for consistency. Accept the :Taxes: versions as synonyms.
2020-12-23 18:31:32 -05:00
Brett Smith
7c18bc221f meta_payroll_type: Refactor for more code reuse. 2020-12-23 17:27:30 -05:00
Bradley M. Kuhn
9d41f79c52 meta_payroll_type: Basic validation support for payroll-type 2020-12-23 17:06:07 -05:00
Brett Smith
51eee8ec8f meta_entity: Don't set transaction metadata when payee is None. RT#12913 2020-11-04 13:43:54 -05:00
Brett Smith
770b22f2f0 reports: Initial budget variance skeleton. RT#12680
This is a *very* rough initial draft of a report. As the docstring mentions,
it's basically counting on the user to provide rewrite rules to provide the
desired representation.

Long-term I'm hoping maybe we can standardize the program metadata enough,
or plan its replacement well enough, that this report can be written against
that directly. But that will take more planning about books structure, and
support from the plugin, before the report can be written that way.
2020-10-26 14:57:15 -04:00
Brett Smith
2b23eba549 data: PostingMeta.detached() can be chain-called. 2020-10-26 14:52:41 -04:00
Brett Smith
f7883ac314 reports: Separate methods for Balances to get posting classification.
For easier subclass customization.
2020-10-24 11:54:46 -04:00
Brett Smith
69f597a47c rewrite: Support `metakey in value` conditions.
For now, works exactly like ``.account in value``.
2020-10-24 11:43:46 -04:00
Brett Smith
ea69d58957 tests: Test updates for accrual report changes in the last commit.
Where assertions are removed from individual tests, I believe that
functionality is covered by other tests (although probably not to the extent
of checking multiple splits).
2020-10-24 11:31:39 -04:00
Brett Smith
8ec3a12d5a accrual: Key on entity for Liabilities:Payable:Vacation.
The invoice metadata is less operative in this account.
2020-10-21 16:15:58 -04:00
Brett Smith
db3ba4fd4d accrual: Add Prepaid Expenses to aging report. 2020-10-21 11:33:27 -04:00
Brett Smith
56bfbe21c4 audit_report: Bugfix handling audit year specified as date. 2020-10-21 10:51:55 -04:00
Brett Smith
1cc4e732f4 accrual: Add --end option.
For assemble-audit-reports as shown.
2020-10-21 10:51:18 -04:00
Brett Smith
1fcab6af32 fund: Add totals rows to the full report.
This is easy to do with the current infrastructure, and it's nice to have.
2020-10-16 16:41:08 -04:00
Brett Smith
404a88de1d fund: Use Balances instead of PeriodPostings.
A few motivations for this:

* This makes the fund report more maintainable, because the data structure
  is better suited to the task at hand, making it easier to follow what's
  going on.

* This helps put Balances through a little more testing with a high-level
  report.

* This makes the fund report a little faster, since totals are usually
  calculated from a smaller number of Balance objects rather than all
  Postings over a period.
2020-10-16 16:29:05 -04:00
Brett Smith
5e147dc0b5 core: Balances lets the caller specify posting metadata to load. 2020-10-16 11:56:38 -04:00
Brett Smith
ffc20b6899 reports: Move Balance class and friends to core.
This will be used for the fund report and the upcoming budget variance
report.
2020-10-16 10:53:15 -04:00
Brett Smith
73bbc1e4ec data: Define EQUITY_ACCOUNTS and FUND_ACCOUNTS. 2020-10-16 10:05:23 -04:00
Brett Smith
97dbce5b4c balance_sheet: Remove transitional code for account-code column. 2020-10-06 14:33:01 -04:00
Brett Smith
fe52fe50a1 balance_sheet: Fix unwanted hierarchy traversal in Trial Balances.
The balances reported on the trial balances sheet included an account's
subaccounts. e.g., the balance for Expenses:A would include the balance
for Expenses:A:B. We don't want that traversal for this report, so
inhibit it and report only exact account balances.
2020-10-06 14:29:19 -04:00
Brett Smith
639a41b782 sort_entries: New tool. 2020-10-06 10:38:39 -04:00
Brett Smith
7baa78fe34 ledger: Add Equity back to default project report sheets.
While many projects often won't have anything here, this is necessary to
show project funds released from restrictions.
2020-09-22 10:20:51 -04:00
Brett Smith
f8758e2847 audit_report: More docstring. 2020-09-17 10:33:47 -04:00
Brett Smith
0054465ce5 audit_report: Use common rewrite rules argument for consistency. 2020-09-17 10:28:34 -04:00
Brett Smith
d9360f1cea audit_report: Use concurrent.futures for parallelization.
This is basically a pure maintainability change: concurrent.futures is the
nicest API that's available in both Python 3.6 and 3.7, and our other tools
are using it.
2020-09-17 10:24:13 -04:00
Brett Smith
ad96fdfa90 audit_report: Remove manifest generation.
We're basically always going to have a "packet build step," and it makes
more sense to have the manifest generated there, since it's the thing that
consumes the manifest, rather than here.
2020-09-17 10:07:24 -04:00
Brett Smith
f55fccd48d plugin: Add TransactionDate hook. RT#10566
This prevents mistakes where a transaction is entered in the wrong file for
its date (which in turns causes errors in reports).
2020-09-10 16:59:29 -04:00
Brett Smith
8bc17dbf4a meta_entity: Set metadata when entity comes from payee. RT#12525
This makes it easier to write bean-queries, since you don't have to check
two places for the "real" entity.
2020-09-10 16:06:43 -04:00
Brett Smith
e60078933d rewrite: Add docstring with user documentation. 2020-09-10 15:16:49 -04:00
Brett Smith
3219bf89d2 split_ods_links: New tool.
See docstring—this is mostly a post-filter to improve Excel compatibility.
2020-09-08 23:37:00 -04:00
Brett Smith
da056917bf meta_repo_links: Check all non-RT links. RT#12517
This is less "future-proof," but the thing is, it's premature to try
to anticipate what other link formats will be in the future. See
discussion in comments.
2020-09-05 14:59:13 -04:00
Brett Smith
c2851f5cc0 reports: URL-quote file links in spreadsheets. RT#12517
This was already done correctly in RT links because rtutil takes care of the
quoting. The fact that we weren't doing it for file links was an oversight.
2020-09-05 14:48:48 -04:00
Brett Smith
de10197af7 reports: Improve formatting of non-currency commodities.
Introduce the get_commodity_format() function, which returns Babel's
usual format string for currencies, but returns a version of it
"merged" with the locale's currency unit pattern for other
commodities.

BaseODS then calls this function where needed to format amounts.
2020-09-04 15:29:10 -04:00
Brett Smith
b4f2b506be reports: ODS currency formatting gets integer precision from Babel. 2020-09-04 14:49:20 -04:00
Brett Smith
21383d2355 reports: Correct use of NumberPattern.grouping.
The 2-tuple represents min/max grouping, not positive/negative.
2020-09-04 14:46:18 -04:00
Brett Smith
44ac5e61f7 reports: BaseODS gets decimalplaces directly from Babel. 2020-09-04 14:20:11 -04:00
Brett Smith
2c3438ba0f balance_sheet: Add account code column to chart of accounts. 2020-09-03 17:01:28 -04:00
Brett Smith
5081c8934c ledger: Put account classification on each row in a hidden column.
This makes it easier to build formulas based on classification.
Hiding it keeps the presentation neat for human readers.
2020-09-03 14:51:39 -04:00
Brett Smith
27acf1f0c1 meta_expense_type: Default management for payroll expenses.
It's a little abstract since we usually rewrite these but this is a
safer default.
2020-09-03 11:55:59 -04:00
Brett Smith
72f144e1ff extract_odf_links: Make "not found" warning easier to parse.
e.g., you can just use `grep | cut -b N-`.
2020-09-03 09:45:31 -04:00
Brett Smith
42442c401f extract_odf_links: Support multiprocessing.
This cuts audit packet manifest build time in half on my 8-core laptop.
2020-09-03 09:40:47 -04:00
Brett Smith
552dae6ea5 cliutil: Take on --jobs support from audit_report. 2020-09-02 13:26:35 -04:00
Brett Smith
0f91aefb5a setup: Install tools module. 2020-08-31 17:05:51 -04:00
Brett Smith
35804db617 reports: All reports support rewrite rules.
I realized that if ledger-report supported rewrite rules, then it would
include all the information necessary to reproduce the numbers on the
statement of functional expenses.

With that, it was easy enough to add support to the rest of the reports for
consistency's sake.
2020-08-31 14:19:00 -04:00
Brett Smith
8c81eceb2c audit_report: Exclude rewrite logs from verbose display. 2020-08-31 14:14:19 -04:00
Brett Smith
7281cf0f01 audit_report: New tool. 2020-08-30 22:34:32 -04:00