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:
70
db.py
70
db.py
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user