aboutsummaryrefslogtreecommitdiffstats
path: root/firefly_cli/commands/transaction.py
diff options
context:
space:
mode:
Diffstat (limited to 'firefly_cli/commands/transaction.py')
-rw-r--r--firefly_cli/commands/transaction.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/firefly_cli/commands/transaction.py b/firefly_cli/commands/transaction.py
index 9f8e130..1772d87 100644
--- a/firefly_cli/commands/transaction.py
+++ b/firefly_cli/commands/transaction.py
@@ -109,6 +109,8 @@ def _edit_args(p):
p.add_argument("--to", dest="dest", default=None, help="destination account")
p.add_argument("--category", default=None)
p.add_argument("--tags", default=None, help="comma-separated")
+ p.add_argument("--budget", default=None,
+ help="budget name or id to (re)assign (must already exist)")
p.add_argument("--type", default=None, help="withdrawal|deposit|transfer")
# ponytail: single-split journals only; multi-split edits need transaction_journal_id per row.
@@ -129,6 +131,9 @@ def cmd_edit(args, ctx):
split["category_name"] = args.category
if args.tags is not None:
split["tags"] = [t.strip() for t in args.tags.split(",") if t.strip()]
+ if args.budget is not None:
+ # Budgets must pre-exist; resolve name/id -> id (hard error on miss).
+ split["budget_id"] = ctx.resolver.budget(args.budget)["id"]
if args.type is not None:
split["type"] = args.type
if not split: