started working on services
This commit is contained in:
69
app/db/__init__.py
Normal file
69
app/db/__init__.py
Normal file
@@ -0,0 +1,69 @@
|
||||
'''
|
||||
|
||||
|
||||
@author: shing19m
|
||||
'''
|
||||
|
||||
from datetime import datetime
|
||||
import sqlite3
|
||||
|
||||
|
||||
class Db(object):
|
||||
'''
|
||||
classdocs
|
||||
'''
|
||||
|
||||
|
||||
def __init__(self, db_file):
|
||||
'''
|
||||
Constructor
|
||||
'''
|
||||
self.db = sqlite3.connect(db_file)
|
||||
|
||||
def __del__(self):
|
||||
self.db.close()
|
||||
|
||||
def getAllPitStops(self):
|
||||
return self._perform_query('select * from pitstops order by id asc')
|
||||
|
||||
def getAllServices(self):
|
||||
return self._perform_query('select * from services')
|
||||
|
||||
def getLastPitStop(self):
|
||||
pitstops = self._perform_query('select * from pitstops order by id desc limit 1')
|
||||
if len(pitstops) == 0:
|
||||
return {'date': datetime.strftime(datetime.now(), '%Y-%m-%d'), 'odometer': 0, 'litres': 0}
|
||||
return pitstops[0]
|
||||
|
||||
def get_service_warning_info(self):
|
||||
info = self._perform_query('select (odometer_planned - (select odometer from pitstops order by id desc limit 1)) km_left, tasks from services where date is null order by odometer_planned asc limit 1;')
|
||||
if len(info) == 0:
|
||||
return None
|
||||
return info[0]
|
||||
|
||||
def get_next_undone_service(self):
|
||||
services = self._perform_query('select * from services where date is null limit 1')
|
||||
if len(services) == 0:
|
||||
return None
|
||||
return services[0]
|
||||
|
||||
def _perform_query(self, query):
|
||||
cursor = self.db.execute(query)
|
||||
names = list(map(lambda x: x[0], cursor.description))
|
||||
result = []
|
||||
for row in cursor.fetchall():
|
||||
row_result = {}
|
||||
for index in range(0, len(names)):
|
||||
row_result[names[index]] = row[index]
|
||||
result.append(row_result)
|
||||
return result
|
||||
|
||||
def addPitStop(self, date, odometer, litres):
|
||||
self.db.execute('insert into pitstops (date, odometer, litres) values (?, ?, ?)', [date, odometer, litres])
|
||||
self.db.commit()
|
||||
|
||||
def init_db(self, resource):
|
||||
with resource as f:
|
||||
sql_commands = f.read()
|
||||
self.db.cursor().executescript(sql_commands)
|
||||
self.db.commit()
|
||||
BIN
app/db/__pycache__/__init__.cpython-34.pyc
Normal file
BIN
app/db/__pycache__/__init__.cpython-34.pyc
Normal file
Binary file not shown.
Reference in New Issue
Block a user