Beispiel #1
0
    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))
Beispiel #2
0
    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