1.1 --- a/db.py Wed Oct 06 01:18:34 2010 +0200
1.2 +++ b/db.py Wed Oct 06 16:07:36 2010 +0200
1.3 @@ -25,11 +25,22 @@
1.4 constraint customer_fk foreign key(customer) references companies(rowid) on delete
1.5 cascade)"""
1.6
1.7 +CURRENCIES_TABLE = """currencies(
1.8 +name text not null)"""
1.9 +
1.10 +RATE_TYPES_TABLE = """rate_types(
1.11 +name text not null)"""
1.12 +
1.13 RATES_TABLE = """rates(
1.14 -rate smallmoney
1.15 -flatrate smallmoney,
1.16 -project int,
1.17 +rate smallmoney not null,
1.18 +currency int not null,
1.19 +type int not null,
1.20 +project int not null,
1.21 activity int,
1.22 +constraint currency_fk foreign key(currency) references currencies(rowid) on
1.23 +delete cascade,
1.24 +constraint type_fk foreign key(type) references rate_types(rowid) on delete
1.25 +cascade,
1.26 constraint project_fk foreign key(project) references projects(rowid) on delete
1.27 cascade,
1.28 constraint activity_fk foreign key(activity) references activities(rowid) on delete
1.29 @@ -54,8 +65,8 @@
1.30 constraint task_fk foreign key(task) references tasks(rowid) on delete
1.31 cascade)"""
1.32
1.33 -TABLES = (ACTIVITIES_TABLE, COMPANIES_TABLE, PROJECTS_TABLE, RATES_TABLE,
1.34 -TASKS_TABLE, BREAKS_TABLE)
1.35 +TABLES = (ACTIVITIES_TABLE, COMPANIES_TABLE, PROJECTS_TABLE, CURRENCIES_TABLE,
1.36 +RATES_TABLE, RATE_TYPES_TABLE, TASKS_TABLE, BREAKS_TABLE)
1.37
1.38 DEF_PROJECT = "default"
1.39 DEF_ACTIVITY = "default"
1.40 @@ -67,22 +78,33 @@
1.41 def test(db_file):
1.42 con, cur = session(db_file)
1.43 cur.execute("select * from projects")
1.44 - print "\nprojects"
1.45 + print "\nPROJECTS"
1.46 for c in cur:
1.47 print c
1.48 cur.execute("select * from activities")
1.49 - print "\nactivities"
1.50 + print "\nACTIVITIES"
1.51 for c in cur:
1.52 print c
1.53 cur.execute("select * from tasks")
1.54 - print "\ntasks"
1.55 + print "\nTASKS"
1.56 for c in cur:
1.57 print c
1.58 cur.execute("select * from breaks")
1.59 - print "\nbreaks"
1.60 + print "\nBREAKS"
1.61 for c in cur:
1.62 print c
1.63 - con.commit()
1.64 + cur.execute("select * from currencies")
1.65 + print "\nCURRENCIES"
1.66 + for c in cur:
1.67 + print c
1.68 + cur.execute("select * from rate_types")
1.69 + print "\nRATE_TYPES"
1.70 + for c in cur:
1.71 + print c
1.72 + cur.execute("select * from rates")
1.73 + print "\nRATES"
1.74 + for c in cur:
1.75 + print c
1.76 cur.close()
1.77
1.78 def init(db_file):
1.79 @@ -102,6 +124,20 @@
1.80 cur.close()
1.81 test(db_file)
1.82
1.83 +def set_rate(db_file, project, activity, rate, currency, type):
1.84 + if not activity:
1.85 + activity = DEF_ACTIVITY
1.86 + con, cur = session(db_file)
1.87 + values = (rate, row_id(db_file, "currencies", currency),
1.88 + row_id(db_file, "rate_types", type),
1.89 + row_id(db_file, "projects", project),
1.90 + row_id(db_file, "activities", activity))
1.91 + sql = "insert into rates values(?, ?, ?, ?, ?)"
1.92 + cur.execute(sql, values)
1.93 + con.commit()
1.94 + cur.close()
1.95 + test(db_file)
1.96 +
1.97 def find_last_project(db_file, time):
1.98 con, cur = session(db_file)
1.99 values = (time,)