Bulk Edit¶
Paisa provides bulk transaction editor to search and modify multiple transactions at once. The interface is made of two parts:
1) Search input box allows you to narrow down the transactions you are interested in making changes
2) Bulk Edit form allows you to make changes to the narrowed down set of transactions.
Search¶
Plain¶
Paisa provides a powerful search query interface. Let's start with a few example queries.
This will search for all transactions that have a posting with account
named Expenses:Utilities:Electricity. By default, the search is case
insensitive and will do a substring match. So, Expenses:Utilities
will match Expenses:Utilities:Electricity account as well. If you want
to search an account name which has special characters like space in
it, you can use double quotes to enclose it like
"Expenses:Utilities:Hair Cut"
.
You can also search on transaction date. For example, if you want to
show all the transactions made on 1st Jan 2023, just type
[2023-01-01]
. If you want to see all made on that month, just leave
out the day part [2023-01]
. You can do the same with year, [2023]
will show all the transactions made in 2023.
There is experimental support for natural language date. You can do
queries like [last month]
, [last year]
, [this month]
, [lastweek]
, [jan 2023]
, etc.
Let's say you want to search by amount. You can do that by typing
42
, it will show all the transactions that have a posting with that
amount.
if you want to search a exact Account, you can do that using Regular
Expression. Just type /^Assets:Equity:APPLE$/
, you can also do case
insensitive search by using the modifier i
like
/^Assets:Equity:APPLE$/i
.
Property¶
You can also search based on properties like account, commodity, amount, total, filename, note, payee and date.
payee =~ /uber/i
payee = "Advance Tax"
commodity = GOLD
total > 5000
note = "rebate"
account = "Expenses:Utilities:Electricity"
date >= [2023-01-01]
filename = creditcard/2023/jan.ledger
The general format is property operator value
. The property can be
any of the following:
- account - posting account
- commodity - posting commodity
- amount - posting amount
- total - transaction total
- filename - name of the file the transaction is in
- note - posting or transaction note (comment)
- payee - transaction payee
- date - transaction date
The operator can be any of the following:
- = equal
- =~ regular expression match
- < less than
- <= less than or equal
- > greater than
- >= greater than or equal
Not all the combinations of property, operator and value would work, if in doubt, just try it out, the UI will show you an error if the query is not valid.
In fact, in the previous format we saw, if the property and operator is
not specified and a default set is chosen based on the value type. For
example, 42
will be treated as amount = 42
, Expenses:Utilities
will be treated as account = Expenses:Utilities
,
/Expenses:Utilities/i
will be treated as
account =~ /Expenses:Utilities/i
, [2023-01]
will be treated as
date = [2023-01]
.
Conditional¶
You can combine multiple property based queries using AND
and OR
,
you can negate them using NOT
account = Expenses:Utilities AND payee =~ /uber/i
commodity = GOLD OR total > 5000
date >= [2023-01-01] AND date < [2023-04-01]
account = Expenses:Utilities AND payee =~ /uber/i AND (total > 5000 OR total < 1000)
[last year] AND (payee =~ /swiggy/i OR payee =~ /phonepe/i)
total < 5000 AND NOT account = Expenses:Utilities
If you leave out the conditional operator, it will be treated as
AND
. Both of the below queries are the same
Bulk Edit Form¶
Currently bulk edit form supports only account rename feature. More will be added later. The preview button allows you to see the changes before you save them. It will show a side by side diff of the changes.