static function GetTrips($routes, $stops, $direction, $numberOfTrips = false, $startTime = false, $endTime = false) { // TODO: handling of $endTime in different service period than $startTime // TODO: actually decide /how/ before implementing... global $Database; if (is_array($routes) === false) { $routes = array($routes); } if (is_array($stops) === false) { $stops = array($stops); } if ($numberOfTrips !== false && is_int($numberOfTrips) === false) { throw new InvalidArgumentException('$numberOfTrips must be false or an integer'); } if ($startTime !== false && is_numeric($startTime) === false) { throw new InvalidArgumentException('$startTime must be false or an integer, value provided: ' . $startTime); } if ($endTime !== false && is_int($endTime) === false) { throw new InvalidArgumentException('$endTime must be false or an integer, value provided: ' . $endTime); } $query = 'SELECT *, Trip.id AS id FROM Trip INNER JOIN StopTime ON (StopTime.trip_id = Trip.id) ' . ' INNER JOIN Stop ON (StopTime.stop_id = Stop.code) ' . ' INNER JOIN Service ON (Trip.service_id = Service.id) ' . ' INNER JOIN Route ON (Trip.route_id = Route.id) ' . ' WHERE Trip.direction = ? '; $sql_params[] = $direction; foreach ($routes as $route) { $sql_route_param_placeholders[] = '?'; if (is_int($route) === true) { $sql_params[] = $route; } else { if (get_clasS($route) === "Route") { $sql_params[] = $route->GetID(); } else { throw new InvalidArgumentException('Invalid argument in $routes: ' . $route); } } } $query .= ' AND Route.id IN (' . implode(',', $sql_route_param_placeholders) . ') '; foreach ($stops as $stop) { $sql_stop_param_placeholders[] = '?'; if (is_int($stop) === true) { $sql_params[] = $stop; } else { if (get_clasS($stop) === "Stop") { $sql_params[] = $stop->GetID(); } else { throw new InvalidArgumentException('Invalid argument in $stops: ' . $stop); } } } $query .= ' AND Stop.code IN (' . implode(',', $sql_stop_param_placeholders) . ') '; // $servicePeriod = ServicePeriod::GetServicePeriod($startTime); // if ($servicePeriod !== false) // { $query .= ' AND Service.id = ? '; $sql_params[] = Page::GetRequestedServicePeriod()->GetID(); // if (empty($_GET['serviceperiod']) === false) // { // $sql_params[] = ((int) $_GET['serviceperiod']); // } // else // { // $sql_params[] = $servicePeriod->GetID(); // } // } if ($startTime !== false) { $query .= ' AND StopTime.time > ? '; $sql_params[] = date('H:i:s', $startTime); } $query .= ' GROUP BY Trip.id ORDER BY StopTime.time ASC '; if ($numberOfTrips !== false) { $query .= ' LIMIT ?'; $sql_params[] = $numberOfTrips; } $res = $Database->Select($query, $sql_params); // if we don't have enough trips, try to select the first few from next service period //if ($numberOfTrips !== false) if (false) { if (count($res) < $numberOfTrips) { $i = count($sql_params); $sql_params[$i - 1] = $numberOfTrips - count($res); if ($startTime !== false) { $sql_params[$i - 2] = '00:00:00'; $spParamIndex = $i - 3; } else { $spParamIndex = $i - 2; } $sp = Page::GetRequestedServicePeriod(); if ($sp !== false) { $sql_params[$spParamIndex] = $sp->NextID(); } $extraRes = $Database->Select($query, $sql_params); if (count($extraRes) > 0) { $res = array_merge($res, $extraRes); } } } if (count($res) > 0) { foreach ($res as $tripdata) { $trips[] = new Trip($tripdata); } } else { $trips = array(); } return $trips; }
public function testClassGet() { $container = new Container(); $this->assertNull($container->class); $obj1 = new EBTC(); $container->add($obj1); $this->assertSame(get_class($obj1), $container->class); $container->remove($obj1); $this->assertSame(get_clasS($obj1), $container->class); }
public function archiveAll() { global $mtlda, $mbus; try { $queue = new \Mtlda\Models\QueueModel(); } catch (\Exception $e) { static::raiseError("Failed to load QueueModel"); return false; } $total = $queue->getItemsCount(); $counter = 1; $start = 20; $steps = floor((100 - $start) / $total); foreach ($queue->getItemsKeys() as $key) { if (!$queue->hasItem($key)) { static::raiseError(get_class($queue) . '::hasItem() returned false!'); return false; } if (($queueitem = $queue->getItem($key)) === false) { static::raiseError(get_clasS($queue) . '::getItem() returned false!'); return false; } if (!is_a($queueitem, 'Mtlda\\Models\\QueueItemModel!')) { static::raiseError(get_class($queue) . '::getItem() has not returned a QueueItemModel!'); return false; } if (($idx = $queueitem->getIdx()) === false) { static::raiseError(get_class($queueitem) . '::getIdx() returned false!'); return false; } if (($guid = $queueitem->getGuid()) === false) { static::raiseError(get_class($queueitem) . '::getGuid() returned false!'); return false; } if ($queueitem->isProcessing()) { continue; } if (empty($idx) || !$mtlda->isValidGuidSyntax($guid)) { continue; } if (!$mbus->sendMessageToClient('archive-reply', "Archiving item {$counter} of {$total}.", $start + $steps * $counter . '%')) { static::raiseError(get_class($mbus) . '::sendMessageToClient() returned false!'); return false; } $state = $mbus->suppressOutboundMessaging(true); if (!$this->archive($idx, $guid)) { $mtlda->raiseArchive(__CLASS__ . "::archive() returned false for QueueItem {$idx}, {$guid}!"); return false; } $mbus->suppressOutboundMessaging($state); $counter++; } return true; }