Changing a bill (bill_data) now works, as does cancelling cleanly - this is now functional. I have renamed/improved the left-hand-side fields, right-hand-side next - to improve consistency between html and db and bill_data and bill_type
This commit is contained in:
80
db.py
80
db.py
@@ -84,13 +84,25 @@ def init_db():
|
||||
FOREIGN KEY(comparison_set_id) REFERENCES comparison_set(id)
|
||||
)''')
|
||||
|
||||
cur.execute('''CREATE TABLE IF NOT EXISTS bill_type (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name STRING
|
||||
)''')
|
||||
|
||||
cur.execute('''CREATE TABLE IF NOT EXISTS bill_data (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
bill_type INTEGER,
|
||||
amount INTEGER,
|
||||
bill_date DATE,
|
||||
FOREIGN KEY(bill_type) REFERENCES bill_type(id)
|
||||
)''')
|
||||
|
||||
# Check if table is empty, if so insert default values
|
||||
cur.execute('SELECT COUNT(*) FROM finance')
|
||||
if cur.fetchone()[0] == 0:
|
||||
###
|
||||
# For now manually update below on the fortnight of the original pay shcedule to compare saved version vs. our reality. Update:
|
||||
# Savings (Macq+me bank) -- noting ME bank is: $1434.3
|
||||
# Savings (Macq+me bank) -- noting ME bank is: $1876.19, nab is 2727.95
|
||||
# TLS/CBA prices
|
||||
# Interest rate
|
||||
# D_leave_owed_in_days
|
||||
@@ -217,6 +229,7 @@ def get_comp_set_data(cset_id):
|
||||
|
||||
# do this for convenience in printing single last cset data point
|
||||
COMP['date'], COMP['amount'] = COMP['savings_data'][-1]
|
||||
conn.close()
|
||||
return COMP
|
||||
|
||||
|
||||
@@ -229,4 +242,69 @@ def get_comp_set_options(finance):
|
||||
# get saved finance data for this comparison set
|
||||
cur.execute( f"select id, name from comparison_set order by id" )
|
||||
finance['COMP_SETS'].extend( cur.fetchall() )
|
||||
conn.close()
|
||||
return
|
||||
|
||||
def get_bill_data():
|
||||
conn = connect_db(True)
|
||||
cur = conn.cursor()
|
||||
cur.execute('SELECT bd.id, bt.id as bill_type_id, bt.name, bd.amount, bd.bill_date FROM bill_type bt, bill_data bd where bt.id = bd.bill_type order by bt.name, bd.bill_date')
|
||||
bd = cur.fetchall()
|
||||
conn.close()
|
||||
return bd
|
||||
|
||||
def get_bill_types():
|
||||
conn = connect_db(True)
|
||||
cur = conn.cursor()
|
||||
cur.execute('SELECT id, name FROM bill_type order by name')
|
||||
bt = cur.fetchall()
|
||||
conn.close()
|
||||
return bt
|
||||
|
||||
def new_bill( name, amount, bill_date ):
|
||||
conn = connect_db(False)
|
||||
cur = conn.cursor()
|
||||
cur.execute( f"insert into bill_data ( 'bill_type', 'amount', 'bill_date' ) values ( '{name}', '{amount}', '{bill_date}' )" )
|
||||
conn.commit()
|
||||
conn.close()
|
||||
return
|
||||
|
||||
def update_bill_data( id, name, amount, bill_date ):
|
||||
conn = connect_db(False)
|
||||
cur = conn.cursor()
|
||||
cur.execute( f"update bill_data set bill_type =(select id from bill_type where name ='{name}'), amount='{amount}', bill_date='{bill_date}' where id = {id}" )
|
||||
conn.commit()
|
||||
conn.close()
|
||||
return
|
||||
|
||||
def insert_bill_type( bt ):
|
||||
conn = connect_db(False)
|
||||
cur = conn.cursor()
|
||||
cur.execute( f"insert into bill_type ( 'name' ) values ( '{bt}' )" )
|
||||
conn.commit()
|
||||
conn.close()
|
||||
return
|
||||
|
||||
def update_bill_type(id, bill_type):
|
||||
conn = connect_db(False)
|
||||
cur = conn.cursor()
|
||||
cur.execute( f"update bill_type set name ='{bill_type}' where id = {id}" )
|
||||
conn.commit()
|
||||
conn.close()
|
||||
return
|
||||
|
||||
def delete_bill(id):
|
||||
conn = connect_db(False)
|
||||
cur = conn.cursor()
|
||||
cur.execute( f"delete from bill_data where id = '{id}'" )
|
||||
conn.commit()
|
||||
conn.close()
|
||||
return
|
||||
|
||||
def delete_bill_type( id ):
|
||||
conn = connect_db(False)
|
||||
cur = conn.cursor()
|
||||
cur.execute( f"delete from bill_type where id = '{id}'" )
|
||||
conn.commit()
|
||||
conn.close()
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user