protected function addCalculations($file_config) { $station_id = $file_config['station']['station_id']; $this->stations[$station_id]; foreach ($file_config['station_calculation'] as $calc) { $calc_main_handler_db = CalculationDBHandler::model()->findByAttributes(array('handler_id_code' => $calc['handler'])); $calculation_db = new StationCalculation(); $calculation_db->station_id = $station_id; $calculation_db->handler_id = $calc_main_handler_db->handler_id; $calculation_db->formula = $calc['formula'] ? $calc['formula'] : 'default'; $calculation_db->save(false); foreach ($this->sensors_for_calcs[$calc['handler']][$station_id] as $sensor) { $calc_variables = new StationCalculationVariable(); $station_sensor_features = $sensor->features(); foreach ($station_sensor_features as $s_feature) { if (is_object($s_feature)) { if ($s_feature->is_main) { $calc_variables->sensor_feature_id = $s_feature->sensor_feature_id; $calc_variables->variable_name = $s_feature->feature_code; $calc_variables->calculation_id = $calculation_db->getPrimaryKey(); $calc_variables->save(false); } } } } } }