88 lines
3.5 KiB
Python
88 lines
3.5 KiB
Python
# db.py
|
|
import sqlite3
|
|
|
|
def connect_db():
|
|
conn = sqlite3.connect('finance.db')
|
|
conn.row_factory = sqlite3.Row # This allows us to access columns by name
|
|
return conn
|
|
|
|
def init_db():
|
|
conn = connect_db()
|
|
cur = conn.cursor()
|
|
cur.execute('''CREATE TABLE IF NOT EXISTS finance (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
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
|
|
)''')
|
|
|
|
# Check if table is empty, if so insert default values
|
|
cur.execute('SELECT COUNT(*) FROM finance')
|
|
if cur.fetchone()[0] == 0:
|
|
cur.execute('''INSERT INTO finance (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 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)''',
|
|
(4762.29, 6, 22000, 620, 1001.12, 45824.68, 78000, 412000, 5.0, 3.9, 10000, 32000, 10000, 90.6, 1000, 750, 1095, 3.99, 160.61, '2025-06-01', '2025-09-01', 5))
|
|
# NOTE: 1001.12 car-pay -- is 1017.99 (actual rate) - 16.87 (car park)
|
|
# NOTE: o/s trip. ~ $4kpp flights x3, then ~$3k / week in barcelona accom, $100pp/pd for food ($2k), + spending money
|
|
conn.commit()
|
|
conn.close()
|
|
|
|
def get_finance_data():
|
|
conn = connect_db()
|
|
cur = conn.cursor()
|
|
cur.execute('SELECT * FROM finance WHERE id = 1') # Assuming a single record for simplicity
|
|
finance = cur.fetchone()
|
|
conn.close()
|
|
return dict(finance)
|
|
|
|
def update_finance(data):
|
|
|
|
conn = connect_db()
|
|
cur = conn.cursor()
|
|
cur.execute('''UPDATE finance SET
|
|
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 = ?
|
|
WHERE id = 1''', data)
|
|
conn.commit()
|
|
conn.close()
|