Commit graph

613 commits

Author SHA1 Message Date
72385fd0bd
reconcile: Quote metadata, fix hiding of matched + reconciled lines. 2022-02-24 20:58:04 +11:00
7c5e98c588
reconcile: Simplify multirecord sorting. 2022-02-23 17:34:52 +11:00
405dd553cb
reconcile: Implement "subset sum" feature matching multiple books entries to a single statement entry. 2022-02-23 17:25:02 +11:00
965aeabde9
reconcile: Update tests with renamed module. 2022-02-23 09:58:53 +11:00
e1edffda9a
reconcile: Fix usage docs. 2022-02-23 08:21:06 +11:00
80dace59b3
reconcile: Rename statement reconciler. 2022-02-23 08:18:52 +11:00
517d4027b4
reconcile: Explicitly avoid payee matching when check-id provided in books. 2022-02-21 22:43:22 +11:00
c9dd9ffb28
reconciler: Fix totals. Never consider payee if check_id in books. 2022-02-21 22:22:42 +11:00
3377918279
reconcile: Make bank-statement path relative to $CONSERVANCY_BEANCOUNT.
Also add CSV metadata.
2022-02-21 18:31:07 +11:00
a3e60c639f
reconcile: Add special case for payee first word match. 2022-02-21 12:16:24 +11:00
32fc4517a0
reconcile: show check number, remove duplicate words in payee. 2022-02-19 00:27:48 +11:00
d8f4eac53b
reconcile: Improve reconciler matching and add test cases. 2022-02-18 20:36:11 +11:00
6d7df795cb
reconcile: Move code into functions, add totals. 2022-02-10 22:02:08 +11:00
4bb6177e45
reconcile: Update cleared query. 2022-02-10 10:23:00 +11:00
5d45171ed7
reconcile: Add statement total and cleared total. 2022-02-10 10:15:01 +11:00
042633d82d
reconcile: Update background docs. 2022-02-09 15:12:33 +11:00
bc4d897c92
reconcile: Tweak output. 2022-02-09 14:42:32 +11:00
3bff7845d5
reconcile: Fix usage example. 2022-02-09 14:05:09 +11:00
3f735bec95
reconcile: Show file and line number of mismatches. 2022-02-09 14:03:05 +11:00
6b1ce7d73a
reconcile: Fix edge case in helper when only one unreconciled transaction. 2022-02-09 12:58:11 +11:00
21852845c0
reconcile: Remove debugging lines. 2022-02-09 12:32:14 +11:00
31146b8843
reconcile: Add initial FR support to statement reconciler. 2022-02-09 12:29:44 +11:00
3792d46bcc
reconcile: Prototype writing statement metadata back to books. 2022-02-08 22:06:01 +11:00
dd35ed25c2
doc: Document installation into a virtualenv. 2022-02-04 19:27:58 +11:00
9c69d656a3
Add typing dependencies for requests, dateutil, setuptools and yaml.
Without these, mypy complains that "Library stubs are not installed".
2022-02-04 19:24:02 +11:00
088713060a
reconcile: Add dependency "thefuzz" for fuzzy match of payee text. 2022-02-04 19:15:12 +11:00
ed0bc469ce
reconcile: Add type checking information to new prototype reconcilers. 2022-02-04 19:15:11 +11:00
43548a1ac9
config: Fix mypy error for git.exc.
Error was:

  conservancy_beancount/config.py:142: error: Trying to read deleted variable "exc"

Not entirely sure what's causing this, but since GitPython also imports the
exceptions at the root of the package with "from git.exc import *", we can
import them from there instead, which seems to appease mypy.
2022-02-04 19:13:54 +11:00
7783f7ad10
reports: Fix mypy errors.
Errors were:

  conservancy_beancount/reports/core.py:923: error: Generator has incompatible
  item type "Optional[str]"; expected "str"

  conservancy_beancount/reports/core.py:929: error: Item "None" of
  "Optional[str]" has no attribute "lower"

  conservancy_beancount/reports/ledger.py:534: error: Item "None" of
  "Optional[str]" has no attribute "partition"

  conservancy_beancount/reports/ledger.py:729: error: Item "None" of
  "Optional[str]" has no attribute "lower"

  conservancy_beancount/reports/rewrite.py:563: error: Argument 2 to
  "_iter_yaml" of "RewriteRuleset" has incompatible type "Union[Any, str,
  None]"; expected "str"
