re-vamp of front-end to use less space. Also, first pass at using comparison data from DB, and created a function to find the last comparison value and use that in the table

This commit is contained in:
2025-02-10 16:53:37 +11:00
parent 9ac3fff5f2
commit b9b6da1f7a
3 changed files with 259 additions and 74 deletions

70
db.py
View File

@@ -35,6 +35,41 @@ def init_db():
Sell_shares INTEGER
)''')
cur.execute('''CREATE TABLE IF NOT EXISTS comparison_set (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name STRING,
D_Salary INTEGER,
D_Num_fortnights_pay INTEGER,
School_Fees INTEGER,
Car_loan_via_pay INTEGER,
Car_loan INTEGER,
Car_balloon INTEGER,
Living_Expenses INTEGER,
Savings INTEGER,
Interest_Rate REAL,
Inflation REAL,
Mich_present INTEGER,
Overseas_trip INTEGER,
Mark_reno INTEGER,
D_leave_owed_in_days REAL,
D_TLS_shares INTEGER,
M_TLS_shares INTEGER,
D_CBA_shares INTEGER,
TLS_price REAL,
CBA_price REAL,
Overseas_trip_date STRING,
Mark_reno_date STRING,
Sell_shares INTEGER
)''')
cur.execute('''CREATE TABLE IF NOT EXISTS comparison_savings_data (
comparison_set_id INTEGER,
name STRING,
value INTEGER,
FOREIGN KEY(comparison_set_id) REFERENCES comparison_set(id)
)''')
# Check if table is empty, if so insert default values
cur.execute('SELECT COUNT(*) FROM finance')
if cur.fetchone()[0] == 0:
@@ -104,3 +139,38 @@ def update_finance(data):
WHERE id = 1''', data)
conn.commit()
conn.close()
def insert_cset( data ):
conn = connect_db()
cur = conn.cursor()
cur.execute('''INSERT INTO comparison_set (
name, D_Salary, D_Num_fortnights_pay, School_Fees, Car_loan_via_pay,
Car_loan, Car_balloon, Living_Expenses, Savings, Interest_Rate, Inflation, Mich_present,
Overseas_trip, Mark_reno, D_leave_owed_in_days, D_TLS_shares, M_TLS_shares, D_CBA_shares,
TLS_price, CBA_price, Overseas_trip_date, Mark_reno_date, Sell_shares
)
VALUES (
:name, :D_Salary, :D_Num_fortnights_pay, :School_Fees, :Car_loan_via_pay,
:Car_loan, :Car_balloon, :Living_Expenses, :Savings, :Interest_Rate, :Inflation, :Mich_present,
:Overseas_trip, :Mark_reno, :D_leave_owed_in_days, :D_TLS_shares, :M_TLS_shares, :D_CBA_shares,
:TLS_price, :CBA_price, :Overseas_trip_date, :Mark_reno_date, :Sell_shares
)
''', data['vars'])
cset_id = cur.lastrowid
for d in data['savings_data']:
cur.execute( f"INSERT INTO comparison_savings_data ( comparison_set_id, name, value ) VALUES ( {cset_id}, '{d[0]}', '{d[1]}' )" )
conn.commit()
conn.close()
return cset_id
def last_cset_savings_data(cset_id):
conn = connect_db()
cur = conn.cursor()
cur.execute('''select name, value from comparison_savings_data
where name = ( select max(name) from comparison_savings_data ) ''' )
name, value = cur.fetchone() # fetchone() fetches a single row
conn.close()
return name, value