コード例 #1
0
 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();
         }
     }
 }