2022-02-04 19:11:59 +11:00
0342c5b83e
tests: Replace skipUnless with skipif.
The function skipUnless is available in `unittest`, but not `pytest`.
2022-02-04 19:11:54 +11:00
f3e824f68b
reconcile: Add prototype AMEX statement/books reconciler. 2022-02-01 17:34:15 +11:00
9e6b5b408a
reconcile: Align "N/A" with numbers. 2022-01-28 10:18:02 +11:00
dbe8d02b78
reconcile: Update helper to show N/A when no results, similar to Perl.
Also clarified that a full account name should be passed. This aligns with the
Perl behaviour.
2022-01-28 10:11:48 +11:00
970fea86fd
reconcile: Convert Perl reconciliation helper to Python.
This is a Python version of bc-reconcile-helper.plx.
2022-01-21 18:53:17 +11:00
03533e15e6
reports: Prototype Canadian payroll report. 2022-01-21 18:53:12 +11:00
Bradley M. Kuhn
cedbdcff3a expense-type auto assignment — Expenses:Occupancy
"Expenses:Occupancy" is rarely a program expense, and is almost
always management expense, even when done for a project.
Automatically assign it as such.
2022-01-10 06:25:53 -08:00
Bradley M. Kuhn
64aaeb7573 Expenses:Payroll:Benefits:Other — payroll-type of US:403b:Other
Certain adjustments to 403(b) accounts that benefit the employee
should be classified with this account and the `payroll_type` added
herein.
2021-12-29 22:49:52 -08:00
Bradley M. Kuhn
c3511bad11 meta_payroll_type — CA:PTO — distinguish between Earned and Taken
Metadata `payroll-type` will go on `Liabilities:Payable:Vacation` and
`Expenses:Payroll:Salary`, but we need to distinguish as to whether
the Payroll was earned or taken.

Implement the `CA:` version of the `US:` ones already done.
2021-12-13 20:00:14 -08:00
Bradley M. Kuhn
83e6e80bb8 meta_payroll_type — US:PTO — distinguish between Earned and Taken
Metadata `payroll-type` will go on `Liabilities:Payable:Vacation` and
`Expenses:Payroll:Salary`, but we need to distinguish as to whether
the Payroll was earned or taken.

Later,  `Liabilities:Payable:Vacation` should require a
`payroll-type` metadata of either `US:PTO:Taken` or `US:PTO:Earned`,
and the `CA:` equivalents.
2021-12-06 10:43:32 -08:00
Brett Smith
b029a3cca8 doc: Add Development. 2021-05-03 14:14:25 -04:00
Brett Smith
af0fb50014 cliutil: Add docstrings throughout. 2021-04-29 11:49:46 -04:00
Brett Smith
323521344a books: Add docstrings throughout. 2021-04-29 11:35:47 -04:00
Brett Smith
e2dda7ae0c query: Let the user interrupt interactive queries.
This makes it easier to iterate on a query because you don't have to restart
the program and reload the books if something goes sideways.
2021-04-01 09:57:42 -04:00
Brett Smith
6109187286 setup: Switch to PEP 517 build system. 2021-03-31 16:42:29 -04:00
Brett Smith
789992afa1 typing: Add PEP 561 py.typed file 2021-03-31 16:41:32 -04:00
Brett Smith
ca94ecafb0 query: Add db_name column. 2021-03-18 16:22:30 -04:00
Brett Smith
0d01be68b3 query: Order address column results by recency. 2021-03-15 13:40:09 -04:00
Brett Smith
b880115774 query: Refactor DBColumn.
Avoid an issubclass check on every call, and make it easier for subclasses
to override part of the call implementation.
2021-03-15 13:40:09 -04:00
Brett Smith
6703d1af87 reports: BaseODS puts each line of strings in a P tag.
This seems to be the most straightforward way to get Calc to automatically
determine a nice row height for multi-line string cells. This has become a
lot more noticeable now that query-report supports putting postal addresses
in cells.
2021-03-15 13:19:03 -04:00
Brett Smith
fff211386f query: Clean unused code.
This moved into _EnvironmentMixin.with_config().
2021-03-15 10:03:06 -04:00