Skip to content

Commit c4c5505

Browse files
committed
Fix for preserving Transaction split amount for finalized transactions.
1 parent 76bd08d commit c4c5505

2 files changed

Lines changed: 26 additions & 21 deletions

File tree

SparkyBudget/py_db/db_scripts/upgrade/SparkyBudget_Upgrade_v0.18.sql renamed to SparkyBudget/py_db/db_scripts/upgrade/SparkyBudget_Upgrade_v0.19.sql

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,22 @@ BEGIN
1515
TransactionPayee,
1616
TransactionMemo,
1717
TransactionPending,
18-
SubCategory
19-
) VALUES (
20-
(SELECT TransactionKey FROM f_transaction WHERE TransactionID = NEW.TransactionID),
21-
NEW.AccountID,
22-
NEW.AccountName,
23-
NEW.TransactionID,
24-
NEW.TransactionPosted,
25-
NEW.TransactionAmount,
26-
NEW.TransactionDescription,
27-
NEW.TransactionPayee,
28-
NEW.TransactionMemo,
18+
SubCategory,
19+
TransactionAmountNew -- Add TransactionAmountNew here
20+
) VALUES (
21+
(SELECT TransactionKey FROM f_transaction WHERE TransactionID = NEW.TransactionID),
22+
NEW.AccountID,
23+
NEW.AccountName,
24+
NEW.TransactionID,
25+
NEW.TransactionPosted,
26+
NEW.TransactionAmount,
27+
NEW.TransactionDescription,
28+
NEW.TransactionPayee,
29+
NEW.TransactionMemo,
2930
NEW.TransactionPending,
30-
(SELECT SubCategory FROM f_transaction WHERE TransactionID = NEW.TransactionID)
31-
);
31+
(SELECT SubCategory FROM f_transaction WHERE TransactionID = NEW.TransactionID),
32+
(SELECT TransactionAmountNew FROM f_transaction WHERE TransactionID = NEW.TransactionID) -- Select existing TransactionAmountNew
33+
);
3234

3335
-- Remove the specific record from stg_transaction after insert
3436
DELETE FROM stg_transaction WHERE TransactionID = NEW.TransactionID;
@@ -59,4 +61,4 @@ END
5961
;
6062

6163

62-
update D_DB set DB_VERSION = "v0.18";
64+
update D_DB set DB_VERSION = "v0.19";

SparkyBudget/py_utils/SimpleFinToDB.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,10 @@ def process_accounts_data(private_data_path):
116116

117117
# Insert data into the temporary table from F_Transaction
118118
insert_into_temp_table_query = """
119-
INSERT INTO Temp_F_Transaction_Pending (TransactionID, SubCategory,TransactionAmountNew)
119+
INSERT INTO Temp_F_Transaction_Pending (TransactionID, SubCategory, TransactionAmountNew)
120120
SELECT TransactionID, SubCategory, TransactionAmountNew
121121
FROM F_Transaction
122-
WHERE TransactionPending = 1 AND SubCategory IS NOT NULL;
122+
WHERE TransactionPending = 1 and (TransactionAmountNew IS NOT NULL or SubCategory is not NULL);
123123
"""
124124
cursor.execute(insert_into_temp_table_query)
125125

@@ -198,11 +198,14 @@ def process_accounts_data(private_data_path):
198198
# Update F_Transaction with SubCategory from the temporary table
199199
update_F_Transaction_query = """
200200
UPDATE F_Transaction
201-
SET
202-
SubCategory = (
203-
SELECT SubCategory
204-
FROM Temp_F_Transaction_Pending
205-
WHERE Temp_F_Transaction_Pending.TransactionID = F_Transaction.TransactionID
201+
SET
202+
SubCategory = COALESCE(
203+
(
204+
SELECT SubCategory
205+
FROM Temp_F_Transaction_Pending
206+
WHERE Temp_F_Transaction_Pending.TransactionID = F_Transaction.TransactionID
207+
),
208+
F_Transaction.SubCategory -- Keep existing SubCategory if the temporary table has NULL
206209
),
207210
TransactionAmountNew = (
208211
SELECT TransactionAmountNew

0 commit comments

Comments
 (0)