Commit graph

120 commits

Author SHA1 Message Date
Brett Smith
6752a40206 books: Let files under books/ include any Beancount files they want.
This provides more flexibility in repository setup while remaining backwards
compatible.

The changes to test_reports_query are just to accommodate the new
transaction in 2020-expenses.beancount.
2021-02-26 14:45:55 -05:00
Brett Smith
ccbc447a35 query: Start new reporting tool.
Ultimately this is going to be a tool that can generate nicely-formatted
spreadsheets from arbitrary bean-queries. This initial version doesn't
generate spreadsheets yet, but it does integrate our usual books-loading
tools and rewrite rules into existing bean-query functionality, so it's a
start. It also has some of the query building and parsing that higher-level
spreadsheets will need.
2021-02-24 13:15:33 -05:00
Brett Smith
bd1a5fc9de ledger: Add program metadata column to all reports. 2021-02-17 14:21:45 -05:00
Brett Smith
fe3560b748 meta_tax_reporting: New plugin validation. 2021-02-11 13:38:11 -05:00
Brett Smith
b5a22a963f statement: Accept search terms.
This is the most consistent way to be able to reconcile specific kinds of
payroll taxes.
2021-02-01 10:11:12 -05:00
Brett Smith
f23e0431e2 reconcile: New statement reconciler.
For now, this is basically just a specialized ledger report. It highlights
rows that already appear reconciled, and reports different balances, with
appropriate formulas to assist interactive reconciliation.

In the future I hope we can extend this to read various CSV statements and
then highlight rows different based on discrepancies between the statement
and the books, sort of like the PayPal reconciler does now.
2021-01-31 17:06:40 -05:00
Brett Smith
fdd9f2847b plugin: Skip enum value checks with a flag+FIXME.
We've long supported skipping documentation checks by flagging the
transaction. We haven't done the same for enumerated metadata because we
need it less often, and bad values tend to do more damage to reports.

However, occasionally when something very off-process happens, we do need it
as a matter of expediency. So support it.

In order to skip validation of these fields, the plugin requires that the
value start with the string "FIXME". This helps ensure that reports have a
consistent way to detect and warn about unfilled values in flagged
transactions.
2021-01-29 09:38:37 -05:00
Brett Smith
c230f91ab7 meta_payroll_type: Add values for Exp:Pay:Benefits:Other. 2021-01-28 16:06:58 -05:00
Brett Smith
eba4ed45b0 reconcile: Start module with PayPal reconciliation report. 2021-01-23 10:23:03 -05:00
Brett Smith
087b3274e7 ledger: Dedicated reporting tab for Expenses:Payroll.
To better accommodate the new payroll-type metadata.
2021-01-19 14:23:51 -05:00
Brett Smith
31cee4e0ba meta_tax_implication: New values for grant recipients. 2021-01-18 15:45:31 -05:00
Brett Smith
1c95c1b1b1 irs990scheduleA: New PDF extractor. 2021-01-09 15:17:55 -05:00
Brett Smith
1908358c30 extract: Lay the groundwork for specialized PDF extractors.
* Start a whole extract submodule.
* Parametrize FormExtractor.
* Add a FormExtractor._transform_fields() hook.
2021-01-09 15:16:07 -05:00
Brett Smith
8b2633ec23 extract: Fill YAML with Python values, not PS/FDF values. 2021-01-09 13:20:15 -05:00
Brett Smith
6a3d64ff22 fields: Change FieldType capitalization.
This is friendlier to the YAML input and consistent with FieldFlags.
Less consistent with the rest of the codebase, but local consistency matters
more IMO.
2021-01-09 10:49:04 -05:00
Brett Smith
188063cbb7 setup: New release for pdfforms tools. 2021-01-09 10:11:56 -05:00
Brett Smith
2cf4fdcfad pdfforms.fill: New module+tool.
After you edit the YAML generated by pdfform-extract,
you can re-fill the original PDF with pdfform-fill.
2021-01-09 10:09:08 -05:00
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
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
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
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
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
97dbce5b4c balance_sheet: Remove transitional code for account-code column. 2020-10-06 14:33:01 -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
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
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
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
2c3438ba0f balance_sheet: Add account code column to chart of accounts. 2020-09-03 17:01:28 -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
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
7281cf0f01 audit_report: New tool. 2020-08-30 22:34:32 -04:00
Brett Smith
dfdb9b65d5 accrual: Add total divider lines. 2020-08-22 12:39:43 -04:00
Brett Smith
95fb8ce481 meta_expense_type: Refine defaults.
* Default "management" for more accounts.

* There's a good handful of accounts where in past audits, the functional
  split has been "Conservancy expenses are management, project expenses are
  program." Handle those cases too.
2020-08-20 17:22:05 -04:00
Brett Smith
3519933b8c balance_sheet: Normalize handling of release from restrictions. 2020-08-19 16:09:53 -04:00
Brett Smith
5a3ee24589 balance_sheet: Correct "release from restrictions" calculation.
The old version was causing Income:Donations:Released postings to be
"double-released." This version gets the bottom line numbers for
Net Assets With/out Donor Restrictions match the corresponding numbers
in the fund report.
2020-08-18 16:26:12 -04:00
Brett Smith
a0ff9e6834 balance_sheet: Support arbitrary date ranges.
This lets you do year-over-year comparisons of smaller ranges of time, like
a quarter.
2020-08-18 15:15:02 -04:00
Brett Smith
5c7cf9cd2a balance_sheet: Sort trial balance accounts.
They were previously sorted by date, then name, which is slightly less
helpful.
2020-08-18 14:20:16 -04:00
Brett Smith
950536e4f1 balance_sheet: Transform "chart of accounts" into trial balances.
It was mostly this already, just needed to add a column and change the
title.
2020-08-18 13:22:07 -04:00
Brett Smith
ee40b5b5c2 balance_sheet: Add chart of accounts. 2020-08-18 10:13:30 -04:00
Brett Smith
07757e7717 balance_sheet: Add cash flows report.
With this, the balance sheet report has all the reports from the audit.
2020-08-17 17:09:31 -04:00