Commit graph

516 commits

Author SHA1 Message Date
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
ca38e45178 reports: Add BaseODS.row_count() method. 2021-01-29 14:26:54 -05:00
Brett Smith
250b14954f tests: Add tests for plugin.meta_payroll_type. 2021-01-29 11:28:29 -05:00
Brett Smith
fb9aa9eae1 tests: Add tests for BaseODS.bgcolor_style(). 2021-01-29 11:28:18 -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
91cbbc9159 reports.core: Add BaseODS.bgcolor_style() method. 2021-01-23 10:22:42 -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
ea79200131 ledger: Report accounts that are not open but have postings. 2021-01-19 14:23:06 -05:00
Brett Smith
5c6d9d6f69 tax_implication: Bugfix "Corp" abbreviation in values. 2021-01-18 15:49:39 -05:00
Brett Smith
31cee4e0ba meta_tax_implication: New values for grant recipients. 2021-01-18 15:45:31 -05:00
Brett Smith
728db9983e fill: Use program logger over module logger to report problems. 2021-01-10 11:08:25 -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
b074edc538 cliutil: Set floor for pdfminer loglevel. 2021-01-09 10:09:45 -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
902c313b4d cliutil: New function can_run. 2021-01-09 10:09:08 -05:00
Brett Smith
0045d8d032 fields: Add FormField.add_kid() method. 2021-01-09 10:09:08 -05:00
Brett Smith
391fde5447 fields: TextField.set_value() accepts numeric types. 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
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