added cost calculation on first report generation; added costs calculation statuses table

added cost calculation on first report generation; 
added costs calculation statuses table
added view to recalculate and accept (forecast) costs 
For logic like this is any other good idea :) 

FILTERS = {
    "any_func_name": convert_some_data_or_something_else,
    ....,
}

class ThereIsNoFilterError(Exception):
    pass

def _convert_fields_to(self, data, func_name):
    for i, row in enumerate(data):
        for k, field in enumerate(row):
            data[i][k] = FILTERS.get('func_name', lambda *args, **kwargs: raise ThereIsNoFilterError)(field)
+        return data