Esempio n. 1
0
 /**
  * ScheduleTest::testAddSchedule()
  * 
  * @return void
  */
 public function testAddSchedule()
 {
     $this->sample_schedule['code'] = $this->CODE;
     $this->sample_schedule['flightnum'] = $this->FLIGHTNUM;
     $ret = SchedulesData::addSchedule($this->sample_schedule);
     $this->assertTrue($ret, DB::error());
 }
Esempio n. 2
0
 public function processimport()
 {
     echo '<h3>Processing Import</h3>';
     if (!file_exists($_FILES['uploadedfile']['tmp_name'])) {
         $this->set('message', 'File upload failed!');
         $this->render('core_error.tpl');
         return;
     }
     echo '<p><strong>DO NOT REFRESH OR STOP THIS PAGE</strong></p>';
     set_time_limit(270);
     $errs = array();
     $skip = false;
     # Fix for bug VMS-325
     $temp_name = $_FILES['uploadedfile']['tmp_name'];
     $new_name = CACHE_PATH . $_FILES['uploadedfile']['name'];
     move_uploaded_file($temp_name, $new_name);
     $fp = fopen($new_name, 'r');
     if (isset($_POST['header'])) {
         $skip = true;
     }
     /* Delete all schedules before doing an import */
     if (isset($_POST['erase_routes'])) {
         SchedulesData::deleteAllSchedules();
     }
     $added = 0;
     $updated = 0;
     $total = 0;
     echo '<div style="overflow: auto; height: 400px; border: 1px solid #666; margin-bottom: 20px; padding: 5px; padding-top: 0px; padding-bottom: 20px;">';
     while ($fields = fgetcsv($fp, 1000, ',')) {
         // Skip the first line
         if ($skip == true) {
             $skip = false;
             continue;
         }
         // list fields:
         $code = $fields[0];
         $flightnum = $fields[1];
         $depicao = $fields[2];
         $arricao = $fields[3];
         $route = $fields[4];
         $aircraft = $fields[5];
         $flightlevel = $fields[6];
         $distance = $fields[7];
         $deptime = $fields[8];
         $arrtime = $fields[9];
         $flighttime = $fields[10];
         $notes = $fields[11];
         $price = $fields[12];
         $flighttype = $fields[13];
         $daysofweek = $fields[14];
         $enabled = $fields[15];
         $week1 = $fields[16];
         $week2 = $fields[17];
         $week3 = $fields[18];
         $week4 = $fields[19];
         if ($code == '') {
             continue;
         }
         // Check the code:
         if (!OperationsData::GetAirlineByCode($code)) {
             echo "Airline with code {$code} does not exist! Skipping...<br />";
             continue;
         }
         // Make sure airports exist:
         if (!($depapt = OperationsData::GetAirportInfo($depicao))) {
             $this->get_airport_info($depicao);
         }
         if (!($arrapt = OperationsData::GetAirportInfo($arricao))) {
             $this->get_airport_info($arricao);
         }
         # Check the aircraft
         $aircraft = trim($aircraft);
         $ac_info = OperationsData::GetAircraftByReg($aircraft);
         # If the aircraft doesn't exist, skip it
         if (!$ac_info) {
             echo 'Aircraft "' . $aircraft . '" does not exist! Skipping<br />';
             continue;
         }
         $ac = $ac_info->id;
         if ($flighttype == '') {
             $flighttype = 'P';
         }
         if ($daysofweek == '') {
             $daysofweek = '0123456';
         }
         // Replace a 7 (Sunday) with 0 (since PHP thinks 0 is Sunday)
         $daysofweek = str_replace('7', '0', $daysofweek);
         # Check the distance
         if ($distance == 0 || $distance == '') {
             $distance = OperationsData::getAirportDistance($depicao, $arricao);
         }
         $flighttype = strtoupper($flighttype);
         if ($enabled == '0') {
             $enabled = false;
         } else {
             $enabled = true;
         }
         # This is our 'struct' we're passing into the schedule function
         #	to add or edit it
         $data = array('code' => $code, 'flightnum' => $flightnum, 'depicao' => $depicao, 'arricao' => $arricao, 'route' => $route, 'aircraft' => $ac, 'flightlevel' => $flightlevel, 'distance' => $distance, 'deptime' => $deptime, 'arrtime' => $arrtime, 'flighttime' => $flighttime, 'daysofweek' => $daysofweek, 'notes' => $notes, 'enabled' => $enabled, 'price' => $price, 'flighttype' => $flighttype, 'week1' => $week1, 'week2' => $week2, 'week3' => $week3, 'week4' => $week4);
         # Check if the schedule exists:
         if ($schedinfo = SchedulesData::getScheduleByFlight($code, $flightnum)) {
             # Update the schedule instead
             $val = SchedulesData::updateScheduleFields($schedinfo->id, $data);
             $updated++;
         } else {
             # Add it
             $val = SchedulesData::addSchedule($data);
             $added++;
         }
         if ($val === false) {
             if (DB::errno() == 1216) {
                 echo "Error adding {$code}{$flightnum}: The airline code, airports, or aircraft does not exist";
             } else {
                 $error = DB::error() != '' ? DB::error() : 'Route already exists';
                 echo "{$code}{$flightnum} was not added, reason: {$error}<br />";
             }
             echo '<br />';
         } else {
             $total++;
             echo "Imported {$code}{$flightnum} ({$depicao} to {$arricao})<br />";
         }
     }
     CentralData::send_schedules();
     echo "The import process is complete, added {$added} schedules, updated {$updated}, for a total of {$total}<br />";
     foreach ($errs as $error) {
         echo '&nbsp;&nbsp;&nbsp;&nbsp;' . $error . '<br />';
     }
     echo '</div>';
     unlink($new_name);
 }