public function selectAirport($data, $column, $lineData, $outfp, $city) { if (!$data[$column['icao_code']]) { echo "Dont found ICAO code. Skipping line: {$lineData} \n"; fwrite($outfp, $lineData . "|icao\n"); return; } if (!$data[$column['iata_code']]) { echo "Dont found IATA code. Skipping line: {$lineData} \n"; fwrite($outfp, $lineData . "|iata\n"); return; } try { $airport = Airport::getAirportByCode($data[$column['iata_code']]); } catch (CException $e) { $airport = null; } if (!$airport) { if (strpos($data[$column['airport_name_ru']], 'Metropolitan') !== FALSE && strpos($data[$column['airport_name_ru']], 'Airport') === FALSE) { return; } echo "Do you want create airport? type y\n"; echo "Data line: {$lineData} \n"; $char = trim(fgets(STDIN)); if ($char == 'y') { $airport = new Airport(); $airport->cityId = $city->id; $data[$column['airport_name_ru']] = $data[$column['airport_name_ru']] ? $data[$column['airport_name_ru']] : $data[$column['airport_name_en']]; if (!$data[$column['airport_name_ru']]) { echo "Airport name not found. Skipped line: {$lineData} \n"; fwrite($outfp, $lineData . "|iata\n"); return; } $airport->localRu = $data[$column['airport_name_ru']]; $airport->localEn = $data[$column['airport_name_en']]; $airport->code = $data[$column['iata_code']]; $airport->icaoCode = $data[$column['icao_code']]; $airport->latitude = $data[$column['latitude']]; $airport->longitude = $data[$column['longitude']]; $airport->position = 0; $airport->site = $data[$column['website']]; $airport->validate(); print_r($airport->errors); $airport->save(); $airport->id = $airport->getPrimaryKey(); } } if ($airport) { $changed = false; if (!$airport->localRu) { if ($data[$column['airport_name_ru']]) { $airport->localRu = $data[$column['airport_name_ru']]; $changed = true; } } if (!$airport->localEn) { if ($data[$column['airport_name_en']]) { $airport->localEn = $data[$column['airport_name_en']]; $changed = true; } } if (!$airport->latitude) { if ($data[$column['latitude']]) { $airport->latitude = $data[$column['latitude']]; $changed = true; } } if (!$airport->longitude) { if ($data[$column['longitude']]) { $airport->longitude = $data[$column['longitude']]; $changed = true; } } if (!$airport->icaoCode) { if ($data[$column['icao_code']]) { $airport->icaoCode = $data[$column['icao_code']]; $changed = true; } } if (!$airport->site) { if ($data[$column['website']]) { $airport->site = $data[$column['website']]; $changed = true; } } if ($changed) { $airport->save(); } } }