def update_fuel(self, title, vehicle=None, record=None): ''' Create or update a fuel record ''' print('\n{} Fuel Record for {}:'.format(title, vehicle['reg_no'])) last = None # are we adding a new one or updating an old one? if (record == None): # adding new, so get the previous value. last = FN.last_fuel(vehicle) record = FN.frec.copy() # set reg for record record['vehicle_id'] = vehicle['vehicle_id'] record['date'] = FN.time_now() value = input('Date ({}):'.format(FN.to_date(record['date']))) if value: record['date'] = FN.to_seconds(value) value = input('Litres ({}):'.format(record['litres'])) if value: record['litres'] = float(value) value = input('Price per Litre ({}):'.format(record['ppl'])) if value: record['ppl'] = float(value) value = input('Cost ({}):'.format(record['cost'])) if value: record['cost'] = float(value) value = input('Odometer ({}):'.format(record['odo'])) if value: record['odo'] = int(value) calc_trip = record['trip'] if last: calc_trip = record['odo'] - last['odo'] trip = input('Trip ({0}):'.format(calc_trip)) if trip: record['trip'] = float(trip) else: record['trip'] = calc_trip value = input('Notes ({}):'.format(record['notes'])) if value: record['notes'] = value value = input('Fuel Type ({}):'.format(record['fuel_type'])) if value: record['fuel_type'] = value mpg = FN.update_fuel(vehicle, record) print('\nCalculated MPG: {:.2f}'.format(mpg))
def query(self, tbl, record): ''' Handler for data query. Uses form to order output ''' form = FN.forms[tbl] for element in form: label = string.capwords(element.replace('_', ' ')) if element.find('date') != -1: e = input('{1} ({0}):'.format(FN.to_date(record[element]), label)) else: e = input('{1} ({0}):'.format(record[element], label)) if e: if element.find('date') != -1: record[element] = FN.to_seconds(e) else: record[element] = e