Example #1
0
 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);
                     }
                 }
             }
         }
     }
 }