Commit 2bb7b3c
authored
Add rules with splits (actualbudget#2059)
* Add split creation UI to rule creation modal
* Support applying splits when rules execute
* fix: deserialize transaction before running rules
According to how rules are run in other places in the app, we should be
supplying a "deserialized" (i.e., integer-for-amount and ISO date)
transaction rather than a "serialized" (amount-plus-formatted-date) one.
This fixes a crash in how split transactions are applied, as well as
date-based rules not applying correctly previously (any rule with a date
condition would never match on mobile).
* Add release notes
* Fix missing types pulled in from master
* PR feedback: use `getActions`
* PR feedback: use `flatMap`
* Fix action deletion
* Don't flicker upon split deletion
* Let users specify parent transaction actions (e.g. linking schedules)
* Support empty splits
* Revert adding `no-op` action type
* Support splits by percent
* Fix types
* Fix crash on transactions page when posting a transaction
The crash would probably have occurred in other places too with
auto-posting schedules :/
* Fix a bug where schedules wouldn't be marked as completed
This was because the query that we previously used didn't select parent
transactions, so no transaction was marked as being scheduled (since
only parent transactions have schedule IDs).
* Add feature flag
* Limit set actions within splits to fewer fields
* Fix merge conflict
* Don't run split rules if feature is disabled
* Fix percent-based splits not applying
* Fix crash when editing parent transaction amount
* Auto-format
* Attempt to fix failing tests
* More test/bug fixes
* Add an extra split at the end if there is a remaining amount
* Make sure split has correct values for dynamic remainder
* Remove extraneous console.log1 parent d6f610a commit 2bb7b3c
19 files changed
Lines changed: 565 additions & 112 deletions
File tree
- packages
- desktop-client/src
- components
- modals
- settings
- spreadsheet
- transactions
- hooks
- loot-core/src
- server
- accounts
- rules
- types
- types
- models
- upcoming-release-notes
Lines changed: 288 additions & 67 deletions
Large diffs are not rendered by default.
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
99 | 99 | | |
100 | 100 | | |
101 | 101 | | |
| 102 | + | |
102 | 103 | | |
103 | 104 | | |
104 | 105 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| |||
Lines changed: 8 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
7 | 13 | | |
8 | 14 | | |
9 | | - | |
| 15 | + | |
10 | 16 | | |
11 | 17 | | |
12 | 18 | | |
| |||
49 | 55 | | |
50 | 56 | | |
51 | 57 | | |
52 | | - | |
| 58 | + | |
53 | 59 | | |
54 | 60 | | |
55 | 61 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | | - | |
| 43 | + | |
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
| |||
660 | 660 | | |
661 | 661 | | |
662 | 662 | | |
663 | | - | |
| 663 | + | |
664 | 664 | | |
665 | 665 | | |
666 | 666 | | |
| |||
Lines changed: 10 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
992 | 992 | | |
993 | 993 | | |
994 | 994 | | |
995 | | - | |
996 | | - | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
997 | 1002 | | |
998 | 1003 | | |
999 | 1004 | | |
1000 | 1005 | | |
1001 | 1006 | | |
1002 | 1007 | | |
1003 | | - | |
1004 | 1008 | | |
1005 | 1009 | | |
1006 | | - | |
1007 | | - | |
| 1010 | + | |
| 1011 | + | |
1008 | 1012 | | |
1009 | 1013 | | |
1010 | 1014 | | |
1011 | 1015 | | |
1012 | 1016 | | |
1013 | 1017 | | |
1014 | 1018 | | |
1015 | | - | |
| 1019 | + | |
1016 | 1020 | | |
1017 | 1021 | | |
1018 | 1022 | | |
| |||
Lines changed: 23 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| 38 | + | |
| 39 | + | |
38 | 40 | | |
39 | 41 | | |
40 | 42 | | |
| |||
705 | 707 | | |
706 | 708 | | |
707 | 709 | | |
| 710 | + | |
708 | 711 | | |
709 | 712 | | |
710 | 713 | | |
| |||
843 | 846 | | |
844 | 847 | | |
845 | 848 | | |
846 | | - | |
| 849 | + | |
| 850 | + | |
847 | 851 | | |
848 | 852 | | |
849 | 853 | | |
| |||
1489 | 1493 | | |
1490 | 1494 | | |
1491 | 1495 | | |
1492 | | - | |
1493 | | - | |
| 1496 | + | |
| 1497 | + | |
1494 | 1498 | | |
| 1499 | + | |
1495 | 1500 | | |
1496 | 1501 | | |
1497 | 1502 | | |
| |||
1513 | 1518 | | |
1514 | 1519 | | |
1515 | 1520 | | |
| 1521 | + | |
1516 | 1522 | | |
1517 | 1523 | | |
1518 | 1524 | | |
| |||
2064 | 2070 | | |
2065 | 2071 | | |
2066 | 2072 | | |
2067 | | - | |
| 2073 | + | |
2068 | 2074 | | |
2069 | 2075 | | |
| 2076 | + | |
| 2077 | + | |
| 2078 | + | |
| 2079 | + | |
2070 | 2080 | | |
2071 | 2081 | | |
2072 | | - | |
| 2082 | + | |
2073 | 2083 | | |
2074 | 2084 | | |
2075 | 2085 | | |
2076 | | - | |
| 2086 | + | |
| 2087 | + | |
| 2088 | + | |
| 2089 | + | |
| 2090 | + | |
| 2091 | + | |
| 2092 | + | |
2077 | 2093 | | |
2078 | | - | |
| 2094 | + | |
2079 | 2095 | | |
2080 | 2096 | | |
2081 | 2097 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
0 commit comments