Improve myway timeliness based on new GTFS feed accuracy
[busui.git] / include / db / stop-dao.inc.php
blob:a/include/db/stop-dao.inc.php -> blob:b/include/db/stop-dao.inc.php
--- a/include/db/stop-dao.inc.php
+++ b/include/db/stop-dao.inc.php
@@ -163,19 +163,20 @@
     return $query->fetchAll();
 }
 
-function getStopTrips($stopID, $service_period = "", $afterTime = "", $limit = "") {
+function getStopTrips($stopID, $service_period = "", $afterTime = "", $limit = "", $route_short_name = "") {
     if ($service_period == "") {
         $service_period = service_period();
     }
         $service_ids = service_ids($service_period);
-
     $sidA = $service_ids[0];
     $sidB = $service_ids[1];
+    $limitSQL = "";
     if ($limit != "")
-        $limitSQL = " LIMIT :limit ";
+        $limitSQL .= " LIMIT :limit ";
+        
     global $conn;
     if ($afterTime != "") {
-        $query = " SELECT stop_times.trip_id,stop_times.arrival_time,stop_times.stop_id,stop_sequence,service_id,trips.route_id,route_short_name,route_long_name, end_times.arrival_time as end_time
+        $query = " SELECT stop_times.trip_id,stop_times.arrival_time,stop_times.stop_id,stop_sequence,service_id,trips.route_id,route_short_name,route_long_name,end_times.arrival_time as end_time
 FROM stop_times
 join trips on trips.trip_id =
 stop_times.trip_id
@@ -183,7 +184,7 @@
 	WHERE stop_times.arrival_time IS NOT NULL group by trip_id) as end_times 
 WHERE stop_times.stop_id = :stopID
 AND stop_times.trip_id = end_times.trip_id
-AND (service_id=:service_periodA OR service_id=:service_periodB)
+AND (service_id=:service_periodA OR service_id=:service_periodB) ".($route_short_name != "" ? " AND route_short_name = :route_short_name ":"")." 
 AND end_times.arrival_time > :afterTime
 ORDER BY end_time $limitSQL";
     } else {
@@ -193,7 +194,7 @@
 stop_times.trip_id
 join routes on trips.route_id = routes.route_id
 WHERE stop_times.stop_id = :stopID
-AND (service_id=:service_periodA OR service_id=:service_periodB)
+AND (service_id=:service_periodA OR service_id=:service_periodB) ".($route_short_name != "" ? " AND route_short_name = :route_short_name ":"")." 
 ORDER BY arrival_time $limitSQL";
     }
     debug($query, "database");
@@ -205,6 +206,8 @@
         $query->bindParam(":limit", $limit);
     if ($afterTime != "")
         $query->bindParam(":afterTime", $afterTime);
+    if ($route_short_name != "")
+        $query->bindParam(":route_short_name", $route_short_name);
     $query->execute();
     if (!$query) {
         databaseError($conn->errorInfo());