Skip to content

Commit 890504b

Browse files
authored
'Add transaction' tool (#40)
1 parent 93b9df6 commit 890504b

7 files changed

Lines changed: 1947 additions & 0 deletions

File tree

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@ This repo is a single CLI for YNAB-focused tools.
1010

1111
- `reconciler`: find and automatically reconciles unreconciled transactions
1212
- `auto-approve`: approve matched transactions automatically
13+
- `add-transaction`: create a transaction and optionally fund a category
1314
- `pending-income`: move pending income transactions to today
1415
- `zero-out`: set a category's planned amount to zero across a month range
1516

1617
Tool-specific docs:
1718

1819
- [Reconciler](manager_for_ynab/reconciler/README.md)
1920
- [Auto Approve](manager_for_ynab/auto_approve/README.md)
21+
- [Add Transaction](manager_for_ynab/add_transaction/README.md)
2022
- [Pending Income](manager_for_ynab/pending_income/README.md)
2123
- [Zero Out](manager_for_ynab/zero_out/README.md)
2224

@@ -32,6 +34,7 @@ $ pip install manager-for-ynab
3234
$ manager-for-ynab --help
3335
$ manager-for-ynab reconciler --help
3436
$ manager-for-ynab auto-approve --help
37+
$ manager-for-ynab add-transaction --help
3538
$ manager-for-ynab pending-income --help
3639
$ manager-for-ynab zero-out --help
3740
```

manager_for_ynab/_main.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from typing import TYPE_CHECKING
55

66
from manager_for_ynab._version import get_version
7+
from manager_for_ynab.add_transaction import run as run_add_transaction
78
from manager_for_ynab.auto_approve import run as run_auto_approve
89
from manager_for_ynab.pending_income import run as run_pending_income
910
from manager_for_ynab.reconciler import run as run_reconciler
@@ -15,6 +16,7 @@
1516

1617
_RECONCILER_HELP = "Find and automatically reconciles unreconciled transactions."
1718
_AUTO_APPROVE_HELP = "Approve matched transactions automatically."
19+
_ADD_TRANSACTION_HELP = "Create a transaction and optionally fund a category."
1820

1921

2022
def build_parser() -> argparse.ArgumentParser:
@@ -43,6 +45,13 @@ def build_parser() -> argparse.ArgumentParser:
4345
)
4446
auto_approve_parser.set_defaults(func=run_auto_approve)
4547

48+
add_transaction_parser = subparsers.add_parser(
49+
"add-transaction",
50+
help=_ADD_TRANSACTION_HELP,
51+
description=_ADD_TRANSACTION_HELP,
52+
)
53+
add_transaction_parser.set_defaults(func=run_add_transaction)
54+
4655
zero_out_parser = subparsers.add_parser(
4756
"zero-out",
4857
help="Set a category's budgeted amount to zero across a month range.",
@@ -67,6 +76,8 @@ async def async_main(argv: Sequence[str] = ()) -> int:
6776
return await run_pending_income(argv[1:])
6877
case "auto-approve":
6978
return await run_auto_approve(argv[1:])
79+
case "add-transaction":
80+
return await run_add_transaction(argv[1:])
7081
case "zero-out":
7182
return await run_zero_out(argv[1:])
7283

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Add Transaction
2+
3+
`manager-for-ynab add-transaction` creates a new YNAB transaction from the local sqlite-export database and can optionally fund the category from Ready to Assign.
4+
5+
It works interactively by autocompleting payees, categories etc already in your plan.
6+
7+
Use `--for-real` to create the transaction. Without it, the command only previews the transaction that would be sent.

0 commit comments

Comments
 (0)